Motor Shield ESP8266 NodeMCU

Купил для NodeMcu Motor Shield. При покупке шилда будьте внимательны он совместим только с версией nodemcu amica. На картинке слева.

версией nodemcu amica

Если вы не знаете как прошить NodeMCU читайте: Чтотакое NodeMCU? Программируем в среде ArduinoIDE

Motor Shield Состоит из следующих элементов.

Motor Shield Состоит из следующих элементов

Колодка GPIO рассчитаны для подключения сервоприводов. Данную колодку я использовал в своем проекте на ESP8266: Манипуляторсвоими руками из фанеры

Данная колодка очень удобна и для подключении различной периферии .

Шилд еще оснащен драйвером L293DD. Благодаря чему к Motor Shield можно подключить 2 двигателя постоянного тока с напряжением до 36 В. Для работы драйвера необходимо подать питания на клеммы motor power. Первый двигатель подключается к колодке motor A, второй к motor B.

Распиновка и основные характеристики драйвера L293DD с лева на картинке.

 драйвера L293DD с лева на картинке

Справа L293D версия с 16 ногами у L293DD 20 ног. Прикладываю Даташит для данных драйверов L293DD.pdf.

Подключаем двигателя и питание к Motor Shield вот по такой схеме.

Подключаем двигателя и питание к Motor Shield вот по такой схеме

Может кому прегодиться файл Motor Shield для Fritzing ESP12E Motor Shield.fzpz

Для проверки работоспособности драйвера можно использовать вот этот скетч.

#define PWMA_PIN 5  // gpio5 = D1  PWM_A
#define PWMB_PIN 4  // gpio4 = D2  PWM_B
#define dir_A 0  // gpio0 = D3  DA (A- A+) подключается двигатель 
#define dir_B 2  // gpio2 = D4  DB (B- B+) подключается двигатель

void setup() 
   {
    pinMode(PWMA_PIN, OUTPUT); // инициализируем Pin как выход
    pinMode(PWMB_PIN, OUTPUT); // инициализируем Pin как выход
    pinMode(dir_A, OUTPUT); // инициализируем Pin как выход
    pinMode(dir_B, OUTPUT); // инициализируем Pin как выход
   }

void loop()
{
  digitalWrite(PWMA_PIN, HIGH);   // PWM_A HIGH
  digitalWrite(dir_A, HIGH);   // DA HIGH
  delay(2000);                  // wait 
  digitalWrite(dir_A, LOW);    // DA LOW
  delay(2000);                  // wait
  digitalWrite(PWMB_PIN, HIGH);   // PWM_B HIGH, изменяется направление вращения двигателя на контактах (B- B+)
  digitalWrite(dir_B, HIGH);   // DB HIGH
  delay(2000);                  // wait 
  digitalWrite(dir_B, LOW);    // DB LOW
  delay(2000);                  // wait 
  digitalWrite(PWMB_PIN, LOW);    // PWM_B LOW

 }

Данная программа будет поочередно вращать двигателями .

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

Закрыть меню
×
×

Корзина