2шт / лот L298N Контроллер двигателя Плата Шаговый модуль управления двигателем Двойной H-мост + 4 комплекта DC Двигатель Смарт Автомобильное колесо для Arduino – купить по низким ценам в интернет-магазине Joom

Содержание

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

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

Управление двигателем при помощи Arduino и сгенерированным сигналом ШИМ

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

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

Принципиальная схема управления dc мотором

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

Полный скетч проекта:

  • void setup – поле для установки рабочего выхода с ШИМ порта;
  • void loop – поле для формирования рабочего процесса;
  • motorSpeed – задает скорость вращения двигателя;
  • analogWrite – задает работу конкретного вывода платы;
  • delay – устанавливает величину временного промежутка.

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

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

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

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

Посмотрите на рисунок, в этой схеме управление питанием двигателя происходит от выводов А и В, на которые подается управляющий потенциал.

Принцип определения направления вращения в Н-мосте происходит следующим образом:

  • при подаче на базы транзисторов Q1 и Q4 импульса для открытия перехода происходит протекание тока по обмоткам двигателя в одном направлении;
  • при подаче на базы транзисторов Q2 и Q3 импульса для открытия перехода ток будет протекать в противоположном направлении, в сравнении с предыдущим и произойдет реверсивное движение;
  • попарное открытие транзисторов Q1 и Q3, Q2 и Q4 приводит к торможению ротора;
  • открытие транзисторов в последовательности Q1 и Q2 или Q3 и Q4 совершенно недопустимо, поскольку оно приведет к возникновению короткого замыкания в цепи.

Применяя схему Н-моста для управления работой двигателя постоянного тока, вы сможете реализовать полный набор операций для электрической машины без необходимости переподключения ее выводов. В виду сложности подбора транзисторов и подключения их в схему Н-моста, гораздо проще использовать уже существующие драйвера, имеющие такую функцию. Среди них наиболее популярными являются драйверы L293D и L298N.

Сравнивая оба драйвера, следует отметить, что L298N превосходит L293D как по параметрам работы, так и по доступным опциям. Несмотря на то, что L293D более дешевая модель, L298N, ввиду значительных преимуществ, стал использоваться куда чаще. Поэтому в данном примере мы рассмотрим принцип управления двигателем при помощи драйвера L298N и платы Arduino.

Что представляет собой драйвер L298N?

Данная плата содержит микросхему и 15 выходов для генерации управляющих сигналов. Предназначено для передачи сигналов к рабочим элементам индуктивного типа – обмоткам двигателя, катушкам реле и т. Конструктивно L298N позволяет подключать в работу до двух таких элементов, к примеру, через нее можно одновременно управлять двумя шаговыми двигателями.

На схеме ниже приведен пример распределения выводов L298N от рабочей микросхемы.

  • Vss – вывод питания для логических цепей в 5В;
  • GND – нулевой вывод (он же корпус);
  • INPUT1, INPUT 2, INPUT 3, INPUT 4 – позволяют плавно наращивать и уменьшать скорость вращения двигателя;
  • OUTPUT1, OUTPUT2 – выводы для питания первой индуктивной нагрузки;
  • OUTPUT3, OUTPUT4 – выводы для питания второй индуктивной нагрузки;
  • Vs – вывод для переключения питания;
  • ENABLE A, B – выводы, при помощи которых осуществляется раздельное управление каналами, могут устанавливать активный и пассивный режим (с регулируемой скоростью вращения и с установленной);
  • CURRENT SENSING A, B – выводы для установки текущего режима.

Принцип управления двигателем при помощи Arduino и драйвера L298N

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

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

Пример драйвера L298N

Теперь разберем, как осуществляется управление двигателем с помощью драйвера L298N. Подключение двигателя производится к винтовым клеммным зажимам – по паре для питания каждого моторчика. Остальные клеммные зажимы предназначены для подачи питания плюс и минус, а также получения пониженного напряжения (на них подается определенный уровень питающего напряжения, от которого работают двигатели, а внутренний преобразователь понижает его до 5В для собственных логических цепей). Штекерные выводы платы осуществляют широтно-импульсную модуляцию при формировании рабочих сигналов.

Зажимы, куда подключать моторы

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

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

Простой пример работы Arduino с драйвером L298N

Сейчас мы рассмотрим пример простой схемы совместного использования Arduino и L298N. Такой вариант позволяет управлять скоростью вращения вала и его направлением у двигателя постоянного тока. Для этого задается специальная программа на ПК, которая будет определять генерацию ШИМ сигнала от L298N и направление протекания электрического тока через Н-мост. Разумеется, для формирования схемы потребуются еще несколько дополнительных компонентов, которые позволят соединить между собой драйвер, Ардуино, компьютер и двигатели.

Схема совместного использования Arduino и L298N

Перечень необходимых компонентов для сборки схемы:

  • Arduino UNO — наиболее простая модель из линейки, но его функционала будет более чем достаточно. Если вы используете более продвинутый вариант, то он также хорошо справится с этой задачей.
  • Драйвер L298N – не самый доступный драйвер, но заменить его другим не получится, так как принцип работы похожих моделей может в корне отличаться.
  • Двигатель на 12 В – в данном примере используется электрическая машина постоянного тока.
  • Потенциометр 100 кОм.
  • Кнопка для коммутации цепи.
  • Источник питания 12 В — может подойти любой вариант, включая несколько пальчиковых батареек.
  • Плата для установки элементов.
  • Соединительные провода, желательно с готовыми штекерами папа/мама.

КомпонентСпецификацияКоличествоГде купитьArduinoUNO Rev3. 01ДрайверL298N1Мини-двигатель12В, DC, 6000 об/мин. 1Блок питания12 Вольт1КнопкаMicro SMD SMT1Потенциометр100 кОм1Соединительные проводапапа-мама

Полный код проекта:

Практическое применение.

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

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

Подключение мотор шилд к Ардуино

L293D motor shield Arduino ► рассмотрим подключение к плате Ардуино, команды библиотеки AFMotor для управление от L293D серво и моторами постоянного тока.

Сегодня мы разберем весьма полезное расширение для платы Arduino UNO — Motor Control Shield L293D, рассмотрим схему подключения к данному шилду сервомоторов, шаговых двигателей и моторов постоянного тока. Также вы можете ознакомиться с командами, используемых в библиотеке AFMotor. h, и попробовать различные скетчи для управления шаговыми двигателями и моторами постоянного тока на Ардуино.

Схема, характеристики

Микроконтроллер Ардуино позволяет любому начинающему радиолюбителю изготавливать сложные автоматизированные устройства и проекты. Использование Motor Shield может стать полезным дополнением во в многих проектах на Arduino, так как позволяет подключить сразу 2 сервопривода, 2 шаговых двигателя и до 4 двигателей постоянного тока (с реверсом направления вращения ротора).

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

Характеристики Мотор Шилд L293D

При подключении серводвигателей и моторов к Ардуино используются различные порты, к которым нельзя подключать другую периферию. Так, для серво используются цифровые порты 9 и 10, для шаговых двигателей и моторов используются порты с 3 по 8 и 12. Если вы желаете еще что-то подключить, то используйте 0 и 1 порт, 2 и 13, а также аналоговые входы (порты A0-A5 можно использовать как цифровые выходы).

Как подключить Motor Shield к Ардуино

Для этого занятия нам потребуется:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • Motor Shield L293D;
  • сервомотор;
  • двигатели постоянного тока;
  • шаговый двигатель;
  • провода «папа-мама», «папа-папа».

К Ардуино шилд подключается очень просто — он устанавливается на плату UNO прямо сверху. Обратите внимание, что без подключения внешнего источника питания к Motor Shield, логика и двигатели будут работать от 5 Вольт, что не всегда бывает достаточно. Поэтому скорость вращения моторов постоянного тока при подключении платы Ардуино от компьютера и блока питания будет значительно отличаться.

Мотор Шилд Ардуино схема подключения

Скетч для Motor Shield L293D Ардуино и моторов

  • Для каждого мотора следует присваивать свое имя AF_DCMotor motor1(1) ;
  • Максимальная скорость вращения motor1.setSpeed(255) равна 255;
  • Без команды motor1.run(RELEASE) мотор продолжит вращаться.

Скетч для подключение серво и шаговых двигателей

Для управления сервоприводами используется стандартная библиотека Servo. h, сами сервоприводы подключаются к цифровым выходам 9 и 10 через штырьки на краю платы. К шилду можно подключить только два сервопривода и два шаговых двигателя. Первый шаговый двигатель подключается к клеммам M1 и M2, а второй к клеммам M3 и M4. Схема подключения двигателей к Motor Shield L293D изображена далее.

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

После подключения Stepper Motor к шилду загрузите в плату следующий скетч:

УПРАВЛЕНИЕ МОТОРОМ С ARDINO

Библиотека подходит для большинства драйверов, построенных по схеме H-мост, на два мотора они обычно имеют 4 входа (по 2 на каждый). Также на сайте есть отдельный подробный урок по работе с коллекторными моторами.

БИБЛИОТЕКА GYVERMOTOR

Библиотека для удобного управления моторчиками через драйвер полного моста для Arduino

  • Контроль скорости и направления вращения
  • Работа с 10 битным ШИМом
  • Программный deadtime
  • Отрицательные скорости
  • Поддержка двух типов драйверов и реле
  • Плавный пуск и изменение скорости

Поддерживаемые платформы: все Arduino (используются стандартные Wiring-функции).

В версии 2. 2 добавлена поддержка плат на базе ESP

Подключение

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

ДОКУМЕНТАЦИЯ

Библиотека поддерживает три типа драйверов:

  • DRIVER2WIRE – двухпроводной драйвер (направление + ШИМ)
  • DRIVER2WIRE_NO_INVERT – двухпроводной драйвер, в котором при смене направления не нужна инверсия ШИМ
  • DRIVER3WIRE – трёхпроводной драйвер (два пина направления + ШИМ)
  • RELAY2WIRE – реле в качестве драйвера (два пина направления)

Инициализация происходит следующим образом:

  • GMotor motor(DRIVER2WIRE, dig_pin, PWM_pin, level);
  • GMotor motor(DRIVER3WIRE, dig_pin_A, dig_pin_B, PWM_pin, level);
  • GMotor motor(RELAY2WIRE, dig_pin_A, dig_pin_B, level);
  • dig_pin , dig_pin_A , dig_pin_B – любой цифровой пин МК
  • PWM_pin – любой ШИМ пин МК
  • level – LOW / HIGH – уровень драйвера. Если при увеличении скорости мотор наоборот тормозит – смени уровень

Настройки

  • setDeadtime(us) – установка программного deadtime на переключение направления, us в микросекундах. По умолчанию стоит 0: deadtime отключен
  • setDirection(dir) – ГЛОБАЛЬНАЯ смена направления вращения мотора например чтобы FORWARD совпадал с направлением движения “вперёд” у машинки. dir – REVERSE или NORMAL (умолч.)
  • setLevel(level) – смена уровня драйвера (аналогично при инициализации). Если при увеличении скорости мотор наоборот тормозит – смени уровень. level – LOW или HIGH
  • setMinDuty(duty) – минимальный сигнал (по модулю), который будет подан на мотор. Автоматически сжимает диапазон регулирования мотора: например minDuty поставили 50, и при сигнале 1 будет на мотор будет подано

51, максимум останется прежним (диапазон сигнала переведётся в 50. 255 внутри библиотеки).

Режим работы

У мотора есть 5 режимов работы, устанавливаются при помощи setMode(mode) , где mode:

  • FORWARD – вперёд
  • BACKWARD – назад
  • STOP – холостой (мотор отключен)
  • AUTO – отдать управление функции setSpeed()

Управление скоростью и направлением

Скорость устанавливается при помощи функции setSpeed(speed). Есть два варианта управления скоростью:

  • Направление в ручном режиме, скорость 0..255 (0..1023). В этом случае скорость должна быть положительной ( setSpeed(0..255) ), направление вращения задаётся при помощи setMode() . При направлении FORWARD частота оборотов растёт по мере увеличения setSpeed(speed) , при направлении BACKWARD частота оборотов растёт в противоположную сторону по мере увеличения setSpeed(speed) .
  • Направление в автоматическом режиме, скорость -255..255 (-1023..1023 для 10 бит). В этом случае устанавливаем setMode(AUTO) и подаём скорость во всём диапазоне. При значении мотор -255 крутится с максимальной скоростью в направлении “назад”, при 255 – в направлении “вперёд”. При значении 0 (ноль) режим автоматически переключается на STOP. Если задан параметр minDuty (при помощи setMinDuty() ), то режим STOP будет автоматически активирован при значении скорости в пределах (-minDuty, minDuty). Пример: у нас есть мотор, экспериментально установлено, что он начинает вращаться при величине скорости больше 50 (и, соответственно, меньше -50), при меньшем значении он просто “пищит” и стоит на месте. Если мы выставим setMinDuty(50) , то в диапазоне -50..50 мотор автоматически будет находиться в режиме STOP и не будет пищать при “шуме” задающего сигнала.

Разрешение ШИМ

setSpeed(speed) может работать с ШИМ любого разрешения, для этого нужно

  • Перевести таймер в режим нужного разрешения. 8 битные таймеры можно запустить только на пониженном разрешении, а 16 битный – например на 10 битах (выводы D9 и D10), смотрите пример в библиотеке и урок по частоте ШИМ. По Arduino MEGA пока что такого готового набора у меня нет.
  • Настроить нужный объект класса GMotor на нужное разрешение при помощи setResolution(bit) , где bit – разрешение ШИМ в битах (по умолчанию 8). Также не забыть подключить пин драйвера ШИМ к выводу настроенного в первом пункте таймера (смотри пример).

Несколько моторов могут работать на одной плате с разным разрешением, т. например 2 мотора на таймере 1 с разрешением 10 бит, и ещё два на таймере 2 с разрешением 8 бит.

Плавное управление скоростью

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

  • setSmoothSpeed(acc) – установка скорости изменения скорости (т.е. ускорения) мотора
  • smoothTick(speed) – данная функция сама меняет скорость мотора, плавно приближая её к указанной speed . Функция работает по встроенному таймеру на millis() с периодом 50 мс, то есть рекомендуется вызывать smoothTick(speed) не реже, чем каждые 50 мс.

В примере smooth_control можно открыть плоттер и посмотреть, как работает алгоритм.

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

декабря 28, 2014 Arduino Андрей Антонов Печать

Adafruit Motor Shield или же его клон, который я и использую — Freeduino Motor Shield v. 0 представляют собой модуль, обеспечивающий функциональность для использования двигателей постоянного тока, сервомоторов и шаговых двигателей совместно с Arduino.

Чем же интересен этот шилд?

  • Содержит 4 H-моста: шилд основан на микросхемах L293D, которые обеспечивают ток до 0.6 А (допустимое пиковое значение — 1.2 А) и имеют встроенную тепловую защиту от обратного пробоя диодов. Возможно использование моторов с напряжением питания от 4.5 до 25 В.
  • Возможно подключение до 4 двунаправленных моторов постоянного тока с заданием скорости с 8-битным разрешением для каждого.
  • Возможно подключение до 2 шаговых однообмоточных, двухобмоточных или же с переключением обмоток двигателей (уни- или биполярных).
  • Подтягивающие резисторы, не дающие двигателям включаться при подаче питания.
  • Большие клеммные колодки для подключения моторов и питания.
  • Отдельная кнопка Reset для сброса Arduino.
  • Двухконтактный разъем для подключения внешнего источника питания и джампер для выбора источника питания.
  • Совместимость с Arduino UNO, Mega, Diecimilia и Duemilanove.
  • Простая в использовании программная библиотека.

Freeduino Motor Shield с подключенными четырьмя двигателями постоянного тока и двумя сервами

Аналогичный шилд (только более дешевый) можно купить, например, здесь

Принципиальная схема Adafruit Motor Shield

Используемые пины Arduino

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

  • D11: DC мотор №1 / шаговый двигатель №1 (активация/управление скоростью)
  • D3: DC мотор №2 / шаговый двигатель №1 (активация/управление скоростью)
  • D5: DC мотор №3 / шаговый двигатель №2 (активация/управление скоростью)
  • D6: DC мотор №4 / шаговый двигатель №1 (активация/управление скоростью)

Следующие выводы используются только при использовании шаговых или двигателей постоянного тока:

Следующие выводы используются только при подключенных сервоприводах:

  • D9: Управление сервой №1
  • D10: Управление сервой №1

Библиотека AFMotor

Для того, чтобы использовать Motor Shield в своих проектах можно воспользоваться библиотекой AFMotor. Для этого:

  • Скачиваем библиотеку AFMotor с GitHub.
  • Распаковываем полученный ZIP-архив.
  • Переименовываем распакованную папку в AFMotor. Внутри папки должы быть файлы AFMotor.cpp и AFMotor.h и некоторые другие.
  • Перемещаем эту папку в вашу папку с библиотеками Arduino. На Windows папка с библиотеками находится в Мои документы/Arduino/libraries (если вы не меняли пути по умолчанию в Arduino IDE). На Mac OS этот путь по-умолчанию Документы/arduino/libraries . Если это первая библиотека, которую вы устанавливаете, то необходимо будет создать в папке arduino папку libraries . Обратите внимание, что название папки пишется в нижнем регистре.

Питание Motor Shield

Двигатели потребляют много энергии, особенно дешевые, имеющие низкий КПД. Во-первых, нужно выяснить на какое напряжение рассчитан ваш двигатель. Это могут быть совершенно различные величины — 1. 5 В, 6-12 В, а может и что-то иное. Контроллеры двигателей на этом модуле рассчитаны для работы в диапазоне 4. 5-25 В, и поэтому большинство моторов, рассчитанных на напряжение 1. 5-3 В работать не будут!

Во-вторых необходимо выяснить потребляемый вашим двигателем ток. Микросхемы драйверов двигателей, используемые в этом шилде рассчитаны на рабочий ток в 600 мА (1. 2 А — допустимое пиковое значение).

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

Сервоприводы питаются от тех же 5 В, что и Arduino. Это нормально при использовании небольших сервомашинок, если же вы используете что-то помощнее, то нужно перерезать дорожку, по которой подается питание +5 В на разъемах, предназначенных для подключения сервоприводов и подвести сюда отдельно внешнее питание 5-6 В.

Двигатели постоянного тока питаются от мощного источника питания, а не от линии 5 В. На этом шилде есть два варианта откуда мы можем получить требуемое напряжение для питания моторов. Один из них — это разъем питания платы Arduino, второй вариант — двухконтактная клеммная колодка на шилде. На плате Arduino после разъема питания установлен защитный диод, который помогает, если вы случайно перепутаете полярность подключения источника питания. На шилде после разъема EXT_PWR таких защитных диодов нет, поэтому нужно быть внимательным и обращать внимание на полярность при подключении питания к Motor Shield.

Схема внешнего питания Motor Shield

Если в вашем проекте используется один источник питания и для Arduino и для двигателей, то просто подключите его ко входу питания Arduino или же к разъему внешнего питания EXT_PWR на шилде и установить джампер на шилде в положение EXT.

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

Для случая, когда питание для моторов планируется получать от источника питания платы Arduino, перемычку выбора источника питания необходимо установить в положение Ard. После этого, источником питания будет являться вывод VIN платы Arduino.

Если вы хотите запитать Arduino от USB, а моторы от внешнего источника постоянного напряжения:

  • Не устанавливайте джампер на шилде!
  • Подключите USB-кабель к плате Arduino
  • Подключите внешний источник питания к разъему EXT_PWR на Motor Shield

Если вы используете два источника питания для Arduino и для Motor Shield:

  • Не устанавливайте джампер на шилде!
  • Подключите источник питания к плате Arduino
  • Подключите внешний источник питания к разъему EXT_PWR на Motor Shield

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

Использование сервомашинок

Хоббийные сервомашинки являются самым простым способом начать разбираться с управлением двигателями. Они имеют трехконтактый разъем, включающий сигнальную линию, питание +5 В и землю. Motor Shield просто выводит 16-битные ШИМ-выводы Arduino на отдельные разъемы для подключения сервомашинок. Нужно учитывать, что сервомоторы могут потреблять много энергии, поэтому, как уже отмечалось, возможно потребуется подведение отдельной линии питания 5 В.

Подключение сервомашинки к Motor Shield

Преимуществом использования встроенных ШИМ-выводов Arduino является то, что это достаточно точно и работает в фоновом режиме. Можно использовать встроенную бибиотеку Servo.

Использование двигателей постоянного тока

Motor Shield может управлять до 4-х двигателей постоянного тока в обоих направлениях вращения. Скорость вращения можно варьировать с шагом порядка 0. 5% (256 значений) используя функцию ШИМ.

Еще раз обратим внимание на рабочий ток в 600 мА, который может обеспечить H-мост этого шилда. Такое значение тока означает использование достаточно небольших двигателей. Внимательно изучайте характеристики используемых вами моторов. Значительное превышение тока через H-мост может приводить к его чрезмерному нагреву и, как следствие — к выходу его из строя.

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

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

При написании скетча следуйте следующему алгоритму:

  • Подключите библиотеку AFMotor, используя команду препроцессора #include
  • Создайте объект AF_DCMotor, используя AF_DCMotor (номер двигателя, частота) для установки H-моста и сдвигового регистра. Экземпляры класса должны иметь уникальные имена для каждого двигателя. Конструктор класса принимает два аргумента.

Первый аргумент номер двигателя — номер порта, к которому подключен мотор. Данный парметр может принимать значения 1, 2, 3, 4.

Второй аргумент частота — это частота ШИМ. Для двигателей 1 и 2 этот аргумент может принимать значения MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, или MOTOR12_1KHZ. Работа на больших частотах сопровождается меньшим гулом, но может приводить к снижению крутящего момента для некоторых моторов. К тому же, на частоте 1 кГц будет использовано меньше энергии. Двигатели 3 и 4 работают только на частоте 1 кГц и игнорируют данный параметр. Если этот параметр не задан, по умолчанию используется частота 1 кГц.

Пример кода, реализующий управление двигателем постоянного тока:

Использование шаговых двигателей

Шаговые двигатели широко используются в проектах, требующих высокой точности, в частности, они используются в робототехнических разработках и станках с ЧПУ. Motor Shield поддерживает до двух шаговых двигателей. Библиотека работает одинаково и с биполярными и с униполярными двигателями.

Униполярный двигатель. Сначала нужно выяснить какие выводы подсоединены к обмотке, а какие являются отводом от середины обмотки. Если у вас в руках мотор, из которого выходят 5 проводов, то один из них является центральным отводом обеих обмоток. Существуют различные способы как определить выводы обмотки. Центральные отводы нужно соединить вместе и подключить их к выводу GND выходного клеммника. Первую обмотку необходимо подключить к одному выходному порту шилда (например, M1 или M3), вторую обмотку — к другому порту (например, M2 или M4).

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

Подключение биполярного шагового двигателя к Motor Shield

Работа с шаговым мотором не намного сложнее, чем с двигателем постоянного тока.

  • Подключите библиотеку AFMotor, используя команду препроцессора #include
  • Создайте объект шагового двигателя, используя AF_Stepper (шаги, двигатель) для установки H-моста и сдвигового регистра конкретного мотора. Параметр шаги определяет количество шагов на оборот для двигателя. Двигатель с 7.5 градусов/шаг имеет 360/7.5= 48 шагов. Атрибут двигатель — это порт, к которому мы подключили мотор. Если используются выводы шилда M1 и M2, то это порт 1. Если же используются выводы M3 и M4, то в качестве параметра двигатель, то это порт 2 и, следовательно, нужно указать 2.
  • Установите скорость двигателя, используя setSpeed (обороты), где в качестве параметра обороты необходимо указать желаемое число оборотов в минуту (об/мин).
  • Каждый раз, когда вы хотите, чтобы двигатель вращался, необходимо вызывать процедуру steps (шаги, направление, тип_шага).

Параметр шаги задает требуемое число шагов

В качестве параметра направление может выступать FORWARD или BACKWARD.

Для задания тип_шага используйте значение SINGLE, DOUBLE, INTERLEAVE или MICROSTEP. SINGLE означает возбуждение одной обмотки, DOUBLE означает что две катушки возбуждаются одновременно, что способствует высокому крутящему моменту, INTERLEAVE означает что происходит чередование между единственной катушкой и двумя катушками, что дает более высокое разрешение, но половинную скорость. MICROSTEP — это способ, при котором производится ШИМ для создания сглаженного движения между шагами. Вы можете выбрать любой метод и изменять его «на ходу», чтобы получить минимальную мощность, больший крутящий момент, или большую точность.

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

В классе AF_Stepper имеется функция onestep (направление, тип_шага), которая реализует перемещение на один шаг двигателя. Параметры направление и тип_шага аналогичны таким же в функции step ().

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

Шаговый двигатель – принцип работы

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

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

Основные виды шаговых моторов:

  • Двигатели с переменными магнитами (применяются довольно редко);
  • Двигатели с постоянными магнитами;
  • Гибридные двигатели (более сложные в изготовлении, стоят дороже, но являются самым распространенным видом шаговых двигателей).

Где купить шаговый двигатель

Самые простые двигатели Варианты на сайте AliExpress:

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

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

Работа двигателя в биполярном режиме имеет несколько преимуществ:

  • Увеличение крутящего момента на 40% по сравнению с униполярными двигателями;
  • Возможность применения двигателей с любой конфигурацией фазной обмотки.

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

Драйвер шагового двигателя на базе L298N

Этот мостовой драйвер управляет двигателем с током до 2 А и питанием до 46В. Модуль на основе драйвера L298N состоит из микросхемы L298N, системы охлаждения, клеммных колодок, разъемов для подключения сигналов, стабилизатора напряжения и защитных диодов.

Драйвер шагового двигателя ULN2003

Шаговые двигателями с модулями драйверов на базе ULN2003 – частые гости в мастерских Ардуино благодаря своей дешевизне и доступности. Как правило, за это приходится платить не очень высокой надежностью и точностью.

Другие драйвера

Существует другой вид драйверов –  STEP/DIR драйверы. Это аппаратные модули, которые работают по протоколу STEP/DIR для связи с микроконтроллером. STEP/DIR драйверы расширяют возможности:

  • Они позволяют стабилизировать фазные токи;
  • Возможность установки микрошагового режима;
  • Обеспечение защиты ключа от замыкания;
  • Защита от перегрева;
  • Оптоизоляция сигнала управления, высокая защищенность от помех.

В STEP/DIR драйверах используется 3 сигнала:

  • STEP – импульс, который инициирует поворот на шаг/часть шага в зависимости от режима. От частоты следования импульсов будет определяться скорость вращения двигателя.
  • DIR – сигнал, который задает направление вращения. Обычно при подаче высокого сигнала производится вращение по часовой стрелке. Этот тип сигнала формируется перед импульсом STEP.
  • ENABLE – разрешение/запрет работы драйвера. С помощью этого сигнала можно остановить работу двигателя в режиме без тока удержания.

Одним из самых недорогих STEP/DIR драйверов является модуль TB6560-V2. Этот драйвер обеспечивает все необходимые функции и режимы.

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

Подключение будет рассмотрено на примере униполярного двигателя 28BYj-48 и драйверов L298 и ULN2003. В качестве платы будет использоваться Arduino Uno.

Еще один вариант схемы с использованием L298:

Схема подключения на базе ULN2003 изображена на рисунке ниже. Управляющие выходы с драйвера IN1-IN4 подключаются к любым цифровым контактам на Ардуино. В данном случае используются цифровые контакты 8-11. Питание подключается к 5В. Также для двигателя желательно использовать отдельный источник питания, чтобы не перегрелась плата Ардуино.

Принципиальная схема подключения.

Еще одна схема подключения биполярного шагового двигателя Nema17  через драйвер L298 выглядит следующим образом.

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

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

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

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

Управление двигателем при помощи Arduino и сгенерированным сигналом ШИМ

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

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

Принципиальная схема управления dc мотором

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

Полный скетч проекта:

  • void setup – поле для установки рабочего выхода с ШИМ порта;
  • void loop – поле для формирования рабочего процесса;
  • motorSpeed – задает скорость вращения двигателя;
  • analogWrite – задает работу конкретного вывода платы;
  • delay – устанавливает величину временного промежутка.

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

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

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

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

Посмотрите на рисунок, в этой схеме управление питанием двигателя происходит от выводов А и В, на которые подается управляющий потенциал.

Принцип определения направления вращения в Н-мосте происходит следующим образом:

  • при подаче на базы транзисторов Q1 и Q4 импульса для открытия перехода происходит протекание тока по обмоткам двигателя в одном направлении;
  • при подаче на базы транзисторов Q2 и Q3 импульса для открытия перехода ток будет протекать в противоположном направлении, в сравнении с предыдущим и произойдет реверсивное движение;
  • попарное открытие транзисторов Q1 и Q3, Q2 и Q4 приводит к торможению ротора;
  • открытие транзисторов в последовательности Q1 и Q2 или Q3 и Q4 совершенно недопустимо, поскольку оно приведет к возникновению короткого замыкания в цепи.

Применяя схему Н-моста для управления работой двигателя постоянного тока, вы сможете реализовать полный набор операций для электрической машины без необходимости переподключения ее выводов. В виду сложности подбора транзисторов и подключения их в схему Н-моста, гораздо проще использовать уже существующие драйвера, имеющие такую функцию. Среди них наиболее популярными являются драйверы L293D и L298N.

Сравнивая оба драйвера, следует отметить, что L298N превосходит L293D как по параметрам работы, так и по доступным опциям. Несмотря на то, что L293D более дешевая модель, L298N, ввиду значительных преимуществ, стал использоваться куда чаще. Поэтому в данном примере мы рассмотрим принцип управления двигателем при помощи драйвера L298N и платы Arduino.

Что представляет собой драйвер L298N?

Данная плата содержит микросхему и 15 выходов для генерации управляющих сигналов. Предназначено для передачи сигналов к рабочим элементам индуктивного типа – обмоткам двигателя, катушкам реле и т. Конструктивно L298N позволяет подключать в работу до двух таких элементов, к примеру, через нее можно одновременно управлять двумя шаговыми двигателями.

На схеме ниже приведен пример распределения выводов L298N от рабочей микросхемы.

  • Vss – вывод питания для логических цепей в 5В;
  • GND – нулевой вывод (он же корпус);
  • INPUT1, INPUT 2, INPUT 3, INPUT 4 – позволяют плавно наращивать и уменьшать скорость вращения двигателя;
  • OUTPUT1, OUTPUT2 – выводы для питания первой индуктивной нагрузки;
  • OUTPUT3, OUTPUT4 – выводы для питания второй индуктивной нагрузки;
  • Vs – вывод для переключения питания;
  • ENABLE A, B – выводы, при помощи которых осуществляется раздельное управление каналами, могут устанавливать активный и пассивный режим (с регулируемой скоростью вращения и с установленной);
  • CURRENT SENSING A, B – выводы для установки текущего режима.

Принцип управления двигателем при помощи Arduino и драйвера L298N

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

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

Пример драйвера L298N

Теперь разберем, как осуществляется управление двигателем с помощью драйвера L298N. Подключение двигателя производится к винтовым клеммным зажимам – по паре для питания каждого моторчика. Остальные клеммные зажимы предназначены для подачи питания плюс и минус, а также получения пониженного напряжения (на них подается определенный уровень питающего напряжения, от которого работают двигатели, а внутренний преобразователь понижает его до 5В для собственных логических цепей). Штекерные выводы платы осуществляют широтно-импульсную модуляцию при формировании рабочих сигналов.

Зажимы, куда подключать моторы

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

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

Простой пример работы Arduino с драйвером L298N

Сейчас мы рассмотрим пример простой схемы совместного использования Arduino и L298N. Такой вариант позволяет управлять скоростью вращения вала и его направлением у двигателя постоянного тока. Для этого задается специальная программа на ПК, которая будет определять генерацию ШИМ сигнала от L298N и направление протекания электрического тока через Н-мост. Разумеется, для формирования схемы потребуются еще несколько дополнительных компонентов, которые позволят соединить между собой драйвер, Ардуино, компьютер и двигатели.

Схема совместного использования Arduino и L298N

Перечень необходимых компонентов для сборки схемы:

  • Arduino UNO — наиболее простая модель из линейки, но его функционала будет более чем достаточно. Если вы используете более продвинутый вариант, то он также хорошо справится с этой задачей.
  • Драйвер L298N – не самый доступный драйвер, но заменить его другим не получится, так как принцип работы похожих моделей может в корне отличаться.
  • Двигатель на 12 В – в данном примере используется электрическая машина постоянного тока.
  • Потенциометр 100 кОм.
  • Кнопка для коммутации цепи.
  • Источник питания 12 В — может подойти любой вариант, включая несколько пальчиковых батареек.
  • Плата для установки элементов.
  • Соединительные провода, желательно с готовыми штекерами папа/мама.

КомпонентСпецификацияКоличествоГде купитьArduinoUNO Rev3. 01ДрайверL298N1Мини-двигатель12В, DC, 6000 об/мин. 1Блок питания12 Вольт1КнопкаMicro SMD SMT1Потенциометр100 кОм1Соединительные проводапапа-мама

Полный код проекта:

Практическое применение.

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

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

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

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

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

Оцените статью
( Пока оценок нет )
Как Это Работает?
Добавить комментарий