Один из подписчиков решил сделать привод для телескопа, и попросил меня помочь с написанием скетча.
Раз уж скетч написан, то будет не лишним рассказать что для этого понадобится, и предоставить схему для сборки устройства.
Так выглядит устройство для управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.
Для его сборки понадобится:
Плата Arduino UNO, модуль двух осевой джойстик, два униполярных шаговых двигателя 28BYJ-48 5V, два драйвера на базе микросхемы ULN2003 и соединительные провода.
Загрузите на плату Arduino UNO этот скетч.
В скетче есть 4 настройки!
Переменная t12 отвечает за скорость вращения первого шагового двигателя при первоначальном отведении джойстика.
Переменная t11 отвечает за скорость вращения первого шагового двигателя при отведении джойстика в крайнее положение.
Переменная t22 отвечает за скорость вращения второго шагового двигателя при первоначальном отведении джойстика.
Переменная t21 отвечает за скорость вращения второго шагового двигателя при отведении джойстика в крайнее положение.
Чем больше значение этих переменных тем медленнее скорость вращения шагового двигателя!
- //Начало скетча
- //Конец скетча
- Видео версия проекта «Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.»
- Драйверы двигателя L298N, L293D и Arduino Motor Shield
- Драйвер двигателя в проектах ардуино
- Для чего нужен драйвер двигателя?
- Микросхема или плата расширения Motor Shield
- Принцип действия H-моста
- Драйвер двигателя L298N
- Распиновка микросхемы L298N:
- Драйвер двигателя L293D
- Драйвер двигателя на микросхеме HG7881
- Характеристики драйвера HG7881:
- Распиновка:
- Сравнение модулей
- Подключение L298N к Arduino
- Управление несколькими шаговыми двигателями Nema 17 одновременно или NemaStepper
- 💡 Видео
//Начало скетча
//Конец скетча
После настройки и загрузки скетча соберите все согласно этой схемы.
Проверьте! И если все верно, то можете подключить устройство к блоку питания, павербанку или USB компьютера.
Так как устройство в режиме вращения вала шагового двигателя потребляет около 350 миллиампер, то источник питания должен быть минимум на 500 миллиампер.
Чтобы инвертировать направление вращения вала шагового двигателя:
Поменяйте местами контакты 5, 6 или 4, 7 для 1 шагового двигателя.
Поменяйте местами контакты 11, 12 или 10, 13 для 2 шагового двигателя.
Чтобы поменять местами оси X, Y поменяйте местами контакты A0, A1.
Видео:Управление двумя униполярными шаговыми моторами по Bluetooth на базе Arduino nano. Проекты Arduino.Скачать
Видео версия проекта «Управление двумя шаговыми двигателями с помощью джойстика на базе Arduino UNO.»
Творческая мастерская Мастер Колотушкин 2021
Проекты на базе Arduino для начинающих, электронные самоделки своими руками.
Видео:Управление двумя униполярными шаговыми двигателями с помощью джойстика на базе Arduino uno.Скачать
Драйверы двигателя L298N, L293D и Arduino Motor Shield
Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.
Видео:Уроки Arduino. Управление моторами с библиотекой GyverMotorСкачать
Драйвер двигателя в проектах ардуино
Для чего нужен драйвер двигателя?
Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока, превышающие этот предел.
Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:
Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым включает или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.
Использовать силовой транзистор. В данном случае мы можем управлять током, проходящим через двигатель, а значит, можем управлять скоростью вращения шпинделя. Но для смены направления вращения этот способ не подойдет.
Читайте также: Не заводится мотор 406 нет искры
Использовать специальную схему подключения, называемую H-мостом, с помощью которой мы можем изменять направление движения шпинделя двигателя. Сегодня можно без проблем найти как микросхемы, содержащие два или больше H-моста, так и отдельные модули и платы расширения, построенные на этих микросхемах.
В этой статье мы рассмотрим последний, третий вариант, как наиболее гибкий и удобный для создания первых роботов на ардуино.
Микросхема или плата расширения Motor Shield
Motor Shield – плата расширения для Ардуино, которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения – Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным – не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.
Принцип действия H-моста
Принцип работы драйвера двигателя основан на принципе работы H-моста. H-мост является электронной схемой, которая состоит из четырех ключей с нагрузкой. Название моста появилось из напоминающей букву H конфигурации схемы.
Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.
С помощью изменения состояния ключей на H-мосте можно регулировать направление движения и тормозить моторы. В таблице приведены основные состояния и соответствующие им комбинации на пинах.
Q1 | Q2 | Q3 | Q4 | Состояние |
1 | 0 | 0 | 1 | Поворот мотора вправо |
0 | 1 | 1 | 0 | Поворот мотора влево |
0 | 0 | 0 | 0 | Свободное вращение |
0 | 1 | 0 | 1 | Торможение |
1 | 0 | 1 | 0 | Торможение |
1 | 1 | 0 | 0 | Короткое замыкание |
0 | 0 | 1 | 1 | Короткое замыкание |
Видео:Управление двумя dc моторами на l293d и arduinoСкачать
Драйвер двигателя L298N
Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В. При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.
Плата выглядит следующим образом:
Распиновка микросхемы L298N:
- Vcc – используется для подключения внешнего питания;
- 5В;
- Земля GND;
- IN1, IN2, IN3, IN4 – используется для плавного управления скоростью вращения мотора;
- OUT1, OUT2 – используется для выхода с первого двигателя;
- OUT3, OUT4 – используется для выхода со второго двигателя;
- S1 – переключает питание схемы: от внешнего источника или от внутреннего преобразователя;
- ENABLE A, B – требуются для раздельного управления каналами. Используются в двух режимах – активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).
При подключении двух двигателей, нужно проверить, чтобы у них была одинаковая полярность. Если полярность разная, то при задании направления движения они будут вращаться в противоположные стороны.
Читайте также: Ямаха лодочные моторы технические характеристики расход топлива
Видео:Управление моторами с ArduinoСкачать
Драйвер двигателя L293D
L293D – является самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы – 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.
В схеме имеется 16 выходов. Распиновка:
- +V – питание на 5 В;
- +Vmotor – напряжение питания для мотором до 36 В;
- 0V – земля;
- En1, En2 –включают и выключают H-мосты;
- In1, In2 – управляют первым H-мостом;
- Out1, Out2 – подключение первого H-моста;
- In3, In4 – управляют вторым H-мостом;
- Out3, Out4 – подключение второго H-моста.
Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Ардуино, In2 – 8, In3 – 2, In4 – 3, En1 – 6, En2 – 5, V – 5V, Vmotor – 5 V, 0V – GND. Пример подключения одного двигателя к Ардуино показан на рисунке.
Видео:Драйвер двигателей L298N - Обзор, Тест, Подключение к ArduinoСкачать
Драйвер двигателя на микросхеме HG7881
HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.
Плата содержит 2 схемы L9110S, работающие как H-мост.
Характеристики драйвера HG7881:
- 4-контактное подключение;
- Питание для двигателей от 2,5 В до 12 В;
- Потребляемый ток менее 800 мА;
- Малые габариты, небольшой вес.
Распиновка:
- GND – земля;
- Vcc – напряжение питания 2,5В – 12В;
- A-IA – вход A(IA) для двигателя A;
- A-IB – вход B (IB) для двигателя A;
- B-IA – вход A(IA) для двигателя B;
- B-IB – вход B (IB) для двигателя B.
В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.
IA | IB | Состояние мотора |
0 | 0 | Остановка |
1 | 0 | Двигается вперед |
0 | 1 | Двигается назад |
1 | 1 | Отключение |
Подключение одного двигателя к Ардуино изображено на рисунке.
Сравнение модулей
Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого. Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 – самый дешевый и самый малогабаритный модуль.
Видео:Согласованная работа двух шаговых двигателей на ардуино.Скачать
Подключение L298N к Arduino
Как уже упоминалось, в первую очередь нужно проверить полярность подключенных двигателей. Двигатели, вращающиеся в различных направлениях, неудобно программировать.
Нужно присоединить источник питания. + подключается к пину 4 на плате L298N, минус (GND) – к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены
. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.
Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.
Читайте также: Лодочный мотор гибрид что это такое
Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить работоспособность собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.
При работе с моторами Ардуино может периодически перезагружаться. Это возникает из-за того, что двигателям требуются большие токи при старте и в момент торможения. Для решения этой проблемы в плату встроены конденсаторы, диоды и другие схемы. Также для этих целей на шидле имеется раздельное питание.
Видео:Уроки Arduino - управление бесколлекторным моторомСкачать
Управление несколькими шаговыми двигателями Nema 17 одновременно или NemaStepper
Я думаю что вы, если работали с arduino+nema 17, знаете, что запустить несколько двигателей одновременно бывает очень затруднительно.
Есть разные способы решения этой проблемы, самый простой, пожалуй — использование библиотеки NemaStepper. Библиотека упрощает данную задачу во много раз, главное преимущество — она не останавливает выполнение программы. Устанавливается она также, как и все остальные библиотеки. Распространяется по MIT лицензии.
Ну что, давайте приступим. И начнем мы с подключения.
Мы будем использовать Simple Nema 17 с алиэкспресса за 500 рублей, драйвер L298N и arduino uno. Вот они:
- В примере я буду показывать четыре подключенных драйвера к ардуине, хотя буду использовать только один.
- В интернете есть много туториалов по подключению Nema 17, поэтому я не буду подробно расписывать это здесь.
Итак, подключаем мотор к драйверу:
Библиотека является объектно — ориентированной. Давайте рассмотрим пример включения одного мотора:
О всех методах библиотеки можно узнать из файлов исходного кода библиотеки (в шапке библиотеки есть описание).
*Подробнее о коде в примере.
А теперь переходим к примеру.
В библиотеке есть встроенный пример (на данный момент он там один), который позволяет управлять сразу тремя моторами с Serial.
Данный пример принимает на порт команды, указанные ниже.
Начнем с шапки — подключения библиотек:
Далее объявляются три мотора, со следующими параметрами:
1. Первый пин
2. Второй пин
3. Третий пин
4. Четвертый пин
5. Количество шагов за оборот — у большинства моторов Nema 17 это 200.
6. Стартовая скорость
7. Значение указывающее, нужно ли удерживать вал после остановки (при true драйверы превращаются в барбекю)
Далее инициализация порта:
Затем, ВАЖНО! В главном цикле нужно обновлять положение двигателей командой Step()
Далее следует подпрограмма, которая получает данные с порта, включает/выключает моторы, задает скорость, тормоза, вращение.
И так, давайте попробуем загрузить ее в плату.
Тогда заходим в монитор порта и вводим команды из кода.
Каждая команда заканчивается символом /.
Первые три символа — название команды.
То, что между названием и / — параметры.
Давайте включим моторы командой «EMS/» (Enable MotorS).
Затем укажем мотору 1 скорость 60 командой «SS160/» (Set Speed), где 60 — скорость.
И наконец, включим первый мотор командой «MV1100/», (MoVe) где 100 — количество оборотов.
Все работает. Ура.
Тоже самое с остальными моторами.
Ну и где взять библиотеку.
Библиотеку можно скачать, отблагодарив создателя, по ссылке, указав ей реальную цену:
Спасибо за прочтение, надеюсь вам помогла моя статья.
Когда я искал решение моей проблемы, единственной подходящей библиотекой оказалась она.
- Свежие записи
- Чем отличается двухтактный мотор от четырехтактного
- Сколько масла заливать в редуктор мотоблока
- Какие моторы бывают у стиральных машин
- Какие валы отсутствуют в двухвальной кпп
- Как снять стопорную шайбу с вала
💡 Видео
Управление двигателем постоянного тока. Схема управления мотором Ардуино проекты.Скачать
Привод для жалюзи на базе Arduino uno своими руками. Управление шаговыми моторами с помощью кнопок.Скачать
Управление двигателем постоянного тока NodeMCU + MX1508Скачать
Управление шаговыми моторами по Bluetooth при помощи Arduino и Android смартфона. Привод для камеры.Скачать
ПОДКЛЮЧАЕМ ШАГОВЫЙ ДВИГАТЕЛЬ К ARDUINO [Уроки Ардуино #14]Скачать
Управление мотором ардуиноСкачать
Arduino Nano + расширитель пинов + управление двигателем актуатораСкачать
Управление двигателем постоянного тока, линейным приводом. АрдуиноСкачать
ЭЛЕКТРОНИКА - Обзор драйвера моторов MX1508 для ArduinoСкачать
Ардуино пульт 433мГц управление двумя моторамиСкачать
NEMA17 Управление шаговым двигателем - Stepper motor with ArduinoСкачать
два мотора от одного контроллераСкачать