- Общие сведения:
- Видео:
- Спецификация:
- Подключение:
- Назначение разъёмов модуля:
- Подключение мотора без энкодера:
- Подключение мотора с энкодером:
- Подключение модуля к управляющей плате:
- Питание:
- Подробнее о модуле:
- Смена адреса модуля на шине I2C:
- Настройка модуля:
- Настройка модуля на работу мотора без энкодера:
- Настройка модуля на работу мотора с энкодером:
- Настройка модуля при помощи регистров:
- Примеры работы с модулем:
- Драйверы двигателя L298N, L293D и Arduino Motor Shield
- Драйвер двигателя в проектах ардуино
- Для чего нужен драйвер двигателя?
- Микросхема или плата расширения Motor Shield
- Принцип действия H-моста
- Драйвер двигателя L298N
- Распиновка микросхемы L298N:
- Драйвер двигателя L293D
- Драйвер двигателя на микросхеме HG7881
- Характеристики драйвера HG7881:
- Распиновка:
- Сравнение модулей
- Подключение L298N к Arduino
- Видео:
Видео:Драйвер двигателей L298N - Обзор, Тест, Подключение к ArduinoСкачать
Общие сведения:
Модуль — Драйвер моторов с управляющим контроллером, I2C-flash — является драйвером коллекторных моторов с управлением по шине I2С.
Модуль относится к серии «Flash», а значит к одной шине I2C можно подключить более 100 модулей, так как их адрес на шине I2C (по умолчанию 0x09), хранящийся в энергонезависимой памяти, можно менять программно.
Для запуска мотора достаточно передать модулю число, определяющее коэффициент заполнения ШИМ от 0 до ±100%, значение определяет скорость, а знак, направление вращения мотора.
Модуль позволяет блокировать (стопорить) и освобождать вал остановленного (останавливаемого) мотора. В первом случае остановка мотора осуществляется с резким торможением и последующим удержанием вала, а во втором, торможение осуществляется плавно, по инерции, без удержания вала.
Модуль может получать данные с магнитного или оптического энкодера установленного на ротор мотора. В таком случае модулю нужно задать количество магнитов или оптических щелей энкодера. После чего скорость можно задавать не только коэффициентом заполнения ШИМ, но и количеством полных оборотов в минуту. Наличие энкодера позволит не только задавать скорость, но и получать реальную скорость вала и количество совершённых оборотов, даже если он вращается посредством внешних сил. Если на роторе мотора установлен редуктор, то модулю нужно указать его передаточное отношение.
Видео:Простая схема подключения Nema 23. Шаговый двигатель nema и генератор импульсов.Скачать
Видео:
Видео:Подключение драйверов шаговых двигателейСкачать
Спецификация:
- Напряжение питания логики: 5 В (номинально), или 3,3 В.
- Диапазон напряжений мотора поддерживаемый драйвером: 2,7 В . 12 В.
- Максимальный ток мотора поддерживаемый драйвером: до 3 А (пиковый ток до 4 А).
- Драйвер оснащён защитой от перегрева и перегрузки по току.
- Интерфейс: I2C.
- Скорость шины I2C: 100 кбит/с.
- Адрес на шине I2C: устанавливается программно (по умолчанию 0x09).
- Уровень логической 1 на линиях шины I2C: Vcc.
- Уровень логической 1 сигналов с энкодера: Vcc.
- Рабочая температура: от -20 до +70 °С.
- Габариты: 45 х 25 мм.
- Вес: 7 г.
Видео:💯🔥 Генератор импульсов и шаговый двигатель. Неизвестная схема подключения 👍😁Скачать
Подключение:
Перед подключением модуля ознакомьтесь с разделом «Смена адреса модуля на шине I2C» в данной статье.
Назначение разъёмов модуля:
Разъем из 4 выводов используется для подключения к шине I2C.
- SCL — вход/выход линии тактирования шины I2C.
- SDA — вход/выход линии данных шины I2C.
- 5V — вход питания +5 В (номинально), или 3,3 В.
- GND — общий вывод питания (соединён с выводом питания мотора -VMOT).
Разъем из 2 выводов используется для подачи питания на мотор через драйвер модуля.
- +VMOT — вход питания мотора от +2,7 В до +12 В.
- -VMOT — общий вывод питания (соединён с выводом GND).
Разъем из 6 выводов используется для подключения мотора и энкодера.
- M — два выхода для подключения коллекторного мотора.
- S — два входа сигналов от магнитного или оптического энкодера.
- V — выход питания логики энкодера (соединён с выводом 5V).
- G — общий вывод питания (соединён с выводом GND).
Подключение мотора без энкодера:
При подключении мотора без энкодера используются только выводы M (Motor).
Выводы G (GND), V (Vcc), S (Signal) остаются не задействованы.
Подключение мотора с энкодером:
Для подключения мотора используются выводы M.
Для подключения энкодера используются выводы G (GND), V (Vcc), S (Signal).
Подключение модуля к управляющей плате:
Модуль подключается к аппаратной или программной шине I2C Arduino. В комплекте имеется кабель для быстрого и удобного подключения модуля к колодке I2C на Trema Shield. Если на шине I2C уже имеется другое устройство, то для подключения модуля, предлагаем воспользоваться I2C Hub.
Видео:Управление моторами с ArduinoСкачать
Питание:
Входное напряжение питания модуля 5В (номинально), или 3,3 В постоянного тока, подаётся на выводы 5V и GND.
Входное напряжение питания мотора от 2,7В до 12В постоянного тока, подаётся на выводы +VMOT и -VMOT.
Видео:Готовый трехфазный драйвер моторов из HDD-жесткого диска.Тест с разными моторамиСкачать
Подробнее о модуле:
Модуль построен на базе микроконтроллера STM32F030F4, драйвера DRV8833 и снабжен собственным стабилизатором напряжения. Модуль способен поддерживать заданную скорость и направление вращения вала, сверяясь с показаниями энкодера. На плате модуля имеется красный светодиод информирующий об отличии реальной скорости от заданной.
Модуль без энкодера позволяет:
- Менять свой адрес на шине I2C.
- Управлять внутренней подтяжкой линий шины I2C (по умолчанию включена).
- Указывать борт установки модуля (модуль левого колеса / модуль правого колеса).
- Задавать скорость вращения вала от 0 до ±100%, при этом знак определяет направление.
- Останавливать двигатель и/или указать тип его остановки. Двигатель может быть остановлен двумя способами: отключением мотора (свободный ход) или торможением (стопор).
Заданный тип применяется ко всем последующим остановкам двигателя. - Останавливать двигатель по истечении заданного времени.
- Определять наличие ошибки драйвера (перегрузка по току, перегрев, низкое напряжение).
Модуль с энкодером дополнительно позволяет:
- Указывать передаточное отношение редуктора мотора.
- Указывать количество магнитов или оптических щелей энкодера.
- Задавать скорость вращения вала, указав количество оборотов в минуту или метров в секунду. Во всех случаях можно указывать отрицательные значения для вращения в обратную сторону.
- Получать флаг отличия заданной скорости вращения вала от реальной, а так же указывать процент отклонения при котором будет устанавливаться данный флаг. На плате модуля имеется красный светодиод, который дублирует состояние этого флага.
- Узнавать текущую скорость вращения вала.
Скорость вращения вала определяется по показаниям энкодера, даже если мотор отключён, а вал вращается по средством внешних сил. - Узнавать количество совершённых полных оборотов вала.
Количество оборотов вала определяется по показаниям энкодера, даже если мотор отключён, а вал вращается по средством внешних сил. - Остановить двигатель по истечении заданного количества полных оборотов вала. А зная размеры колеса, можно остановить двигатель по прохождении указанного расстояния.
Читайте также: Лодочные моторы тохатсу казани
Специально для работы с модулем — Драйвер моторов с управляющим контроллером, I2C-flash, нами разработана библиотека iarduino_I2C_Motor которая позволяет реализовать все функции модуля.
Подробнее про установку библиотеки читайте в нашей инструкции.
Видео:Подключение двигателя без электроники и Ардуино!Скачать
Смена адреса модуля на шине I2C:
По умолчанию все модули FLASH-I2C имеют установленный адрес 0х09. Если вы планируете подключать более 1 модуля на шину I2C, необходимо изменить адреса модулей таким образом, чтобы каждый из них был уникальным. Более подробно о том, как изменить адрес, а также о многом другом, что касается работы FLASH-I2C модулей, вы можете прочесть в этой статье.
Видео:Шаговый двигатель. Micro Step Driver. PLC Omron. Подключение,программирование. (Часть 1)Скачать
Настройка модуля:
Настройка модуля заключается в указании параметров энкодера и редуктора.
Настройка модуля на работу мотора без энкодера:
Если драйвер работает с мотором без энкодера, то необходимо сбросить количество магнитов энкодера и указать состояние флагов инверсии вращения. Дополнительно можно указать способ остановки мотора (с освобождением или блокировкой вала).
- Настройку модуля достаточно выполнить один раз в коде функции setup() .
- Функция begin() инициирует работу с модулем.
- Функция setMagnet() позволяет задать количество магнитов или оптических щелей энкодера. Так как данный пример демонстрирует настройку модуля на работу мотора без энкодера, то функция вызывается с параметром 0 — нет магнита или оптических щелей на валу энкодера.
- Функция setInvGear() позволяет настроить инверсии вращения вала.
- Первый параметр функции устанавливается в true если выходной вал редуктора вращается в сторону противоположную вращению ротора мотора.
- Второй параметр функции устанавливается в true если ротор мотора вращается против часовой стрелки, при положительных скоростях.
Настройка модуля на работу мотора с энкодером:
Если драйвер работает с мотором и энкодером, то необходимо указать количество магнитов энкодера, состояние флагов инверсии вращения и передаточное отношение редуктора. Дополнительно можно указать способ остановки мотора (с освобождением или блокировкой вала) и процент отклонения скорости до установки ошибки.
- Настройку модуля достаточно выполнить один раз в коде функции setup() .
- Функция begin() инициирует работу с модулем.
- Функция setMagnet() позволяет задать количество магнитов или оптических щелей энкодера. В данном примере указано 7 магнитов или оптических щелей.
- Функция setInvGear() позволяет настроить инверсии вращения вала.
- Первый параметр функции устанавливается в true если выходной вал редуктора вращается в сторону противоположную вращению ротора мотора.
- Второй параметр функции устанавливается в true если ротор мотора вращается против часовой стрелки, при положительных скоростях.
Настройка модуля при помощи регистров:
Карта всех регистров модуля с их подробным описанием доступна на странице Wiki — Мотор-редуктор с управляющим контроллером, I2C-flash — Datasheet.
- В предыдущих разделах модуль был настроен при помощи функций: setMagnet() , setInvGear() , setReducer() и setError() .
- Работа модуля была продемонстрирована функциями setSpeed() и setStop() .
- Функция setMagnet() записывает значение параметра в регистр 0x11 «MAGNET» .
- Функция setInvGear() записывает значение параметров в регистр 0x25 «BITS_2» .
- Функция setReducer() записывает значение параметра в регистры 0x12-14 «REDUCER» .
- Функция setStopNeutral() сохраняет бит поведения вала при остановке в регистр «STOP» .
- Функция setError() записывает значение параметра в регистр 0x0A «MAX_RPM_DEV» .
- Функция setSpeed() записывает значение в регистры «SET_PWM» или «SET_RPM» .
- Функция setStop() устанавливает бит остановки в регистре 0x24 «STOP» или записывает условие остановки в регистры 0x1E-20 «STOP_REV» , или 0x21-23 «STOP_TMR» .
Читайте также: Где в самаре лодочные моторы
Следующий пример выполняет те же действия, что и пример из раздела «Настройка модуля на работу мотора с энкодером», но без использования библиотеки iarduino_I2C_Motor.
Если для остановки мотора записывать в регистр REG_STP значение 0b00000010 , то мотор будет останавливаться резко, в отличии от плавной остановки записью значения 0b00000011 .
Видео:Драйвер двигателей L293D, Подключение к ArduinoСкачать
Примеры работы с модулем:
Примеры работы с модулем при помощи библиотеки iarduino_I2C_Motor и описание всех её функций, доступны на странице Wiki — Мотор-редуктор с управляющим контроллером, FLASH-I2C.
Сама библиотека содержит больше примеров, доступных из меню Arduino IDE: Файл / Примеры / iarduino I2C Motor (мотор).
Функции setSpeed() , getSpeed() , setStop() и getSum() , вызванные с параметрами MOT_RPM, MOT_M_S, MOT_MET и MOT_REV поддерживаются только модулем с установленным энкодером.
Видео:Запуск двигателя CD-ROM от штатного драйвера.Скачать
Драйверы двигателя L298N, L293D и Arduino Motor Shield
Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.
Видео:Как запустить униполярный шаговый двигатель Подключение шагового двигателя, схема управления драйверСкачать
Драйвер двигателя в проектах ардуино
Для чего нужен драйвер двигателя?
Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока, превышающие этот предел.
Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:
Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым включает или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.
Использовать силовой транзистор. В данном случае мы можем управлять током, проходящим через двигатель, а значит, можем управлять скоростью вращения шпинделя. Но для смены направления вращения этот способ не подойдет.
Использовать специальную схему подключения, называемую 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 Короткое замыкание Видео:Простые драйверы шаговых двигателей / Simple stepper motor driversСкачать
Драйвер двигателя L298N
Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В. При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.
Читайте также: Как натянуть ремень мерседес 124 102 мотор
Плата выглядит следующим образом:
Распиновка микросхемы L298N:
- Vcc – используется для подключения внешнего питания;
- 5В;
- Земля GND;
- IN1, IN2, IN3, IN4 – используется для плавного управления скоростью вращения мотора;
- OUT1, OUT2 – используется для выхода с первого двигателя;
- OUT3, OUT4 – используется для выхода со второго двигателя;
- S1 – переключает питание схемы: от внешнего источника или от внутреннего преобразователя;
- ENABLE A, B – требуются для раздельного управления каналами. Используются в двух режимах – активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).
При подключении двух двигателей, нужно проверить, чтобы у них была одинаковая полярность. Если полярность разная, то при задании направления движения они будут вращаться в противоположные стороны.
Видео:Двухканальный драйвер L293D для двигателей игрушекСкачать
Драйвер двигателя 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. Пример подключения одного двигателя к Ардуино показан на рисунке.
Видео:Драйвер мотору не нужен. Запускаем HDD моторСкачать
Драйвер двигателя на микросхеме 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 – самый дешевый и самый малогабаритный модуль.
Видео:ПОДКЛЮЧАЕМ ШАГОВЫЙ ДВИГАТЕЛЬ К ARDUINO [Уроки Ардуино #14]Скачать
Подключение 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. При правильной сборке вал двигателя начнет вращаться.
При работе с моторами Ардуино может периодически перезагружаться. Это возникает из-за того, что двигателям требуются большие токи при старте и в момент торможения. Для решения этой проблемы в плату встроены конденсаторы, диоды и другие схемы. Также для этих целей на шидле имеется раздельное питание.
- Свежие записи
- Чем отличается двухтактный мотор от четырехтактного
- Сколько масла заливать в редуктор мотоблока
- Какие моторы бывают у стиральных машин
- Какие валы отсутствуют в двухвальной кпп
- Как снять стопорную шайбу с вала
📺 Видео
Управление шаговым двигателем. Драйвер A4988, подключение и настройкаСкачать
Как подключить шаговый двигатель к ArduinoСкачать
Модуль драйвера двигателей L298N и ArduinoСкачать
Шаговый двигатель, как подключить без сложностей!!!!Скачать
✅ 47. Драйвер DM542 подключениеСкачать