Перейти к содержанию

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

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

Motor shield L293D Arduino — рассмотрим очень полезное расширение для платы Arduino Uno или Mega, а также схему подключения серводвигателей, шаговых двигателей и двигателей постоянного тока к этой плате расширения. Вы также можете ознакомиться на этой странице с командами, используемыми в библиотеке AFMotor.h, и попробовать различные скетчи для управления шаговыми двигателями и серво от Ардуино.

Необходимые компоненты:

  • Arduino Uno / Arduino Mega
  • motor control shield L293D
  • моторы постоянного тока
  • сервомотор
  • шаговый двигатель
  • коннекторы
  • скачать библиотеку AFMotor.h

Дополнительные материалы на эту тему:

  1. Блютуз Машинка с двумя моторами на Ардуино
  2. Подключение мотора постоянного тока к Ардуино
  3. Подключение шагового двигателя к Ардуино

При подключении к Arduino Uno сервоприводов и двигателей через контроллер L239D используются различные порты, к которым нельзя подключать другие устройства. Например, цифровые порты 9 и 10 используются для сервоприводов, а порты устройства с 3 по 8 и 12 — для шаговых двигателей и моторов. Если вы хотите подключить что-то еще, используйте порты 2 и 13, а аналоговые входы можно использовать как цифровые выходы.

Motor Shield L293D Arduino схема, распиновка

Motor shield L293D Arduino схема, распиновка

Motor Shield L293D характеристики

  • Требуется библиотека AFMotor.h
  • Подключение до 2 серводвигателей на 5 вольт
  • подключение до 2 шаговых двигателей от 6 до 12 вольт
  • Подключение до 4 двигателей с реверсом
  • Контакты для подключения внешнего источника питания
  • Плата расширения совместима с платами Uno и Mega

Модуль l239d подключается к Arduino очень просто — он устанавливается на Уно или микроконтроллер Мега прямо сверху. Обратите внимание, что без внешнего источника питания, подключенного к Motor Shield, логика и двигатели будут работать от 5 вольт, чего не всегда достаточно. Поэтому скорость двигателей постоянного тока возможно будет значительно отличаться при подключении платы к отдельному источнику питания.

Как подключить мотор шилд l293d к Ардуино

Как подключить мотор шилд 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 от Motor Shield 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

Управление шаговым мотором от Motor Shield 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.

Комментарии 4

  • как управлять шаговым двигателем и сервоприводом одновременно?

    • Здравствуйте.
      Примерно так:

      #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 градусов.При следующем нажатии кнопки так же срабатывает следующая серва.И так поочередно для всех четырех.Подскажите пожалуйста как это сделать?

  • а можно еще добавить потенциометр

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

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

newzaym
➜