Обзор motor shield l293d

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

Технические параметры

► Напряжение питания двигателей: 5 — 36 В
► Напряжение питания платы: 5 В
► Допустимый ток нагрузки: 600 мА на канал
► Максимальный (пиковый) ток нагрузки: 1,2 А на канал
► Размер платы: 70х54х20 мм

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

Motor shield построен на микросхеме L293D, состоящая из двух H-мост (H-Bridge), с помощью которых можно управлять двумя постоянными двигателями или одним шаговым двигателем. Каждый канал рассчитан на 0.6 А с пиком 1.2 А. Так как на shield установлено две микросхемы L293D, можно управлять сразу четырьмя двигателями постоянного тока, это позволяет использовать данный shield в разработке робот платформ. Так же, на shield установлена микросхема 74HC595, которая расширяет 4 цифровых контакта Arduino до 8 управляющих контактов двух микросхем L293D.

Питание Motor shield L293D:
► Общий источник питания для Arduino и двигателей (максимальное напряжение 12 В) — можно использовать один источник питания, используется разъем DC на Arduino UNO или 2-х контактный разъем на shield «EXT_PWR«, так же необходимо установить перемычку «PWR«.
► Раздельный источник питания — рекомендуется отдельно питать Arduino и shield, для этого Arduino подключаем к USB, а двигатели подключаем к источнику постоянного тока, используя разъем » EXT_PWR». Необходимо убрать перемычку перемычку «PWR«.

Внимание! Нельзя подавать питание на «EXT_PWR» выше 12 В при установленной перемычке «PWR».

Выходные контакты двух микросхем L293D выведены по бокам shield с помощью 5-ти контактных винтовых клемм, а именно М1 , М2 , М3 и М4. К этим контактам подключается четыре двигателя постоянного тока и два шаговых двигателя.

Так же, на shield выведен два 3-х контактных разъема, которым можно подключить два сервопривода.

Неиспользуемые контакты:
Цифровые контакты D2 и D13 и аналоговые контакты A0-A5 не используются.

Подключение к Arduino двигателя постоянного тока с помощью L293D

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Блок питания 12В, 2А x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► Двигатель постоянного тока x 21шт.
► Motor shield L293D

Подключение:
Устанавливаем shield сверху Arduino, далее подключаем источник питания к клеммам «EXT_PWR«, в примере используется источник питания на 9 В. Теперь подключаем двигатели к клеммам M1, M2, M3 или M4. В примере подключаем к М4.

Установка библиотеки:
Для удобной работы с Motor shield L293D необходимо установить библиотеку «AFMotor.h». Заходим в Arduino IDE, открываем вкладку «Скетч» -> «Подключить библиотеку» и нажимает «Управлять библиотеками…«

Откроется новое окно «Менеджер библиотек«, в окне поиска вводим «Adafruit Motor Shield» и устанавливаем библиотеку.

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

  Скачать скетч

Описание скетча::
Скетч начитается с подключением библиотеки «AFMotor.h.», затем создаем объект «AF_DCMotor motor(4);» в котором указываем номер порта двигателя (M1, M2, M3, M4). Если необходимо подключить несколько двигателей, создайте отдельный объект «AF_DCMotor motor1(1);» и так далее.

В «void setup» мы вызываем функции «setSpeed(speed)» в которой задаем скорость двигателя, от 0 до 255 и функцию «motor.run» направление вращения двигателя, где «FORWARD» — вперед, «BACKWARD» — назад, «RELEASE» — остановка

Подключение к Arduino шагового двигателя NEMO17 с помощью L293D

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Блок питания 12В, 2А x 1 шт.
► Шаговый двигатель Nemo17 x 1 шт.
► Motor shield L293D x 1 шт.

В следующим примере подключим шаговый двигатель NEMA 17, который рассчитан на 12 В (и выше) и делает 200 шагов на оборот. Итак, подключите шаговый двигатель к клеммам M3 и M4. Затем подключите внешний источник питания 12 В к разъему «EXT_PWR«. Не забудьте удалить перемычку PWR.

Программа:
Используем ту же библиотеку, что и в предыдущем примере.

  Скачать скетч

Описание скетча:
Скетч начинается с подключением библиотеки «AFMotor.h«. Во второй строке создаем объект «AF_Stepper motor(48, 2);«где указываем количество шагов на оборот и номер порта.

В разделе настройки, функцией «motor.setSpeed(10);» устанавливает скорость двигателя, где «10» количество оборотов в минуту.

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

►  «100» — это сколько шагов, необходимо сделать.
► «FORWARD» и «BACKWARD» — направление вращение двигателем.
► «SINGLE» — активация одной обмотки двигателя для совершения шага.
► «DOUBLE» — активация двух обмоток двигателя, что обеспечивает больший вращающий момент
► «INTERLEAVE»  — применение ШИМ для управления шаговым двигателем двигателем.

Подключение к Arduino шагового двигателя NEMO17 с помощью L293D

Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Блок питания 12В, 2А x 1 шт.
► Шаговый двигатель Nemo17 x 1 шт.
► Сервопривод SG90S x 1 шт.

В последним примере покажу как управлять сервоприводами с помощью shield L293D. На shield выведен 16-разрядные контакты Arduino 9 и 10, питание для сервоприводов подается от 5 вольтного стабилизатора Arduino, поэтому подключать дополнительное питание в разъем EXT_PWR. не нужно.

Программа:
Так как используется стандартный вывод PWM, нет смысла использовать дополнительную библиотеку, воспользуемся стандартной библиотекой Servo.

  Скачать скетч

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

Ссылки
  
Библиотека AFMotor

Купить на Aliexpress
  Контроллер Arduino UNO R3 на CH340G
  Контроллер Arduino UNO R3 на Atmega16U2
  Motor shield L293D
  Мотор-колесо, диаметр 66 мм
  Сервопривод SG90S

2 комментария для “Обзор motor shield l293d

  1. Не могу использовать AFMotor.h Таких файлов нашел 4 штуки. Как правило, сообщение «плата не поддерживается. У меня UNO 8266 D1 R1 и драйвер на 4 мотора на L293d. Пытался назначать 8266 Generic, Wemos Lolin d1 r1, ничего не помаго. Скетч для сервоматора загрузился, но мотора у меня нет. А для имеющихся BYJ и от детских игрушек требуется AFMotor.h. Не выручите ? Заранее спасибо!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *