Подключение мотор шилд к Ардуино

Подключение мотор шилд Ардуино

Сегодня мы разберем весьма полезное расширение для платы Arduino UNO — Motor Control Shield L293D, рассмотрим схему подключения к данному шилду сервомоторов, шаговых двигателей и моторов постоянного тока. Также вы можете ознакомиться с командами, используемых в библиотеке AFMotor.h, и попробовать различные скетчи для управления шаговыми двигателями и моторами постоянного тока на Ардуино.

Видео. Машинка на Motor Shield и Bluethoth

Motor Shield L293D: схема, характеристики

Микроконтроллер Ардуино позволяет любому начинающему радиолюбителю изготавливать сложные автоматизированные устройства и проекты. Использование Motor Shield может стать полезным дополнением во в многих проектах на Arduino, так как позволяет подключить сразу 2 сервопривода, 2 шаговых двигателя и до 4 двигателей постоянного тока (с реверсом направления вращения ротора).

Схема и подключение Motor Control Shield for Arduino
Схема и подключение Motor Control Shield for Arduino

Характеристики Мотор Шилд L293D

— для работы нужна библиотека AFMotor.h (скачать библотеку);
— возможность подключения 2-х сервоприводов на 5 Вольт;
— возможность подключения 2-х шаговых двигателей от 6 до 12 Вольт;
— подключение до 4-х моторов с возможностью реверса направления вращения;
— контакты для подключения внешнего питания для двигателей;
— Motor Shield for Arduino совместим с платами Uno и Mega.

При подключении серводвигателей и моторов к Ардуино используются различные порты, к которым нельзя подключать другую периферию. Так, для серво используются цифровые порты 9 и 10, для шаговых двигателей и моторов используются порты с 3 по 8 и 12. Если вы желаете еще что-то подключить, то используйте 0 и 1 порт, 2 и 13, а также аналоговые входы (порты A0-A5 можно использовать как цифровые выходы).

Arduino Motor Shield L293D подключение

К Ардуино шилд подключается очень просто — он устанавливается на плату UNO прямо сверху. Обратите внимание, что без подключения внешнего источника питания к Motor Shield, логика и двигатели будут работать от 5 Вольт, что не всегда бывает достаточно. Поэтому скорость вращения моторов постоянного тока при подключении платы Ардуино от компьютера и блока питания будет значительно отличаться.

Мотор Шилд Ардуино подключение
Мотор Шилд Ардуино подключение

Обратите внимание, что даже если вы задали одинаковую скорость вращения в скетче, моторы в реальности могут вращаться с разной скоростью — на это оказывает влияние скорость самого двигателя, качество изготовления редуктора и колес. После подключения двигателей, как на схеме выше, загрузите следующий скетч (скачать библиотеку AFMotor и скетч можно здесь) для тестирования работы шилда:

#include <AFMotor.h>  // подключаем библиотеку для шилда
AF_DCMotor motor1(1); // подключаем мотор к клеммникам M1
AF_DCMotor motor2(2); // подключаем мотор к клеммникам M2

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);  // останавливаем мотор M1
  motor2.run(RELEASE);  // останавливаем мотор M2

  motor1.run(BACKWARD); // задаем движение назад
  motor2.run(BACKWARD); // задаем движение назад
  motor1.setSpeed(255); // задаем скорость движения
  motor2.setSpeed(255); // задаем скорость движения
  delay(2000);          // указываем время движения

  motor1.run(RELEASE);  // останавливаем мотор M1
  motor2.run(RELEASE);  // останавливаем мотор M2

}

Пояснения к коду:

  1. Для каждого мотора следует присваивать свое имя AF_DCMotor motor1(1);
  2. Максимальная скорость вращения motor1.setSpeed(255) равна 255;
  3. Без команды motor1.run(RELEASE) мотор продолжит вращаться.

Задание для самостоятельного выполнения:

  1. Сделайте плавный пуск и остановку моторов при помощи цикла for. Пример использования цикла можно посмотреть здесь: Плавное включение светодиода.

Подключение серво и шаговых двигателей

Для управления сервоприводами используется стандартная библиотека Servo.h, сами сервоприводы подключаются к цифровым выходам 9 и 10 через штырьки на краю платы. К шилду можно подключить только два сервопривода и два шаговых двигателя. Первый шаговый двигатель подключается к клеммам M1 и M2, а второй к клеммам M3 и M4. Схема подключения двигателей к Motor Shield L293D изображена далее.

Подключение шаговых двигателей к Motor Shield L293D
Подключение шаговых двигателей к Motor Shield L293D

После подключения Stepper Motor к шилду загрузите в плату следующий скетч:

#include <AFMotor.h>  // подключаем библиотеку для шилда
int i; // вводим переменную

// подключаем шаговый двигатель к порту 1 - M1, M2
// 48 - количество шагов для полного оборота
AF_Stepper stepper(48, 1);

void setup() {
}

void loop() {
  
  // делаем 48 шагов в одном направлении, DOUBLE - тип шага
  for (i = 0; i <= 48; i++) {
    stepper.step(1, FORWARD, DOUBLE);
    delay(30);
  }
  
  // делаем 48 шагов в обратном направлении (BACKWARD)
  for (i = 48; i >= 0; i--) {
    stepper.step(1, BACKWARD, DOUBLE);
    delay(30);
  }
  
}

1 Star2 Stars3 Stars4 Stars5 Stars (6 votes, average: 3,67 out of 5)
Загрузка...

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

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