Motor shield L293D Arduino — рассмотрим очень полезное расширение для платы Arduino Uno или Mega, а также схему подключения серводвигателей, шаговых двигателей и двигателей постоянного тока к этой плате расширения. Вы также можете ознакомиться на этой странице с командами, используемыми в библиотеке AFMotor.h, и попробовать различные скетчи для управления шаговыми двигателями и серво от Ардуино.
СОДЕРЖАНИЕ
- Мотор шилд Ардуино l293d распиновка, принцип работы
- Подключение мотор шилд l293d к Ардуино Уно, Мега
- Код для управления мотором от мотор шилд l293d
- Подключение сервомотора к мотор шилд l293d Ардуино
- Код для управления серво от мотор шилд l293d
- Подключение шагового мотора к шилду l293d Ардуино
- Код для управления шаговым двигателем от l293d
Необходимые компоненты:
- Arduino Uno / Arduino Mega
- motor control shield L293D
- моторы постоянного тока
- сервомотор
- шаговый двигатель
- коннекторы
- скачать библиотеку AFMotor.h
Дополнительные материалы на эту тему:
При подключении к Arduino Uno сервоприводов и двигателей через контроллер L239D используются различные порты, к которым нельзя подключать другие устройства. Например, цифровые порты 9 и 10 используются для сервоприводов, а порты устройства с 3 по 8 и 12 — для шаговых двигателей и моторов. Если вы хотите подключить что-то еще, используйте порты 2 и 13, а аналоговые входы можно использовать как цифровые выходы.
Motor Shield L293D Arduino схема, распиновка

Motor Shield L293D характеристики
- Требуется библиотека AFMotor.h
- Подключение до 2 серводвигателей на 5 вольт
- подключение до 2 шаговых двигателей от 6 до 12 вольт
- Подключение до 4 двигателей с реверсом
- Контакты для подключения внешнего источника питания
- Плата расширения совместима с платами Uno и Mega
Модуль l239d подключается к Arduino очень просто — он устанавливается на Уно или микроконтроллер Мега прямо сверху. Обратите внимание, что без внешнего источника питания, подключенного к Motor Shield, логика и двигатели будут работать от 5 вольт, чего не всегда достаточно. Поэтому скорость двигателей постоянного тока возможно будет значительно отличаться при подключении платы к отдельному источнику питания.
Как подключить мотор шилд l293d к Ардуино

Обратите внимание, что даже если вы задали в скетче одинаковую скорость вращения двигателей, на самом деле роторы моторчиков могут работать с разной скоростью. Это зависит от скорости вращения самого двигателя, качества редуктора и колес. После подключения двигателей постоянного тока, как показано на схеме выше, загрузите следующую программу для управления моторами от motor control shield L293D Arduino.
Скетч для Arduino Motor Shield L293D и моторов
#include "AFMotor.h"
AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
void setup() {
motor1.setSpeed(255);
motor1.run(RELEASE);
motor2.setSpeed(255);
motor2.run(RELEASE);
}
void loop() {
motor1.run(FORWARD);
motor2.run(FORWARD);
motor1.setSpeed(255);
motor2.setSpeed(255);
delay(2000);
motor1.run(RELEASE);
motor2.run(RELEASE);
motor1.run(BACKWARD);
motor2.run(BACKWARD);
motor1.setSpeed(255);
motor2.setSpeed(255);
delay(2000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
Как подключить серво к мотор шилд L293D Ардуино

Для управления сервоприводами используется стандартная библиотека Servo.h. Сервомоторы подключаются к цифровым выходам 9 и 10 через контакты на краю платы. К l239d можно подключить только два сервопривода и два шаговых двигателя. Первый шаговый двигатель подключен к клеммам M1 и M2, а второй — к клеммам M3 и M4. Схема подключения микро серво к мотор шилд л293д Ардуино показана на картинке выше.
Скетч для управления servo от Motor Shield L293D
#include "Servo.h"
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
servo.write(0);
delay(1000);
servo.write(90);
delay(1000);
servo.write(180);
delay(1000);
}
Как подключить шаговый двигатель к шилду L293D

Шаговые двигатели подключаются к клеммным колодкам M1 — M4. Для управления шаговыми двигателями следует использовать класс AF_Stepper из библиотеки AFMotor.h. Функция motor.setSpeed(speed) служит для установки скорости вращения, а функция motor.step(number of steps, direction, algorithm) служит для плавного поворота ротора шагового двигателя на несколько шагов в одном или в другом направлении.
Скетч для управления шаговым мотором от L293D
#include "AFMotor.h"
AF_Stepper stepper(48, 1);
void setup() {
}
void loop() {
for (byte i = 0; i <= 48; i++) {
stepper.step(1, FORWARD, DOUBLE);
delay(30);
}
for (byte i = 48; i >= 0; i--) {
stepper.step(1, BACKWARD, DOUBLE);
delay(30);
}
}
Заключение. Микроконтроллеры семейства Arduino позволяет любому начинающему программисту создавать сложные устройства и проекты автоматизации. Использование контроллера Motor Shield L293D может стать полезным, а часто и незаменимым, дополнением ко многим проектам на базе платы Ардуино, поскольку он позволяет одновременно подключать 2 сервопривода, 2 шаговых двигателя или до 4 двигателей DC.

как управлять шаговым двигателем и сервоприводом одновременно?
Здравствуйте.
Примерно так:
#include "Servo.h" Servo servo; #include "AFMotor.h" AF_Stepper stepper(48, 1); void setup() { servo.attach(9); } void loop() { for (byte i = 0; i <= 48; i++) { stepper.step(1, FORWARD, DOUBLE); servo.write(i * 3); delay(30); } }Дальше уже сами думайте в какую сторону и с какой скорость вращать серво и шаговый двигатель
Здравствуйте!Мне для механизации косплейной маски нужно управлять четырьмя сервами.Процесс=при нажатии кнопки первая серва поворачивается на 90 градусов и с задержкой на секунду или две поворачивается обратно на 90 градусов.При следующем нажатии кнопки так же срабатывает следующая серва.И так поочередно для всех четырех.Подскажите пожалуйста как это сделать?
а можно еще добавить потенциометр