Sw-motors.ru

Автомобильный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Плата расширения L293D Motor Driver Shield (для Arduino)

Плата расширения L293D Motor Driver Shield (для Arduino)

SunFounder L293D – это четырехканальный драйвер, позволяющий работать с большими токами и напряжениями. В основном это означает, что с помощью микросхемы L293D вы можете использовать двигатели постоянного тока и источники питания до 36 вольт, микросхема L293D также обеспечивает максимальный ток до 600 мА на канал. Микросхема L293D представляет собой разновидность Н-мостов, которые, как правило, используются для управления подачей напряжения (и его полярностью) на нагрузку (например, на двигатель для управления направлением и скоростью его вращения).

Плата расширения L293D Motor Driver Shield (для Arduino) Плата расширения L293D Motor Driver Shield. Вид сверху

Плата расширения занимает все цифровые выводы, кроме 0, 1, 2 и 13. Также остаются свободными все аналоговые выводы, которые выведены на плате на отдельную линейку.

Код библиотеки и примеры использования:

Скорость задается числом от 0 до 255 (стоп-полный ход).

Направление задается числами:

  1. FORWARD условно «вперед»
  2. BACKWARD движение обратное «вперед»
  3. BRAKE тормоз
  4. RELEASE остановка с выбегом

Плата расширения L293D Motor Driver Shield. Схема электрическая принципиальная

L293D

L293D представляет собой четыре сильноточных драйвера из половин Н-мостов. Она предназначена для управления двунаправленными приводами с токами до 600 мА и напряжениями от 4,5 В до 36 В. Микросхема предназначена для управления индуктивными нагрузками, такими как реле, соленоиды, двигатели постоянного тока, шаговые двигатели, а также другими нагрузками, требующими высокого тока/напряжения в приложениях с положительным питанием. Все входы TTL совместимы. Драйверы включены в пары: драйверы 1 и 2 включаются выводом 1,2EN, а драйверы 3 и 4 включаются выводом 3,4EN. Когда на разрешающий вход подается высокий логический уровень, соответствующие драйверы включаются, их выходы становятся активными, а их состояние синфазно соответствующим входам. Когда на разрешающий вход подается низкий логический уровень, эти драйверы выключаются, их выходы отключаются и остаются в состоянии высокого сопротивления. При правильных сигналах на входах каждая пара драйверов формирует полный Н-мост, способный управлять направлением в приложениях с электродвигателями и соленоидами.

Схема логики микросхемы L293D

Таблица истинности (для каждого драйвера)

ВходыВыход
Y
AEN
HHH
LHL
XLZ

H – высокий уровень; L – низкий уровень; X – не имеет значения; Z – высокое сопротивление (выключен).

Назначение выводов

Распиновка микросхемы L293D

Назначение выводов микросхемы L293D

ВыводНазваниеНазначение
1En1,2Вывод включения для управления драйверами 1 и 2
2Вход 1AВход для управления 1Y
3Выход 1YВыход, подключается к двигателю
4GNDЗемля и теплоотвод
5GNDЗемля и теплоотвод
6Выход 2YВыход, подключается к двигателю
7Вход 2AВход для управления 2Y
8Vcc2Источник питания для драйверов 4,5–36 В
9En3,4Вывод включения для управления драйверами 3 и 4
10Вход 3AВход для управления 3Y
11Выход 3YВыход, подключается к двигателю
12GNDЗемля и теплоотвод
13GNDЗемля и теплоотвод
14Выход 4YВыход, подключается к двигателю
15Вход 4AВход для управления 4Y
16Vcc1Источник питания внутренней логики (максимум 7 В)

Особенности

  • Широкий диапазон напряжений питания: от 4,5 В до 36 В
  • Отдельный источник питания входной логики
  • Внутренняя защита от электростатики
  • Выключение при перегреве
  • Помехоустойчивые входы
  • Выходной ток: до 600 мА на канал
  • Пиковый выходной ток: до 1,2 А на канал

74HC595

Микросхема 74HC595 состоит из 8-разрядного регистра сдвига и регистра хранения с параллельными выходами с тремя состояниями. Она преобразует последовательный ввод в параллельный вывод, поэтому вы сможете сохранить порты ввода/вывода вашего микроконтроллера для других целей. 74HC595 широко используется для управления несколькими светодиодами и многосегментными дисплеями. «Три состояния» означает, что вы можете установить выходные выводы в состояния высокого уровня, низкого уровня и «высокого импеданса». Благодаря фиксации данных, на мгновенный вывод ничего не повлияет во время процесса сдвига; также вы можете легко каскадно подключать на выходы дополнительные микросхемы 74HC595.

Motor Shield

Мы не выдаем Китай за Италию. Платы от российского производителя по сниженным ценам.

Описание Motor Shield

Motor Shield (далее M–Shield) – силовой модуль управления двигателями для микроконтроллеров серии Freeduino/Arduino. Модуль предназначен для упрощения разработки моторизированных и робототехнических устройств и основан на первой версии M–Shield от Adafruit Industries (www.ladyada.net).

Модуль существует в двух версиях: v2 со штыревыми компонентами, и пришедшая ей на замену v3 с поверхностным монтажом компонентов и дополнительным функционалом.

Модуль подключается к Freeduino с помощью установленных на нем разъемов.

Обновленная версия M-Shield v3:

Предыдущая версия с штыревым монтажом M-Shield v2:

Модуль также доступен в виде набора для сборки (Kit).

Технические возможности M–Shield позволяют реализовать разнообразные проекты, связанные с подключением и управлением слаботочными двигателями следующих типов:

  • четырёх двигателей постоянного тока (ДПТ — DC motors);
  • двух шаговых двигателей униполярных или биполярных с одинарной или двойной обмоткой (ШД — stepper motors);
  • двух 5В сервоприводов (СП — servos).

Возможны следующие комбинации подключаемых к M–shield двигателей:

  • 2 СП + 4 ДПТ;
  • 2 СП + 2 ШД;
  • 2 СП + комбинации ШД и ДПТ, например: возможен вариант замены 1 ШД на 2 ДПТ или наоборот.

Обновленная версия v3 может быть переключена в режим, совместимый с аппаратным SPI (а значит и с модулями типа Ethernet Shield), в котором не используются выводы 10, 11, 12, 13. Также, для v3 возможно простое подключение к базовой плате в формате Nano.

  • напряжение питания: +7. + 24 В;
  • количество силовых каналов: 4;
  • максимально-продолжительный ток каждого канала: 0,6 А;
  • напряжение питания сервоприводов: 5 В;
  • возможность реверса каждого двигателя;
  • возможность независимого управления каждым каналом;
  • модуль полностью совместим со всеми известными моделями Freeduino/Arduino: MaxSerial, Through-Hole, Diecimila, 2009, Duemilanove, а также Arduino Mega. Версия v3 может удобно стыковаться с Freeduino/Arduino Nano.

Драйвер двигателей L293D

Управление двигателями осуществляется двумя микросхемами L293D. Каждая микросхема – это четырёхканальный драйвер со встроенными обратными диодами для защиты микросхемы от перенапряжений при работе на индуктивную нагрузку.

Драйверы управляются парами, что позволяет реализовать на одной микросхеме два двуполярных канала управления с ШИМ управлением.

Основные характеристики микросхемы:

  • напряжение питания: +4,5. +36 В;
  • максимальный продолжительный ток в каждом канале: 0,6 А;
  • максимальный пиковый (

В настоящей версии M–Shield верхнее значение напряжения питания ограничено используемыми электролитическими конденсаторами на максимальное напряжение 25 В и может быть увеличено до максимального для микросхемы L293D значения 36 В заменой конденсаторов С7 и С8.

Особенности версии v3

Обновленная версия v3 модуля M-Shield в основном подобна предыдущей версии v2, но выполнена с применением поверхностного монтажа.

Первое важное отличие – возможность работы в режиме совместимости с аппаратным SPI. Оригинальный модуль от Adafruit Industries, как и версия M-Shield v2, в числе прочих задействует вывод 12 для управления микросхемой 74HCT595 и вывод 11 для ШИМ, и поэтому несовместимы с аппаратным SPI, и в частности с Ethernet Shield.

В версии v3 можно с помощью перемычек вместо вывода 12 использовать вывод 2, а вместо вывода 11 – вывод 9.

В таком режиме возможно совместное использование модуля M-Shield и Ethernet Shield, но нужно отметить, что выведенные на модуле штыревые разъемы для сервоприводов уже недоступны, т.к. один из них находится на занятом выводе 9, а второй на используемом SPI выводе 10.

Данный модифицированный режим работы требует изменений в управляющей библиотеке. Нами модифицирована библиотека AFMotor-08_12_2009, но ее работа протестирована только в режимах управления двигателями постоянного тока:

Второе отличие версии v3 – возможность стыковки не только с полноразмерной Arduino платой, но и с платами в формате Nano. В законченных решениях можно даже впаять плату Freeduino Nano вместо гнезд, и получить очень компактное устройство. Важно только не перепутать ориентацию платы.

Важно отметить, что модуль не может использоваться как полноценный переходник с формата Nano на полноразмерный формат Arduino, т.к. между разъемами Nano и Arduino разведены только используемые M-Shield выводы.

В последней модификации модуля применены «проходные» разъемы, позволяющие состыковывать M-Shield v3 и другие модули без сдвига относительно платы Arduino.

В комплект поставки входит M-Shield v3, разъемы Arduino Nano и разъемы «классической» Arduino. При заказе монтажа соответствующие разъемы монтируются. Если монтаж разъемов не заказывать, то при необходимости их можно будет смонтировать самостоятельно.

Существует удобная библиотека, упрощающая работу с модулем M-Shield, скачать которую можно с сайта разработчика, или у нас:

Для работы в SPI-совместимом режиме необходима модифицированная библиотека:

Как и в большинстве случаев, установка библиотеки сводится к распаковке архива в подпапку hardwarelibraries папки с ПО Arduino.

Управление двигателями постоянного тока

Для управления двигателями постоянного тока используется класс AF_DCMotor. Ниже рассмотрены его основные методы и приведены примеры работы.

Определение параметров двигателя

Убедитесь, что параметры двигателя – номинальное напряжение и ток соответствуют используемому источнику питания и параметрам M-Shield.

Если потребляемый двигателем ток превышает номинальное для драйвера L293D значение в 0,6 А, можно увеличить значение продолжительного тока до 1,2 А путем параллельного подключения двигателя одновременно к двум портам, например к М1 и М2 и составлением соответствующего алгоритма управления.

Кроме того, с целью увеличения допустимой токовой нагрузки в два раза, можно напаять на микросхему L293D «нога к ноге» ещё одну L293D, это позволит управлять более мощными двигателями с максимально-продолжительным током в каждом канале управления до 1,2 А.

Вы также можете использовать две платы M-Shield, установив одну в разъемы другой, и подключив каждый двигатель к одноименным каналам обеих плат.

Подключение двигателей постоянного тока

Расположенные на плате M-Shield 5-контактные клеммники предназначены для подключения двигателей. Центральный контакт каждого клеммника – «земля», двигатели постоянного тока подключаются к крайним парам контактов, обозначенных по номерам каналов M1, M2, M3, M4.

AF_DCMotor – конструктор объекта

Создает экземпляр класса AF_DCMotor, принимает номер канала После создания объекта можно вызывать его методы.

Задает скважность ШИМ на канале в диапазоне от 0 до 255. Значение 0 соответствует напряжению 0 В на двигателе, значение 255 – полному напряжению питания.

Задает направление движения двигателя (полярность прикладываемого напряжения). Параметр «направление» может принимать одно из следующих значений:

FORWARD – прямое направление вращения

BACKWARD – обратное направление вращения

RELEASE – остановка двигателя

Пример управления двигателями постоянного тока

Ниже приведен пример простой программы, осуществляющей ступенчатое изменение скорости вращения двигателя с интервалами в 3 секунды в следующей последовательности: +50, +75%, +50%, STOP, -50%, -75%, -50%, STOP. После завершения цикл будет повторяться.

//Создаем объект для двигателя на 1 канале (M1)
AF_DCMotor motor ( 1 ) ;

void loop ( ) <
//Задаем направление движение вперед
motor. run ( FORWARD ) ;
//Устанавливаем скорость 50%
motor. setSpeed ( 128 ) ;
//пауза 3 секунды — двигатель крутится
delay ( 3000 ) ;
//увеличиваем скорость до 75%, и пауза 3 сек.
motor. setSpeed ( 192 ) ;
delay ( 3000 ) ;
//Снижаем скорость до 50%, и пауза 3 сек.
motor. setSpeed ( 128 ) ;
delay ( 3000 ) ;
//Останавливаем двигатель, и пауза 3 сек.
motor. run ( RELEASE ) ;
delay ( 3000 ) ;
//Переключаем направление вращения
//Двигатель начнет вращаться со скоростью 50%
motor. run ( BACKWARD ) ;
//пауза 3 секунды — двигатель крутится
delay ( 3000 ) ;
//увеличиваем скорость до 75%, и пауза 3 сек.
motor. setSpeed ( 192 ) ;
delay ( 3000 ) ;
//Снижаем скорость до 50%, и пауза 3 сек.
motor. setSpeed ( 128 ) ;
delay ( 3000 ) ;
//Останавливаем двигатель, и пауза 3 сек.
motor. run ( RELEASE ) ;
delay ( 3000 ) ;
>

Управление шаговыми двигателями

Благодаря тому, что вращение ротора осуществляется фиксированными шагами, без необходимости обратной связи по положению, шаговые двигатели часто применяются в различных устройствах и механизмах.

Подключение шаговых двигателей

M-Shield поддерживает одновременное подключение двух шаговых двигателей. Управление шаговыми двигателями осуществляется с помощью той же библиотеки AFMotor, что и для работы с двигателями постоянного тока.

Для подключения однополярного шагового двигателя к M-shield необходимо определиться, какой из выводов двигателя подключен к его соответствующей обмотке. Если у двигателя пять выводов, то один из них является средней точкой двух его обмоток, которая подключается к электрической цепи GND модуля. Остальные выводы это начало, и конец обмоток, которые подключаются к портам M-shield: M1 и M2 или к M3 и M4.

Подключение двуполярного шагового двигателя к M-Shield производится аналогично однополярному за исключением того, что у него отсутствует вывод средней точки обмоток двигателя.

AF_Stepper – конструктор объекта

AF_Stepper имя_объекта(число шагов, канал);

Создает экземпляр класса AF_Stepper, принимает число шагов на один оборот двигателя и номер канала. При подключении двигателя к портам M1 и M2 указывайте 1 в качестве номера канала, при подключении к портам M3 и M4 указывайте 2.

Метод AF_Stepper::setSpeed – задание скорости

Задает частоту вращения ротора в оборотах в минуту. При указании частоты вращения больше рекомендованной для используемого двигателя с учетом напряжения питания и момента сопротивления на валу, возможно пропускание двигателем шагов.

Метод AF_DCMotor::step – вращение на нужное число шагов

имя_объекта.step(число шагов, направление, тип шага)

число шагов – требуемое число шагов;

направление – либо FORWARD (вперед), либо BACKWARD (назад);

тип шага – один из 4 вариантов: SINGLE, DOUBLE. INTERLEAVE или MICROSTEP.

SINGLE – активация одной обмотки двигателя для совершения шага;

DOUBLE – активация двух обмоток двигателя, что обеспечивает больший вращающий момент;

INTERLEAVE – чередование между SINGLE и DOUBLE режимом, с двойной точностью и половинной скоростью вращения.

MICROSTEP – применение ШИМ для управления шаговым двигателем двигателем.

Задает направление движения двигателя (полярность прикладываемого напряжения). Параметр «направление» может принимать одно из следующих значений:

FORWARD – прямое направление вращения

BACKWARD – обратное направление вращения

RELEASE – остановка двигателя

Метод AF_Stepper::release – отключение двигателя

По умолчанию шаговый двигатель удерживает свое положение после завершения шага, однако вызов release() отключает обмотки двигателя для осуществления свободного вращения ротора.

Пример управления шаговым двигателем

Ниже приведен пример простой программы, осуществляющей управление шаговым двигателем ST28, подключенным к портам M3 и M4 модуля.

У шагового двигателя ST28 32 шага на оборот, а также встроенный редуктор с передаточным числом 64, что дает 32*64=2048 шагов двигателя на один оборот выходного вала. В приведенном примере осуществляется поворот на один оборот в прямом направлении в режиме SINGLE, на один оборот в обратном в режиме DOUBLE, на пол-оборота в прямом направлении в режиме INTERLEAVE, и на пол-оборота в обратном в режиме MICROSTEP.

//Создаем объект для двигателя на 2 канале (M3 и M4)
AF_Stepper motor ( 2048 , 2 ) ;

void setup ( ) <
motor. setSpeed ( 10 ) ; // 10 оборотов в минуту
>

void loop ( ) <
motor. step ( 2048 , FORWARD, SINGLE ) ; //1 оборот
motor. step ( 2048 , BACKWARD, DOUBLE ) ; //1 оборот
//в режиме INTERLEAVE скорость в 2 раза ниже, а шаги в
//2 раза меньше. То же число полушагов даст 0.5 оборота
motor. step ( 2048 , FORWARD, INTERLEAVE ) ; //0.5 оборота
motor. step ( 1024 , BACKWARD, MICROSTEP ) ; //0.5 оборота
motor. release ( ) ;
delay ( 1000 ) ;
>

. to be continued. Планируется расширение документации примерами работы с сервоприводами

Ардуино регулировка оборотов двигателя. Частотник на ардуино. Arduino и асинхронные двигатели. Схема подключения к Ардуино Уно

Степперы есть в принтерах, сканерах, промышленных роботах, 3Д-принтерах и во многих устройствах, где нужна точность в движении.

Существует два типа шаговых двигателей: униполярные и биполярные. Униполярные двигатели легко контролировать за счет низкой производительности и мощности. У биполярных шаговых двигателей намного более высокие производительность и крутящий момент, тем не менее, ими при этом и сложнее управлять. Чтобы полностью контролировать один такой движок, требуется два Н-моста. К счастью есть множество биполярных степперов, совместимых с Ардуино (Arduino) и в этой статье мы узнаем о некоторых способах управления ими.

Мы можем управлять биполярным мотором при помощи платы Arduino Motor Shield. Вот, что нам для этого потребуется:

  • Плата Ардуино, подключенная к компьютеру посредством USB
  • Модуль Arduino Motor Shield
  • Биполярный шаговый двигатель, вы можете посмотреть их на сайтах Sparkfun, Pololu, Adafruit или выдернуть из старого принтера

Вот простой метод определить тип двигателя. Четырёхкабельный степпер обычно биполярный. Если вы видите 6 кабелей, то он скорее всего униполярный, а два центральных катушечных кабеля должны быть соединены друг с другом. Есть версии с пятью проводами, что тоже говорит о том, что моторчик униполярный и два центральных катушечных кабеля уже внутренне соединены. Есть также шаговые двигатели с 8 кабелями, но они встречаются крайне редко. Они также униполярные и четыре их центральных кабеля соединены вместе.

Как настроить ток на шаговом двигателе.

У каждого двигателя свой ток работы. Для того, что-бы он правильно работал, необходимо правильно ограничить ток на плате драйвера. Для этого на платах есть потенциометр.

Настройка Vref drv8825

Для начала нужно рассчитать VRef, делается это очень просто.

Current Limit = Vref * 2

Vref = Current Limit / 2

Например для шагового двигателя 17HS4401: Vref = 1,7 / 2 = 0,85В

Что-бы двигатель не перегревался часто Vref снижают.

Ставим щупы мультиметра так, как показано на картинке выше, меряем, что у нас там и крутим в ту или иную сторону для достижения нужного результата. Двигатель в этот момент будет менять свой звук работы.

Отлично! Ток настроен, а драйвер правильно подключен!

Сборка двигателя

Транзистор – это электрический выключатель, который активирует цифровые контакты или пины микропроцессора Aрдуино. В этом примере он управляется выводом 9, таким же образом, как и светодиод, за исключением того, что транзистор включает и выключает схему приспособления.

Эта схема работает, но она по-прежнему создает обратный ток из-за импульса прибора, по мере его замедления, или из-за того, что двигатель повернется другой стороной. Если генерируется обратный ток, он перемещается с отрицательной стороны и пытается найти простой путь к земле.

Маршрут проходит через транзистор или платформу, описанную выше. Невозможно точно вычислить, что произойдет, поэтому необходимо обеспечить способ контроля избыточного тока.

Чтобы обеспечить полную безопасность устройства, устанавливается диод через прибор. Диод обращен к источнику напряжения, это означает, что напряжение подается через устройство. Если ток генерируется в противоположном направлении, он блокируется от поступления в микропроцессор.

Внимание! Если поместить диод неправильно, ток обходит двигатель и происходит короткое замыкание. Короткое замыкание пытается заземлить весь доступный ток и может сломать USB-порт или, по крайней мере, отобразить предупреждающее сообщение, информирующее вас о том, что USB-порт потребляет слишком много энергии.

Драйвер ULN2003

Для подключения шагового двигателя к «Ардуино» используется специальный драйвер. Одним из таких является ULN2003. Связано это с тем, что при работе шагового двигателя достаточно мощная сила тока, которую контакты Arduino просто не могут выдержать. Для этого и используется драйвер. Сам двигатель подключается к драйверу, перепутать все почти невозможно, так как есть ключ, который показывает, как именно надо подключить. Ну, и далее уже сам драйвер подключается к Arduino для дальнейшей работы. Зачастую в магазинах драйвер уже идет в комплекте с шаговым двигателем. Однако есть случаи, когда двигатели продаются без драйвера, на это надо обращать внимание. Если покупать на Aliexpress, то лучше работать только с проверенными продавцами, у которых много отзывов.

Схема управления двигателем через Arduino

Для извлечения мотора из корпуса HDD просто открутите все винтики. Некоторые винты могут быть скрыты под этикеткой.

Внимание! К приводу подключена лента, не тяните ее, потому что внутри очень тонкие провода, которые подключены к катушкам двигателя. Предлагаем припаять дополнительные провода, как видно на фото.

Затем припаяйте удлинительные провода. Подключение к Arduino делаем по такой схеме:

Нужно 3 цифровых контакта для отправки сигнала, тут контакты 2, 3, 4.

Шаговый двигатель 28BYJ-48

Среди множества выбора шаговых двигателей следует обратить внимание именно на шаговый двигатель модели 28BYJ-48. Стоит она достаточно дешево, всего лишь 100-150 рублей за штуку. Как выглядит шаговый двигатель для «Ардуино», можно увидеть на фото ниже.

Многие радиолюбители отдают предпочтение именно этой модели из-за низкой цены и хорошей точности. Тип мотора — униполярный, число фаз — 4. Потребляет шаговый двигатель для «Ардуино» от 5 до 12V. Однако рекомендуется использовать 6-7V. Двигатели могут работать в двух режимах: полношаговый и полушаговый. Рекомендуется для использования в полушаговом режиме. Это 5.625 градуса на шаг. При полношаговом на шаг дается 11.25 градуса. Вес двигателя — 30 грамм.

Технические характеристики

  • Напряжение питания логики: 5V
    ;
  • Потребляемый логикой ток: 36mA
    ;
  • Напряжение питания моторов: от 5V до 35V
    ;
  • Рабочий ток драйвера:
    ;
  • Пиковый ток драйвера
    ;
  • Максимальная мощность: 20Вт (при температуре 75оС)
    ;
  • Диапазон рабочих температур: -25оС…+135оС
    ;
  • Размеры модуля: 43.5 мм х 43.2мм х 29.4мм
    ;

Основы работы с чипом L293D

Перед тем как подключать Arduino для управления мотором, стоит поэксперрментировать с чипом L293D. Как минимум, это даст вам понимание того, как именно он работает.

В данном случаем мы можем использовать Arduino исключительно для подачи питания 5 В на мотор.

Наша задача – отследить, в какую сторону вращается ротор мотора. Можете слегка зажать вал пальцами, и вы почувствуете направление вращения или прикрепить на вал какую-то метку (например, кусок бумажки). После первой проверки, подключите контакты, которые идут от 5V (питания) и от Gnd (земля) наоборот. После запуска, двигатель должен вращаться в противоположную сторону.

По большому счету, это и является концептом, на основании которого работает чип L293D. Он управляет пинами, позволяя нам менять направление вращения ротора двигателя.

Схема подключения соответствует приведенной на рисунке ниже. Питание мотора все еще обеспечивается от Arduino, но мы можем поэкспериментировать с «управляющими» пинами перед тем как полностью передать управление Arduino.

Микросхема драйвера L293D

Разумеется, необязательно собирать драйвер двигателя вручную из отдельных транзисторов. Существует множество готовых микросхем, которые позволяют управлять разными типами двигателей. Мы рассмотри распространенный драйвер L293D

Микросхема представляет собой два H-моста, а значит можно управлять сразу двумя двигателями. Каждый мост снабжен четырьмя защитными диодами и защитой от перегрева. Максимальный ток, который может передать L293D на двигатель — 1.2А. Рабочий ток — 600мА. Максимальное напряжение — 36 В.

Описание библиотеки для работы

Пакет Arduino IDE содержит стандартную библиотеку Stepper.h. Она позволяет создать объект и затем управлять им с помощью 2 функций:

  1. Инструкция Stepper(steps, pin1, pin2, pin3, pin4) прописывает объект, где steps — число шагов за 1 полный оборот в 360º, pin1 — pin4 — контакты для подключения драйвера. Чтобы создать объект motorN, необходимо задать Stepper motorN(steps, pin1-4) с нужными числовыми значениями вместо символов в скобках.
  2. Скорость вращения вала двигателя задается как void setSpeed(long rpms), где rpms — об./мин, например, motorN.setSpeed(64).
  3. Поворот вала на заданное число шагов: void step(int steps), например, motorN.step(16).

Библиотека Stepper.h позволяет запрограммировать плату в тестовых или учебных целях. Гораздо больше функций содержит библиотека AccelStepper.h: она гибко управляет скоростью, работает с разными моделями двигателей, допускает присоединение к схеме более одной машины и содержит функции, показанные в таблице 2.

Инструкции и аргументыКомментарий
AccelStepper stepperQ(1, pinStep, pinDirection);Объявление шагового двигателя с именем stepperQ.
AccelStepper stepperQ(2, pin1, pin2);Описание 2-полярной машины под управлением H-моста.
AccelStepper stepperV(4, pin1-4);Конфигурация 1-полярного движка stepperV, управляемого 4 транзисторными ключами.
stepperQ.setMaxSpeed(stepsPerSecond);Поскольку по умолчанию скорость низкая, следует записать свою, в шагах/с.
stepperQ.setAcceleration(stepsPerSecondSquared);Ускорение, шагов/с².
stepperQ.moveTo(targetPosition);Перемещение вала в новую абсолютную позицию под управлением функции run().
stepperQ.runSpeed();Апдейт — должен выполняться периодически, чтобы вал вращался.

Содержание

  • 1 Управление DC-мотором при помощи Arduino и потенциометра 1.1 Необходимое оборудование
  • 1.2 Цепь
  • 1.3 Код
  • 2 См.также
  • 3 Внешние ссылки

    Данный пример демонстрирует как управлять двигателем постоянного тока с помощью Arduino и потенциометром. Код примера демонстрирует управление скоростью вращения двигателя постоянного тока с помощью потенциометра. В зависимости от положения ручки потенциометра, двигатель будет «разгонятся», либо замедляться.

    Схема подключения Arduino, L293D и потенциометра

    После того как мы разобрались с непосредственным управлением двигателя с помощью контактов и микросхемы L293D , можно передавать все управление на плату Arduino. Микроконтроллер в данном случае будет управлять контактами Enable, In1 и In2.

    Внимательно соберите схему на основании рисунка, который приведен ниже. Если вы перепутаете контакты, очень вероятно, что работать ничего не будет.

    Подключение драйвера шагового двигателя к arduino

    У каждого радиолюбителя возникает тот момент, когда ему необходимо подключить к своему микроконтроллеру шаговый двигатель. Конечно, скажете вы, в «Интернетах» есть куча схем, готовых библиотек и все уже разжевано давным давно. Однако, когда я решил подключить к своей arduino nano драйвер DRV8825 и полез в интернет за схемкой, то обнаружил, что схем несколько. Если быть точным я нашел их 2.


    Минимальная схема подключения драйвера DRV8825


    ( почему то НЕ РАБОТАЕТ ) Альтернативная схема подключения DRV8825

    Посмотрев несколько статей, устройств, схем, я пришел к выводу, что вторя схема правильная (нет) и растравил плату. Собрав ее, долго думал почему на двигатель не поступает питание. Я менял драйвера как перчатки, но после 4 штук подумал, что дело не может быть в драйверах. Решил подать питание так как показано на первой схеме. И о чудо! Оно живое!

    Возможно, только у меня такие драйвера ( или кривые руки ), однако запустилась только первая схема, которую я теперь постоянно и использую.

    Контроллер L298N

    Working mode:Drived by H bridge(double lines)

    Driving voltage:5V — 35V

    Storage temperature: -20 — +135

    Driving current:2A (MAX single bridge)

    Контроллер L298N

    Ниже приведены разъяснения к рисунку.

    1. Для двигателя постоянного тока 1 “+” или для шагового двигателя A+
    2. Для двигателя постоянного тока 1 “-” или для шагового двигателя A-
    3. Коннектор на 12 вольт. Снимите его, если используете напряжение питания больше 12 вольт.
    4. Питания вашего двигателя обеспечивается с этого выхода. Максимальное напряжение питания постоянным током 35 вольт. Если напряжение больше 12 вольт, разомкните контакты на 3 коннекторе.
    5. GND — земля.
    6. Питание 5 вольт, если коннектор на 12 вольт замкнут. Идеально для питания Arduino и т.п.
    7. Коннектор для двигателя постоянного тока 1. Можно подключить к ШИМ-выходу для управления скоростью двигателя постоянного тока.
    8. IN1.
    9. IN2.
    10. IN3.
    11. IN4.
    12. Коннектор для двигателя постоянного тока 2. В случае использования шагового двигателя, подключать сюда ничего не надо. Можно подключить к ШИМ-выходу для управления скоростью двигателя постоянного тока.
    13. Двигатель постоянного тока 2 “+” или шаговый двигатель B+.
    14. Двигатель постоянного тока 2 “-” или шаговый двигатель B-.

    Чередование разноименных сигналов (высокий логический уровень или низкий) на парах выводов IN1, IN2 и IN3, IN4 задают направление вращения моторов.

    Выводы ENABLE A, B (ENA привязан к IN1, IN2. ENB к IN3, IN4) отвечают за раздельное управление каналами. Могут использоваться в двух режимах:

    Условно «активном» режиме (рис. 1), когда ими будет управлять контроллер — высокий логический уровень разрешает вращение моторов, низкий запрещает вне зависимости от состояния выводов «IN». Для регулировки скорости моторов, на «EN» выводы подается ШИМ (PWM) сигнал.

    Условно «пассивном» режиме (рис. 2), притянув выводы «EN» к высокому уровню (+5V). Для этого на плате, рядом с выводами ENA и ENB находятся штырьки соединенные с +5V. Замыкаем выводы с помощью джамперов . В данном режиме мы не сможем регулировать скорость двигателей, они будут всегда вращаться в полную скорость (за то для управления экономится 2 вывода контроллера). Направление вращения будет задаваться по-прежнему, а вот для остановки в данном варианте, состояние выводов будет уже играть роль. Для остановки нужно будет подавать одноименные сигналы на выоды «IN».

    Разъем +12V предназначен для питания моторов и одновременно, при одетом джампере, подает питание на стабилизатор, который выдает +5V для питания логики драйвера.

    При таком подключении ненужно подключатьотдельно +5V.

    Маркироака +12V связана стем, что напряжение питания моторов может лежать в диапазоне от 5 до 30 V, в то время как максимальное входноенапряжение стабилизатора 12V . Тоесть при одетом джампере, подача более 12V может сжечь стабилизатор

    Маркировка +12Vносит предупредительно-информационный характер. При напряжении питания моторов свыше 12 V , без опаски подаем нужное напряжение на данный вывод, нонезабываем снять джампер.

    Теперь напряжение не поступает на стабилизатор и не сможет повриедить его, но теперь необходимо подавать внешнее +5V для работы логики

    L298N и двигатель постоянного тока

    Данный модуль дает возможность управлять одним или двумя двигателями постоянного тока. Для начала, подключите двигатели к пинам A и B на контроллере L298N.

    Если вы используете в проекте несколько двигателей, убедитесь, что у них выдержана одинаковая полярность при подключении. Иначе, при задании движения, например, по часовой стрелке, один из них будет вращаться в противоположном направлении. Поверьте, с точки зрения программирования Arduino это неудобно.

    После этого подключите источник питания. Плюс — к четвертому пину на L298N, минус (GND) — к 5 пину. Если ваш источник питания до 12 вольт, коннектор, отмеченный 3 на рисунке выше, можно оставить. При этом будет возможность использовать 5 вольтовый пин 6 с модуля.

    Данный пин можно использовать для питания Arduino. При этом не забудьте подключить пин GND с микроконтроллера к 5 пину на L298N для замыкания цепи. Теперь вам понадобится 6 цифровых пинов на Arduino. Причем некоторые пины должны поддерживать ШИМ-модуляцию.

    ШИМ-пины обозначены знаком “

    ” рядом с порядковым номером.

    Схема подключения Контроллера L298N к Arduino

    Теперь подключите цифровые пины Arduino к драйверу. В нашем примере два двигателя постоянного тока, так что цифровые пины D9, D8, D7 и D6 будут подключены к пинам IN1, IN2, IN3 и IN4 соответственно. После этого подключите пин D10 к пину 7 на L298N (предварительно убрав коннектор) и D5 к пину 12 (опять таки, убрав коннектор).

    Направление вращения ротора двигателя управляется сигналами HIGH или LOW на каждый привод (или канал). Например, для первого мотора, HIGH на IN1 и LOW на IN2 обеспечит вращение в одном направлении, а LOW и HIGH заставит вращаться в противоположную сторону.

    При этом двигатели не будут вращаться, пока не будет сигнала HIGH на пине 7 для первого двигателя или на 12 пине для второго. Остановить их вращение можно подачей сигнала LOW на те же указанные выше пины. Для управления скоростью вращения используется ШИМ-сигнал.

    Скетч приведенный ниже, отрабатывает в соответствии со схемой подключения, которую мы рассматривали выше. Двигатели постоянного тока и Arduino питаются от внешнего источника питания.

    • Sketch code

    Sketch code

    // подключите пины контроллера к цифровым пинам Arduino

    голоса
    Рейтинг статьи
    Читать еще:  Электрическая схема управления двигателем вентилятора
  • Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector