Pikap24.ru

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

L293 схема подключения шагового двигателя

#33. Motor shield l293d подключение. Пример кода для Arduino

Робототехника с каждым годом становиться все популярнее. И поэтому количество электроники с помощью которой можно реализовать роботизированную модель достаточно много. А если у вас нет опыта работы с электроникой, вам отлично подойдёт Motor shield на базе драйвера l293d. Шилд устанавливается на плату Arduino UNO.

На shield выведены контакты для подключения двигателей постоянного тока, шаговых двигателей и сервоприводов. Я уже делал проект с использованием данного Motor shield. У вас, наверное, возник вопрос. Если шилд такой простой, почему у меня мало Arduino проектов с его использование? Это связанно со сложностью расширения функционала проекта при использовании Motor shield l293d. Но обо всём по порядку.

Обзор motor shield l293d

Автор: Сергей · Опубликовано 22.05.2020 · Обновлено 04.08.2020

Если задумались спроектировать робота, первым делом необходимо научится управлять различными двигателями, это может быть и двигатель постоянного тока или сервопривод. Один из самых простых и недорогих способов это воспользоваться 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» и устанавливаем библиотеку.

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

Используемые выводы Arduino для управления моторами

Выводы для скорости вращения двигателями:

  1. D11: DC Мотор №1 / Шаговый №1
  2. D3: DC Мотор №2 / Шаговый №1
  3. D5: DC Мотор №3 / Шаговый №2
  4. D6: DC Мотор №4 / Шаговый №2

Выводы, отвечающие за направления двигателей:

Выводы для управления сервоприводами:

  1. D9: Сервопривод №1
  2. D10: Сервопривод №2

Незадействованные аналоговые входы(Они же могут быть и дискретными вводами/выводами):

  • А0-А6 (либо в коде указываем дискретные 14-19)

Пример 35. Плата расширения для двигателей на L293D

Примеры

СБОРНИК ПРИМЕРОВ

ПРИМЕРЫ
  • Пример 1. Светодиоды
  • Пример 2. Подключение кнопки
  • Пример 3. Переключатель
  • Пример 4. Активный зуммер
  • Пример 5. Пассивный зуммер
  • Пример 6. Фоторезистор
  • Пример 7. RGB-светодиод
  • Пример 8. Семисегментный индикатор и 74HC595N
  • Пример 9. Четырехразрядный 7-сегментный индикатор
  • Пример 10. Светодиодная матрица
  • Пример 11. Светодиодная шкала
  • Пример 12. ЖК-дисплей
  • Пример 13. Джойстик
  • Пример 14. Вольтметр
  • Пример 15. Термистор
  • Пример 16. Модуль DHT11
  • Пример 17. Модуль HC-SR04
  • Пример 18. Датчик движения HC-SR501
  • Пример 19. Матричная клавиатура
  • Пример 20. ИК датчик и пульт
  • Пример 21. Модуль часов DS-1302
  • Пример 22. RFID-модуль RC522
  • Пример 23. Сервопривод
  • Пример 24. Модуль реле
  • Пример 25. Двигатель постоянного тока
  • Пример 26. Шаговый двигатель и драйвер ULN2003
  • Пример 27. Драйвер двигателей на L298N
  • Пример 28. MP3-плеер DFPlayer Mini
  • Пример 29. Датчик уровня воды
  • Пример 30. Serial Port
  • Пример 31. Симуляция парковки
  • Пример 32. Датчик температуры DS18B20
  • Пример 33. Bluetooth-модуль HC-06
  • Пример 34. Плата расширения с дисплеем и кнопками
  • Пример 35. Плата расширения для двигателей на L293D
  • Пример 36. Ethernet шилд W5100
  • Пример 37. GSM/GPRS шилд SIM900
  • Пример 38. GPS модуль Ublox NEO-6M
  • Пример 39. Модуль считывания отпечатков пальцев
  • Пример 40. Шаговый двигатель NEMA17 и драйвер TB6600

Мотор-шилды на основе микросхем L293D и L298N являются самыми популярными драйверами для управления моторами постоянного тока. Данная плата расширения позволяет подключить 4 DC-мотора (либо 2 шаговых двигателя) и два серводвигателя.

На борту данного шилда имеется две микросхемы L293D (1). Она позволяет управлять слаботочными двигателями с током потребления до 600 мА на канал. На двух пятипиновых клеммниках (2) можно насчитать 4 разъема для подключения двигателей (M1, M2, M3, M4), центральные выводы на пятипиновых клеммниках соединены с землей и служат для удобства при подключении пятипроводных шаговый двигателей. Использование двух микросхем L293D позволяет одновременно подключить 4 моторчика постоянного тока или 2 шаговых двигателя, либо два DC-моторчика и шаговик. Для управления на прямую выводами L-ки (IN1, IN2, IN3, IN4), отвечающимими за выбор направления вращения, необходимо 4 вывода, а для двух микросхем целых 8. Для уменьшения количества управляющих выводов используется сдвиговый регистр 74НС595 (3). Благодаря регистру управление сводится с 8-ми пинов к 4-м. Также, на плату выведены 2 разъема для подключения сервоприводов (4). Управление сервоприводами стандартное с помощью библиотеки Servo.h. Питание силовой части производится либо от внешнего клеммника (5), либо замыканием джампера (6) (питание от клеммника моторов +M соединяется с выводом Vin Arduino). При замкнутом джампере напряжение для объединенного питания должно лежать в пределах от 6 до 12 В.

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

Выводы, отвечающие за скорость вращения двигателей:

  • Цифровой вывод 11 – DC Мотор №1 / Шаговый №1
  • Цифровой вывод 3 – DC Мотор №2 / Шаговый №1
  • Цифровой вывод 5 – DC Мотор №3 / Шаговый №2
  • Цифровой вывод 6 – DC Мотор №4 / Шаговый №2
Читать еще:  Chevrolet spark характеристики двигателя

Выводы, отвечающие за выбор направления вращения двигателей:

  • Цифровые выводы 4, 7, 8 и 12

Выводы для управления сервоприводами (выведены на штырьки на краю платы):

  • Цифровой вывод 9 – Сервопривод №1
  • Цифровой вывод 10 – Сервопривод №2

В итоге незадействованными цифровыми выводами остаются только пины 2, 13 и пины интерфейса UART – 0, 1. Однако есть выход из данной ситуации. У нас остались незадействованные аналоговые входы A0 – A6, их можно использовать как цифровые. В коде они будут записываться как цифровые с 14 по 19.

Описание:

В данном примере с помощью мотор-шилда на L293D будем одновременно управлять 4 двигателями постоянного тока (меняя скорость и направление). Для подключения шилда достаточно вставить его в плату Arduino Uno. Для работы с данным шилдом необходимо скачать библиотеку AFMotor.

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

На борту данной платы расположено две микросхемы L293D (1). Они позволяют подключать слаботочные моторы мощностью до 600 мА на канал. На двух пятиконтактных разьемах (2) расположены 4 контакта для подключения двигателей (M1, M2, M3, M4),средние контакты на пятиконтактных разьемах посажены на землю для удобства подключения пятипроводных шаговых моторов. Наличие двух интегральных схем L293D допускает одновременное подключение 4 двигателей постоянного тока или 2 шаговых двигателя, либо два моторчика и 1 шаговый двигатель. Для прямого управления контактами L293D (IN1, IN2, IN3, IN4),предназначенные для задания направления вращения, необходимо 4 вывода, соответсвенно для двух L293D целых 8. Для снижения занятых контактов на плате расположен сдвиговый регистр 74НС595 (3). Благодаря чему количество управляющих контактов снижается до четырех.Кроме того, на щите расположены 2 пина для подключения сервоприводов (4). Работа с сервоприводами как обычно осуществляется через библиотеку Servo.h рассмотреть которую вы сможете в других обзорах. Здесь же мы изучим другую бибилиотеку AFmotor.h .Питание платы осуществляется либо от внешнего источника на клемму (6) либо замкнув перемычку (5) ( питание от разьема двигателей +M подключается к контакту Vin Arduino). При замкнутой перемычке напряжение питания должно быть от 6 до 12Вольт.

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

Выходы задающие обороты моторов

D11- DC двигатель №1 / Шаговый мотор №1
D3- DC двигатель №2 / Шаговый мотор №1
D5- DC двигатель №3 / Шаговый мотор №2
D6- DC двигатель №4 / Шаговый мотор №2

Выводы задающие направление вращения двигателей:

Цифровые выводы 4, 7, 8 и 12 соответсвенно

Выводы для управления сервоприводами (штырьки на драйвере):

D9- Сервопривод №1
D10- Сервопривод №2

Подключение к Arduino

Библиотека используемая для работы с драйвером AFMotor.h​

Читать еще:  Ведет сцепление на холодном двигателе

Добавление библиотек в среду разработки IDE, а также установка самой среды, драйверов Arduino подробно описано в этой статье

Втыкаем драйвер в Arduino, подключаем двигатели и пробуем тестовый скетч.

Прочее

Вдобавок ко всему на плате установлена дублирующая кнопка сброса МК (RST).

На плату выведен светодиод, подключенный к 13 пину, который можно отключить, сняв джампер (JP LED13).

На плате имеются джамперы (JP1 и JP2), позволяющие выбирать схемы подключения питания

JP1 и JP2 замкнуты — Ардуина, стабилизатор и силовая часть реле шилда питаются от одного источника питания.

JP1 разомкнут, JP2 замкнут- Ардуина питается от одного источника, стабилизатор и силовая часть реле шилда от другого.

JP1 замкнут, JP2 разомкнут- Ардуина и стабилизатор питаются от одного источника, силовая часть реле шилда от другого. Сделано это с целью того, что:

— входное напряжение стабилизатора не должно превышать 15 Вольт, а то время как максимальное входное напряжение на L293D равно 36 Вольтам.

— в обвязке стабилизатора установлены конденсаторы 100uFx16v, которые, при превышении максимального напряжения, могут взорваться.

JP1 разомкнут, JP2 разомкнут- питание Ардуины и силовой части шилда раздельное, стабилизатор не используется.

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

В среде разработки Ардуино IDE существует стандартная библиотека Strepper.h для написания программ шаговых двигателей. Основные функции в этой библиотеке:

  • Stepper(количество шагов, номера контактов). Эта функция создает объект Stepper, которая соответствует подключенному к плате Ардуино двигателю. Аргумент – контакты на плате, к которым подключается двигатель, и количество шагов, которые совершаются для полного оборота вокруг своей оси. Информацию о количестве шагов можно посмотреть в документации к мотору. Вместо количества шагов может быть указан угол, который составляет один шаг. Для определения числа шагов, нужно разделить 360 градусов на это число.
  • Set Speed(long rpms) – функция, в которой указывается скорость вращения. Аргументом является положительное целое число, в котором указано количество оборотов в минуту. Задается после функции Step().
  • Step(Steps) –поворот на указанное количество шагов. Аргументом может быть либо положительное число – поворот двигателя по часовой стрелке, либо отрицательное – против часовой стрелки.

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

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


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


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

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

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

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