Описание
Motor Drive Shield L293D
Подключить нормально несколько моторов, сервомотор или шаговый напрямую к Arduino не удастся. Так как пины (выводы) Arduino являются слаботочными. Для решения проблемы существует дополнительный модуль управления приводами – Motor Drive Shield на базе микросхемы L293D, которая является одной из самых распространенных микросхем, предназначенных для этой цели. Чип L293D известен также как H-мост (H-Bridge).
Данная плата модуля управления приводами имеет следующие характеристики.
L293D Motor Drive Shield совместим с Arduino Mega 1280 и 2560, UNO, Duemilanove, Diecimila
4-х канальное управление
питание моторов от 4.5В до 36В
допустимый ток нагрузки 600мА на канал, пиковый ток – 1.2A
защита от перегрева
2 интерфейса с точным таймером Arduino (не будет «дрожания») для подключения сервомоторов на напряжение 5В, если напряжение питания нужно повыше, то подключение по питанию нужно переделать как описано ниже
можно одновременно управлять 4 двунаправленными DC коллекторными моторами или 2 шаговыми, и 2 сервомоторами
4 двунаправленные DC моторы подключены каждый к 8-битной шине для выбора индивидуальной скорости
подключение до 2 шаговых приводов (однополярных или биполярных), с одной катушкой, двойной катушкой или с чередованием шага
разъем для подключения внешнего источника для раздельного питания управляющей логики и моторов
Кнопка RESET Arduino
для управления используется библиотека Adafruit AFMotor
Светодиод на мотор-шилде светится при наличии питания для моторов, если он не горит, то моторы работать не будут.
При подключении Motor Drive Shield аналоговые пины не используются. Цифровые пины 2, 13 не используются.
Указанные ниже пины используются, только если подключены и используются соответствующие DC двигатели или шаговые двигатели (Stepper):
D11: DC Motor #1 / Stepper #1 (активация и контроль скорости)
D3: DC Motor #2 / Stepper #1 (активация и контроль скорости)
D5: DC Motor #3 / Stepper #2 (активация и контроль скорости)
D6: DC Motor #4 / Stepper #2 (активация и контроль скорости)
Эти пины будут заняты, если используются любые DC/steppers: D4, D7, D8, D12.
Указанные ниже пины будут заняты, только если используются соответствующие сервомоторы:
D9: Servo #1 управление
D10: Servo #2 управление
GND
13
IOREF 12 DC/steppers
RESET ~11 DC Motor #1 / Stepper #1 (активация и контроль скорости)
свободно 3.3V ~10 Если подключен Servo #2
свободно 5V ~9 Если подключен Servo #1
свободно GND 8 DC/steppers
свободно GND
свободно Vin 7 DC/steppers
~6 DC Motor #4 / Stepper #2 (активация и контроль скорости)
свободно A0 ~5 DC Motor #3 / Stepper #2 (активация и контроль скорости)
свободно A1 4 DC/steppers
свободно A2 ~3 DC Motor #2 / Stepper #1 (активация и контроль скорости)
свободно A3 2
свободно A4 1 ← TX
свободно A5 0 → RX
Для начала работы с Motor Drive Shield необходимо скачать и установить библиотеку Adafruit AFMotor.
Пример кода для управления моторами
#include // подключить библиотеку Adafruit
#include // подключить библиотеку для сервомотора
AF_DCMotor motor(1); // создать объект мотор, указав номер разъема DC мотора на плате Motor Shiled и, опционально, частоту frequency
Servo servo; // создать объект сервомотор
servo.attach(10); // присоединить серво на пин 9 или 10 (крайний разъем на плате Motor Shiled)
motor.setSpeed(speed); // установить скорость DC мотора от 0 (останов) до 255 (полный газ)
motor.run(RELEASE); // DC мотор стоп
motor.run(FORWARD); // DC мотор вперед
motor.run(BACKWARD); // DC мотор назад
servo.write(90); // повернуть серво на 90 град.
#include // подключить библиотеку Adafruit
#include // подключить библиотеку для сервомотора
AF_DCMotor motor(1); // создать объект мотор, указав номер разъема DC мотора на плате Motor Shiled и, опционально, частоту frequency
Servo servo; // создать объект сервомотор
servo.attach(10); // присоединить серво на пин 9 или 10 (крайний разъем на плате Motor Shiled)
motor.setSpeed(speed); // установить скорость DC мотора от 0 (останов) до 255 (полный газ)
motor.run(RELEASE); // DC мотор стоп
motor.run(FORWARD); // DC мотор вперед
motor.run(BACKWARD); // DC мотор назад
servo.write(90); // повернуть серво на 90 град.
DC мотор у меня начал крутиться только при указании скорости больше 100, если меньше – просто жужжит. Минимальную скорость вашего мотора вам придется определить экспериментально.
Для моторов, подключенных к M1 и M2 можно задать частоту: MOTOR12_64KHZ, MOTOR12_8KHZ, MOTOR12_2KHZ, MOTOR12_1KHZ. Наибольшая скорость вращения достигается при 64KHz эта частота будет слышна, меньшая частота и скорость на 1KHz но и использует меньше энергии. Моторы 3 и 4 всегда работают на 1KHz другие значения игнорируются. По умолчанию везде 1KHz.
Отзывы
Отзывов пока нет.