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

Шаговый двигатель ардуино как работает

Управление биполярным шаговым двигателем без использования драйвера

Как-то раз мне захотелось поэксперементировать с шаговыми двигателями. С униполярным двигателем всё очень просто, достаточно полумоста на очень бюджетной микросхеме ULN2003 или ULN2803. А вот с биполярным двигателем всё гораздо сложнее. Он имеет минимум две обмотки, на каждом конце которых полярность питания должна меняться на противоположную. Кто-то скажет «зачем изобретать велосипед? Купи драйвер на L239 и радуйся жизни», может быть это и правильно, но мы же не ищем лёгких путей, да и что-нибудь спаять руки чешутся (а драйверы были куплены, просто они ещё ехали из Китая). Немного покопавшись в интернете, я заинтересовался такой штукой, как H-мост.

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

Так как у биполярного двигателя две обмотки, то нам понадобится два H-моста. Тогда для управления двумя мостами у нас получается восемь управляющих проводов (на затворы каждого транзистора). Это очень неудобно, потому что, во первых, нужно много проводов цеплять к управляющему микроконтроллеру, а во вторых, если подать управляющий сигнал одновременно на верхний и на нижний транзисторы одного плеча моста, то мы получим короткое замыкание и просто сожжём два транзистора. Поэтому я решил сделать одну хитрость: затворы нижних транзисторов каждого плеча (они у нас коммутируют минус к обмотке мотора) необходимо подключить через инвертор (в данном случае логический элемент «не»), а затворы верхних транзисторов — на вход того же инвертора. Таким образом мы получаем уже четыре управляющих сигнала (A, B, C ,D).

В итоге, если мы подаём на любую линию управления логическую единицу (ТТЛ), то у нас откроется верхний транзистор плеча, а на затвор нижнего пойдёт логический нуль и он будет закрыт. А если подать на ту же линию логический нуль , то верхний транзистор будет закрыт, а на затвор нижнего будет подана логическая единица (с выхода инвертора), и конец обмотки будет подключён к минусу. С теорией покончено.

Теперь подключаем нашу схему к arduino (или просто микроконтроллеру): линии A,B,C,D — к любому свободному пину, так же же подключаем минус и плюс 5 вольт от платы контроллера. Сами мосты запитываем от отдельного блока питания (у меня был не стабилизированный на 15 вольт).

Осталось написать программу управления

Будем управлять двигателем в полушаговом режиме (8 шажков). В моей программе написаны три функции: forward — будет крутить двигатель в одну сторону, backward — в обратную, stope — остановка. Функции запускаются с помощью терминала путём отправки символов (f,b и s соответственно). Переменная dl служит для управления скоростью вращения двигателя. Так как программа выполняется по кругу, то двигатель вращается постоянно. По аналогии можно добавить подпрограммы для одного шага или нужного количества шагов.

Внешний вид готового устройства:

Как видно из фотографии, мосты собраны из разных транзисторов (в верхних плечах пары ceb703al и 76129s выпаянные из старых материнок, в нижних плечах irf640 и irf610), так как восемь одинаковых у меня просто не было. Тем не менее схема вполне работоспособна. Так же на фото заметна пара «соплей» — перемычек — как всегда ошибки при рисовании платы.

И в конце статьи — демонстрационное видео работы устройства.

Как подключить DRV8825 к arduino?

Описание драйвера, характеристики

DRV8825 — Это драйвер шагового двигателя, с током до 2.2А и возможностью делить шаги микрошагом вплоть до 1/32. Драйвер пользуется популярностью из-за того, что рассчитан на хороший ток, хорошо делит шаги и его можно легко установить в в плату RAMPS 1.4.

Питание: от 8.2в — 45в

Микрошаг: 1/2, 1/4, 1/8, 1/16, 1/32

Ток: без радиатора до 1.5А на обмотку и 2.2А с радиатором

Защита: От перегрева, от перегрузки по току

Размеры: 20 х 15 х 10 мм

Как настроить микрошаг на DRV8825

Микрошаг, на этом драйвере, выбирается путем подачи нужных напряжений на пины M0, M1, M2. Ниже я приведу таблицу напряжений для разного деления шага. На пинах должен получаться либо высокий либо низкий уровень напряжения, в частности, можно брать напряжение пинов Arduino 5v и все будет работать как надо.

Выбор большего деления шага, дает возможность увеличить разрешение движения, но точность от этого немного страдает, а так же сильно уменьшается момент двигателя.

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

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

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

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

Возможные проблемы при подключении DRV8825 к Arduino или другому микроконтроллеру.

  1. Используется не правильная схема подключения.
  2. Не правильно настроен ток для двигателя, иногда он выкручен на минимум по умолчанию и поэтому двигатель может не работать. Далее мы это разберем.
  3. Не правильная программа (скетч).
  4. Пины которые вы используете не подходят для программы и не могут выдавать сигнал. Например на Arduino nano пины A6,A7 вообще не могут выдавать сигнал, поэтому проверяйте пины вашего контроллера на совместимость.
Читать еще:  Kia spectra двигатель троит

Подключение DRV8825 к плате RAMPS 1.4

На фото показано каким образом необходимо ставить драйвера на плате. Перемычки микрошага находятся под самими драйверами и подписаны M0, M1, M2 (иногда ms0, ms1, ms2).

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

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

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

Current Limit = Vref * 2

Vref = Current Limit / 2

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

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

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

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

Скетч для проверки драйвера шагового двигателя

Кстати купить данный драйвер можно на Aliexpress:

Так же вы можете прочитать про подключение и настройку популярного драйвера a4988 по ссылке.

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 Motor

Плата расширения Arduino Motor R3 — вид спередиПлата расширения Arduino Motor R3 — вид сзади

Общие сведения

Плата расширения Arduino Motor построена на базе микросхемы L298 (datasheet), представляющей собой двойной мостовой драйвер для управления различной индуктивной нагрузкой, такой, как реле, соленоиды, шаговые двигатели и двигатели постоянного тока. Плата расширения позволяет Ардуино управлять двумя двигателями постоянного тока, контролируя скорость и направление вращения каждого из них независимо друг от друга. Среди прочих возможностей устройства можно выделить возможность измерения тока, потребляемого каждым двигателем. Плата расширения Arduino Motor совместима с устройствами TinkerKit, что позволяет быстро собирать проекты, просто подключив готовые модули TinkerKit к плате.

Характеристики

Рабочее напряжениеот 5В до 12В
Драйвер двигателяL298P, позволяет управлять 2 двигателями постоянного тока либо 1 шаговым двигателем
Максимальный выходной ток2А на каждый канал или 4А максимум (при условии использования внешнего источника питания)
Измерение тока1.65В/А
Возможность естественной остановки и принудительного торможения

Схема и исходный проект

Питание

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

В качестве внешнего источника питания (не USB) может использоваться сетевой AC/DC-адаптер либо аккумулятор. Штекер адаптера (диаметр — 2.1мм, центральный контакт — положительный) необходимо вставить в соответствующий разъем питания на основной плате Ардуино, к которой подключена плата расширения, либо подсоединить провода от источника питания к клеммам Vin и GND, соблюдая необходимую полярность.

Для предотвращения выхода из строя Ардуино, через который запитана плата расширения, рекомендуется использовать внешний источник питания, выходное напряжение которого лежит в пределах от 7 до 12В. В том случае, если для работы подключенного двигателя требуется напряжение больше 9В, рекомендуется организовать раздельное питание Ардуино и платы расширения. Для этого достаточно разомкнуть перемычку «Vin Connect», расположенную на обратной стороне печатной платы. Максимальное напряжение Vin, которое можно подавать на винтовые клеммники, составляет 18В.

Ниже перечислены выводы питания, предусмотренные на винтовом клеммнике:

  • Vin. Напряжение Vin используется для питания двигателей, подключенных к плате расширения. Напряжение, поступающее на этот вывод от внешнего источника питания, также используется для питания Ардуино, к которому подключена плата расширения. Для того, чтобы данный источник использовался только для питания двигателей, необходимо разомкнуть перемычку «Vin Connect».
  • GND. Выводы земли.

Максимальный выходной ток, который способна обеспечить плата расширения, составляет 4А (по 2А на каждый канал).

Входы и выходы

Для управления двигателями в Arduino Motor предусмотрено два независимых канала, A и B, каждый из которых связан с 4 выводами Ардуино. Соответственно, для управления платой расширения всего задействовано 8 выводов. Каждый канал можно использовать отдельно (например, для управления двумя двигателями постоянного тока), либо функционально объединить их в один канал для управления шаговым двигателем.

В нижеследующей таблице перечислены выводы, относящиеся к каждому каналу Arduino Motor:

Функциявыводы канала Aвыводы канала B
Направление вращенияD12D13
Скорость вращения (ШИМ)D3D11
Остановка двигателяD9D8
Измерение токаA0A1

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

Ниже перечислены дополнительные разъемы, присутствующие на плате расширения:

  • Винтовой клеммник для подключения двигателей и источника питания для них.
  • 2 белых разъема TinkerKit — два аналоговых входа; соединены с линиями A2 и A3.
  • 2 оранжевых разъема TinkerKit (по центру) — два аналоговых выхода; соединены с ШИМ-выходами D5 и D6.
  • 2 белых разъема TinkerKit (четырехконтактных) — интерфейс TWI; один разъем используется в качестве входа, другой — в качестве выхода.

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

Коллекторный двигатель постоянного тока. Arduino Motor позволяет управлять двумя коллекторными двигателями постоянного тока. Для подключения каждого двигателя к каналу A или B необходимо подсоединить его провода к клеммам (+) и (-) соответствующего канала. При правильном подключении устройство позволяет контролировать направление и скорость вращения каждого двигателя. Для изменения направления вращения достаточно подать высокий (HIGH) или низкий (LOW) уровень сигнала на выводы DIR A или DIR B. Изменение скорости вращения двигателей осуществляется путем изменения коэффициента заполнения ШИМ-сигнала на выводах PWM A и PWM B. Для резкой остановки каждого двигателя необходимо подать высокий уровень сигнала (HIGH) на выводы Brake A и Brake B. Для медленной остановки — достаточно просто прекратить подачу питания. Чтобы узнать величину постоянного тока, потребляемого каждым двигателем, необходимо считать напряжение на выводах SNS0 и SNS1. Для этого можно применить функцию analogRead(), указав ей в качестве параметра аналоговый вход A0 или A1. Напряжение на этих выводах будет пропорционально току, протекающему через каждый канал платы расширения, и ограничено величиной в 3.3В, которое соответствует максимальному току в 2А.

Физические характеристики

Максимальная длина и ширина печатной платы Arduino Motor составляет 6.9 см и 5.4 см соответственно. Четыре крепежных отверстия позволяют закрепить плату в корпусе или на какой-либо поверхности. Обратите внимание, что расстояние между цифровыми выводами 7 и 8 не кратно традиционным 2.54 мм и составляет 4 мм.

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector