Подключение Motor Shield L293D к Arduino
Если вы всерьез занимаетесь электроникой, робототехникой, созданием различных автоматизированных проектов и «умных систем», Motor Shield поможет вам эффективно реализовать поставленные конструкторские задачи. С данным драйвером вы легко подключите дополнительное оборудование: сервоприводы, шаговые биполярные ∕ коллекторные DC двигатели, моторы и прочее.
В продолжение темы рассмотрим параметры платы:
- 2 H-моста (для управления сразу двумя двигателями) + возможность подключения 2-х сервоприводов (5 Вольт), 4-х моторов, 2-х шаговых двигателей (6 - 12 Вольт);
- напряжение: 4,5-36 V;
- max (пиковый) ток: до 1,2 А;
- выходной (рабочий) ток: 600 мА;
- диапазон рабочих температур: -40°C ... 150°C;
- количество выходов: 4.
Распиновка выводов показана на скриншоте:
Принципиальная схема подключения одного двигателя показана ниже:
Для ее реализации мы использовали такие аппаратные компоненты:
- Управляющая платформа Аруино Uno
- Модуль расширения L293D
- Макетная (монтажная) плата
- 1 двигатель
- Соединительные провода
https://github.com/adafruit/Adafruit-Motor-Shield-library
В сети Интернет можно найти большое количество прошивок. Пример одного из подобных скетчей (тестируем один мотор):
#include <AFMotor.h> // Подключаем библиотеку для работы с шилдом
int i;
AF_DCMotor motor1(1);// Подключаем моторы к клеммникам M1
void setup() {
motor1.setSpeed(255);// Задаем максимальную скорость вращения моторов
motor1.run(RELEASE);
}
void loop() {
motor1.run(FORWARD); // Задаем движение вперед
motor1.setSpeed(255); // Задаем скорость движения
delay(3000); //Указываем время движения
motor1.run(RELEASE); // Останавливаем двигатели
delay(500); // Указываем время задержки
motor1.run(BACKWARD); // Задаем движение назад
motor1.setSpeed(255); // Задаем скорость движения
delay(3000); // Указываем время движения
motor1.run(RELEASE); // Останавливаем двигатели
delay(500); // Указываем время задержки
// Разгоняем двигатели в одном направлении от нулевой скорости, до максимальной
motor1.run(FORWARD);
for (i=0; i<255; i++) {
motor1.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // Останавливаем двигатели
delay(500); // Указываем время задержки
motor1.run(BACKWARD);// Разгоняем двигатели в обратном направлении
for (i=255; i>=0; i--) {
motor1.setSpeed(i);
delay(10);
}
motor1.run(RELEASE); // Останавливаем двигатели
delay(500); // Указываем время задержки
}
Проверяем два коллекторных электромотора. Сборка, соответственно, меняется:Программные коды прописываем так:
// подключите один мотор к клемме: M1+ и M1-
// а второй к клемме: M2+ и M2-
// Motor shield использует четыре контакта 4, 5, 6, 7 для управления моторами
// 4 и 7 — для направления, 5 и 6 — для скорости
#define SPEED_1 5
#define DIR_1 4
#define SPEED_2 6
#define DIR_2 7
void setup() {
// настраиваем выводы платы 4, 5, 6, 7 на вывод сигналов
for (int i = 4; i < 8; i++) {
pinMode(i, OUTPUT);
}
}
void loop() {
// устанавливаем направление мотора «M1» в одну сторону
digitalWrite(DIR_1, LOW);
// включаем мотор на максимальной скорости
analogWrite(SPEED_1, 255);
// ждём одну секунду
delay(1000);
// устанавливаем направление мотора «M1» в другую сторону
digitalWrite(DIR_1, HIGH);
// ждём одну секунду
delay(1000);
// выключаем первый мотор
analogWrite(SPEED_1, 0);
// устанавливаем направление мотора «M2» в одну сторону
digitalWrite(DIR_2, LOW);
// включаем второй мотор на максимальной скорости
analogWrite(SPEED_2, 255);
// ждём одну секунду
delay(1000);
// устанавливаем направление мотора «M2» в другую сторону
digitalWrite(DIR_2, HIGH);
// ждём одну секунду
delay(1000);
// выключаем второй мотор
analogWrite(SPEED_2, 0);
// ждём одну секунду
delay(1000);
}
При желании можно еще больше усложнить и модернизировать схему, а также поработать с другими опциями - увеличить скорость до максимального уровня, затем полностью снизить вплоть до остановки (сначала одного, потом второго двигателя).К слову, при функционировании моторов среда Ардуино может частенько перезапускаться. Не стоит этого бояться - перезагрузка связана с тем, что двигателям необходимы более «высокие» токи при моменте старта и торможении.
На этом все! Желаем удачной компиляции!
Подключение Motor Shield к Arduino у многих любителей электроники вызывает определенные затруднения. Тем не менее этот драйвер двигателей очень популярен и...
Сегодня мы хотим рассказать вам о том, как подключить драйвер L298N к Arduino и для чего он в целом может понадобиться. Речь пойдет о цифровом двухканальном...
Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...
В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...
В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...