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

Arduino как подключить драйвер двигателя

Драйверы двигателя L298N, L293D и Arduino Motor Shield

  • 14-03-2018
  • Arduino
  • Artist
  • 491

Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. 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-моста

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

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

Q1Q2Q3Q4Состояние
11Поворот мотора вправо
11Поворот мотора влево
Свободное вращение
11Торможение
11Торможение
11Короткое замыкание
11Короткое замыкание

Драйвер двигателя L298N

Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В. При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.

Плата выглядит следующим образом:

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

  • Vcc – используется для подключения внешнего питания;
  • 5В;
  • Земля GND;
  • IN1, IN2, IN3, IN4 – используется для плавного управления скоростью вращения мотора;
  • OUT1, OUT2 – используется для выхода с первого двигателя;
  • OUT3, OUT4 – используется для выхода со второго двигателя;
  • S1 – переключает питание схемы: от внешнего источника или от внутреннего преобразователя;
  • ENABLE A, B – требуются для раздельного управления каналами. Используются в двух режимах – активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).

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

Драйвер двигателя 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. Пример подключения одного двигателя к Ардуино показан на рисунке.

Драйвер двигателя на микросхеме 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 будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.

IAIBСостояние мотора
Остановка
1Двигается вперед
1Двигается назад
11Отключение

Подключение одного двигателя к Ардуино изображено на рисунке.

Сравнение модулей

Модуль 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. При правильной сборке вал двигателя начнет вращаться.

При работе с моторами Ардуино может периодически перезагружаться. Это возникает из-за того, что двигателям требуются большие токи при старте и в момент торможения. Для решения этой проблемы в плату встроены конденсаторы, диоды и другие схемы. Также для этих целей на шидле имеется раздельное питание.

УПРАВЛЕНИЕ МОТОРОМ HDD ОТ ARDUINO

В винчестерах старого типа (не SSD) используются очень неплохие бесколлекторные двигатели BLDC. И часто бывает что сам винт сгорел, а двигатель работает прекрасно и выкидывать его жалко. Бесщеточные двигатели более долговечны, чем обычные коллекторные, поскольку в них отсутствует коммутатор — щетка коллектор.

Обычно используют электронные переключатели для реверсирования тока в подобных бесколлекторных двигателях. В двигателях типа BLDC катушки намотаны на статоре, а ротор имеет постоянный магнит. Но следует отметить, что бесщеточный двигатель не может работать от обычного источника постоянного тока. Нужен контроллер (драйвер). Его функции выполняет стандартная Ардуино плата.

Выходы Arduino питают транзисторы Дарлингтона TIP122 и управляют тремя фазами электродвигателя. Каждая фаза контролируется с помощью своего контакта микросхемы.

Обычно моторчик жесткого диска имеет 3 фазы + 1 общую = 3 фазы с 4-мя проводами. Используйте мультиметр для проверки сопротивления в этих четырех точках схемы измерения. Общий вывод + катушка = 1 Ом. Катушка + катушка = 2 Ома.

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

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

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

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

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

Компоненты контроллера

  • 3 штуки резисторы 1 кОм
  • 3 транзистора Дарлингтона TIP122
  • 3 диода 1N4004
  • 1 аккумулятор с напряжением от 5 до 12 В

Соедините всё как показано на рисунках.

Тут подшипник 22х8 в середине — он не из винчестера, лежит просто для сравнения.

Кодирование Ардуино

Программа может быть такой, а можете разработать свою, например с плавным стопом-стартом.

const int phase1pin = 2;
const int phase2pin = 3;
const int phase3pin = 4;
const int delayTime = 6000; // microsecs

void setup() <
Serial.begin(9600);
pinMode(phase1pin, OUTPUT);
pinMode(phase2pin, OUTPUT);
pinMode(phase3pin, OUTPUT);
>

void loop() <
switchStep(1);
switchStep(2);
switchStep(3);
>

void switchStep(int stage) <
switch(stage) <
case 1:
digitalWrite(phase1pin, HIGH);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 2:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, HIGH);
digitalWrite(phase3pin, LOW);
delayMicroseconds(delayTime);
break;
case 3:
digitalWrite(phase1pin, LOW);
digitalWrite(phase2pin, LOW);
digitalWrite(phase3pin, HIGH);
delayMicroseconds(delayTime);
break;
>
>

Для данного двигателя от жесткого диска с 5400 об / мин использовалось напряжение 3,7 х 3 = 11,1 В. Минимальный период цикла = 1,3 мс, то есть он занимает около 1,3 х 2,25 х 2 = 5,85 мс для 1 об. Вы можете изменять значения в программе.

Форум по обсуждению материала УПРАВЛЕНИЕ МОТОРОМ HDD ОТ ARDUINO

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

Импульсные стабилизаторы напряжения AIMTEC AMSR и AMSRI — отличная замена для популярных 78xx / 79xx микросхем.

Обзор возможностей комплекта бесконтактного модуля считывателя карт RFID RDM6300. Подключение схемы и тесты.

arduinoLab

Двухканальный драйвер коллекторных моторов TB6612

TB6612FNG — это двухканальный мостовой (H-bridge) драйвер для двух коллекторных двигателей или одного шагового.

Характеристики драйвера:

  • Диапазон напряжения питания силовой части: 4,5V … 13,5V.
  • Диапазон напряжения питания логической части: 2,7 … 5,5V

Особенности модуля:

Модуль собран на микросхеме TB6612FNG от Toshiba, это двухканальный мостовой драйвер, микросхема функциональна схожа с популярными драйверами L293D, L298N но в отличии от них, в драйвере использованы MOSFET транзисторы, драйвер также имеет защиту по температуре, перенапряжению и короткому замыканию. Может управляется логическим уровнем 3.3 вольта.

На модуле не удобно выполнена маркировка выводов, по этому имеет смысл запаять штырьки со стороны микросхемы.

Подключение модуля к Arduino:

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

  • PWMA PWMB — Вход для управления скоростью вращения мотора, для канала A и B соответственно, подключается на выход arduino с поддержкой ШИМ (PWM).
  • AIN1 AIN2 — Входы полумостов канала A, подключаются на любые свободные выходы arduino.
  • BIN1 BIN2 — Входы полумостов канала B.
  • A01 A02 — Выходы полумостов канала A, подключается коллекторный двигатель.
  • B01 B02 — Выходы полумостов канала B.
  • STBY — Включение микросхемы, подключаются на любой свободный выход arduino.
  • VM — Вход питания силовой части микросхемы, питание двигателей.
  • VCC — Вход питания логической части микросхемы.
  • GND — Масса.

Все входы управления (PWMA(B), A(B)IN1(2), STBY) притянуты к массе резистором на 200к.

Подключение к arduino:

Подключение и работа с модулем не отличается от других мостовых драйверов, модуль можно подключать на любые свободные выходы arduino, кроме ног PWM, для него выход должен уметь генерировать ШИМ, такие выходы обозначены

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

Подключение шагового двигателя. Контроллер L298

Серия статей: Программирование Arduino с нуля #8

Серия статей: Arduino, использование шаговых двигателей #1

Мы подключили к нашему контроллеру обычные двигетели постоянного тока. С их помощью можно, например двигать мобильную платформу на колесном или гусеничном ходу или совершать простейшие действия (типа открытия двери или поднятия штор). Вот только регулировать вращение этих двигателей можно только подавая на них определенное напряжение. И если мы, например, подадим 100% мощности на одну секунду, мы не можем быть уверены, что за это время двигатель повернет вал, например, на 100 оборотов. Ведь нагрузка может меняться, а соотвтетственно и скорость вращения при той-же заданной мощности. В случае визуального управления роботом это не проблема – увидел, что робот проехал нужную дистанцию – подал команду на остановку. Но мы веть хоти создавать именно автоматические устройства, которые не будут ребовать посоянного внимания. Тут есть несколько вариантов:

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

Если же нам нужно обеспечить более точное управление двигателем, чтобы он делал точное количество оборотов или даже долей оборота – тогда нам нужно применять шаговые двигатели. С их помощью можно совершать очень точные движения, ведь вращение вала контролируется с точностью до нескольких градусов. Благодаря этому можно использвоать такие двигатели для точныз перемещений – в станках с ЧПУ, 3D принтерах и там, где возможностей сервоприводов недостаточно.

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

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

Если же проводов шесть – это униполярыный двигатель. По два провода подключены к концам каждой обмотки и по одному – в ее середине. Эти провода подключается к заземлению.

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

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

Конечно мы можем вручную написать код, который с определенным интервалом будет чередовать подачу тока на обмотки и таким образом обеспечить управление нашим двигателем. Но этот код давно уже написан и входит в стандартную сборку Arduino IDE, просто подключим библиотеку Stepper командой #include . Теперь создадим объект типа stepper и укажем, к каким именно пинам подключены наши обмотки. Для этого нам нужно указать еще одну характеристику шагового двигателя – количество шагов для одного оборота вала. Стандартыне двигатели, которые проще всего приобрести, обычно имеют точность позиционирования 1,8° или 3.6°. Этот угол соответствует значению одного шага, соответственно для одного оборота нужно будет совершить, соответственно, 200 и 100 шагов. Пусть наш двигетель обладет точностью 200 шагов на оборот:

Поскольку при управлении шаговым двигателем используется только наличие или отсутствие тока на обмотках, то нам нет необходимости в подключении выходов с ШИМ регулированием. Достаточно использовать только пины I1 и I2 . Логическая единица на выводе будет соотвтетствовать подаче номинального напряжения на один конец обмотки и нулевого – на другой. Логический ноль — номинальное напряжение на втором конец обмотки и нулевого на первом. Таким образом каждая из двух обмоток управляется одним цифровым выходом.

Также контроллер двигателя может иметь независимое управление каждым выходом (т.е. когда для управления одной парой выводов используется три цифровых выхода – два обычных для независимого управления каждым выходом и один ШИМ для регулирования значения подаваемого напряжения). Здесь мы полностью независимо указываем, какое напряжение (высокое или низкое) подавать на каждый из концов обмотки, т.е каждая из двух обмоток управляется с помощью двух цифровых выводов

Схема подключения такого типа контроллера двигателя:

И в том, и в другом случае на каждую обмотку будет подпапться ток на время, достаточное для совершения валом одного шага. Затем ток с первой обмотки убирается, а подается на вторую (для следующего шага), или ток подается на обе обмотки (для остановки вала в текущем положении) или же тока с обеих обмоток будет снят (для свободного вращения вала) Частота таких переключений будет регулировать скорость вращения. Для изменения частоты служит метод Stepper.setSpeed(int speed); который устанавливает для нашего шагового двигателя определенную скорость вращения (в оборотах в минуту). При этом при вызове этого метода двигатель не начнет вращаться с указанной скоростью – мы только устанавливаем скорость. Для движения необходимо использовать метод Stepper.step(int steps); , который подает команду двигателю сделать steps шагов со скоростью, установленной командой setSpeed . Пример использования для двигателя, подключенного к 4 и 7 пинам:

После загрузки на контрорллер, подключенный к нему двигатель сделает пол оборота со скоростью 60 об/мин (1 об/сек, т.е. на пол оборота ему понадобится 0.5 секунды), остановится на одну секунду, затем с той-же скоростью провернется на пол оборота в обратном направлении.

Нужно уситывать, что мы здесь не можем напрямую влиять на скорость вращения – только на частоту шагов. И если для средних и больших скоростей вращения это не так важно, то при малых значениях скорости будет хорошо заметно прерывистое вращение вала. Например, при установленной скорости 1 оборот в минуту вал двигателя не будет медленно вращаться со скоростью 6 градусов в секунду. Он максимально быстро повернется на 1,8 градуса, затем остановится на треть секунды мс, затем повернется еще на 1,8 градуса, и т.д. Для средних скоростей такое прерывистое значение будет не так заметно, зато хорошо слышны частые щелчки (с частотой переключения обмоток). Поэтому в тех случаях, где нужно медленное и плавное движение, использовать шаговые двигатели напрямую не получится – нужно будет добавлять понижающий редуктор или использовать традиционные двигатели постоянного тока.

Подключение Motor Shield L293D к плате Arduino и управление электромоторами

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

Чем эта статья может быть вам полезна

Целью статьи является научиться практически, связывая Motor Shield L293D и Arduino, научиться управлять электромоторами. В этой статье вы познакомитесь с базовыми знаниями, которые будут необходимы для создания более серьезного проекта. Также мы узнаем из каких элементов состоит Motor Shield L293D и его технические характеристики.

Технические характеристики Motor Shield L293D

Motor Shield L293D имеет следующие характеристики :

  • Максимальный продолжительный ток в каждом канале: 0,6 А;
  • Допустимый ток нагрузки 600мА на канал, пиковый ток — 1.2A
  • Питание моторов от 4.5 В до 36 В
  • 4-х канальное управление
  • Присутствует защита от перегрева
  • Присутствует контакт для дополнительного питания платы

Разберемся же, из чего состоит этот motor shield. На фотографии ниже вы можете найти цифры, на которые мы будем опираться.

1 . Под цифрой «1» на плате находятся микросхемы, обеспечивающие работу шилда. Две крайние микросхемы называются L293D, они позволяют управлять слаботочными двигателями с током потребления до 600 мА на канал. По центру же находится микросхема, которая уменьшает количество управляющих выводов.

2 . Под вторым номером находятся выводы, отвечающие за подключение сервоприводов. На плате обозначены контакты питания, так что подключить сервопривод не составит труда.

3 . Под цифрой 3 обозначены клемма, к которым нужно подключать электродвигатели. Имеются 4 клемма под названиями: M1, M2, M3, M4. Следовательно, подключить к плате возможно только 4 электромотора.

4 . Здесь размещены клемма, через которые вы можете запитать ваш шилд, ведь для работы моторов необходимо большее напряжение, чем напряжение от Arduino. Хотелось бы отметить важный момент, чтобы запитывать Motor Shield L293D иным источником необходимо снять перемычку, которая находится под цифрой 5

5 . Под цифрой пять находится перемычка, отвечающая за питание шилда.

Также на motor shield L293D находится светодиод, который горит только тогда, когда подсоединенные электромоторы запитанны и могут выполнять свое предназначение. А если светодиод не проявляет признаков жизни, то ваши электромоторы работать не будут, так как источника питания не хватает на работу моторов или его совсем нет.

После того, как мы познакомились с технической информацией устройства, перейдем к практической части.

Необходимые компоненты для подключения

Для подключения нам необходимы следующие компоненты:

Все эти элементы можно приобрести по низкой цене и с высоким качеством в интернет магазине SmartElements.

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

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

Схема подключения Motor Shield L293D и Arduino

Присоединение шилда к Arduino воспроизводится стандартным способом, а именно прямым подключением, сделав «бутерброд». Как это сделать, вы можете увидеть на фотографии ниже.

После подключения Motor Shield L293D к Arduino, нам необходимо присоединить оставшиеся компоненты. Правильное подключение показано на фотографии ниже.

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

Готовый программный код для управления Motor Shield L293D

Для работы датчика на Arduino нужно скачать и установить библиотеку AFMotor .

Скачать библиотеку можно здесь .

После того, как мы скачали нужную библиотеку, ее нужно правильно установить. Скачанные файлы нужно переместить по следующему пути :

Диск C Progtam Files Arduino Libraries

После того, как мы все сделали перейдем к самой важной ступеньке, а именно к программированию.

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

Для начала рассмотрим подключение одного мотора к Motor Shield L293D и Arduino.

Перейдем ко второму коду, для управления уже несколькими электромоторами.

Разбор програмного скетча для управления электромоторами с помощью Motor Shield L293D и Arduino

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

В участке кода, представленном ниже, мы задаем максимальную скорость, для электромоторов. Мы указали максимальное значение скорости равное «255».

В данном участке кода мы командой «motor1. run (FORWARD);» задаем движение электродвигателям вперед, а командой «motor1. setSpeed (255);» указываем, с какой скоростью будут они работать. Если вы захотите установить максимальную скорость, то ее значение должно быть таким, которое указано в строчке «motor1. setSpeed (255);» (в нашем случае значение максимальной скорости равно 255).

Вы можете заметить строчки, в которых указана функция » delay «(Пример такого кода указан ниже). Эта функция отвечает за продолжительность действия того или иного действия. В нашем случае » delay » указывает, какое количество времени двигатель будет бездействовать.

Надеюсь у вас все получилось! Если у вас остались вопросы, можете написать нам в вконтакте или в комментариях ниже. Мы постараемся ответить на ваши вопросы в скором времени!

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