Общие сведения
WEMOS Motor Shield — это модуль с двухканальным драйвером коллекторных двигателей, предназначенный для установки на платы WeMos: WEMOS D1 mini / WEMOS D1 mini Pro. Модуль позволяет подключать либо один шаговый двигатель, либо до двух коллекторных двигателей и управлять ими по шине I2C.
Характеристики
- Используемые выводы: D1 (SCL), D2 (SDA), 3V3, GND.
- Шина передачи данных: I2C.
- Напряжение питания моторов: 2,5 ... 13,5 В.
- Номинальный ток моторов: 1,2 А (на канал).
- Максимальный пиковый ток моторов 3 А (на канал).
- Габариты: 27,6x25,6 мм.
Подключение
- Перед установкой Shield, к его выводам нужно припаять разъемы идущие с ним в комплекте.
- Все Shield WeMos устанавливаются на плату WEMOS D1 mini или WEMOS D1 mini Pro без использования проводов.
- На всех платах WeMos имеется вырез возле вывода 3V3. При установке Shield вырезы всех плат должны находиться с одной и той же стороны (друг над другом).
- Для подключения двигателей на плате модуля имеются контактные площадки под разъем PLS-8 с выводами: VM, GND, A1, A2, B1, B2, S.
- Напряжение питания двигателей (от 2,5 до 13,5 В) подаётся на выводы VM (два крайних вывода) и GND (два следующих вывода).
- Коллекторные двигатели подключаются к выводам A1 и A2, или B1 и B2. (можно подключить 1 или 2 двигателя).
- Биполярный шаговый двигатель подключается одной обмоткой к выводам A1 и A2, а второй обмоткой к выводам B1 и B2.
- Вход S при наличии логической «1» (3V3) разрешает работу драйвера, иначе переводит драйвер в режим ожидания.
- На обороте платы имеются перемычки: «AD0» и «AD1» - отвечают за адрес модуля на шине I2C, «RST» - отвечает за перезагрузку микроконтроллера на плате модуля, «STBY» - отвечает за перевод драйвера в режим ожидания.
- «STBY» замкнута в положении «IO» - перевод драйвера в режим ожидания осуществляется снятием «1» со входа S (по умолчанию).
- «STBY» замкнута в положении «I2C» - перевод драйвера в режим ожидания осуществляется по шине I2C.
- «RST» замкнута - перезагрузка МК модуля осуществляется через вывод «RST».
- «RST» не замкнута - перезагрузка МК модуля осуществляется через вывод «DTR».
- «AD0» не замкнута, «AD1» не замкнута - адрес 0x30 (по умолчанию);
- «AD0» не замкнута, «AD1» замкнута - адрес 0x2F;
- «AD0» замкнута, «AD1» не замкнута - адрес 0x2E;
- «AD0» замкнута, «AD1» замкнута - адрес 0x2D;
- Контактные площадки под разъем PLS-6 с выводами: GND, RTS, 3V, R, T, DTR, предназначены для прошивки микроконтроллера STM32F030F4P6 в процессе изготовления модуля.
Подробнее о модуле
На плате WeMos Motor Shield установлен двухканальный H-мостовой MOSFET драйвер коллекторных двигателей на базе чипа TB6612FNG и 32-битный Cortex-M0 микроконтроллер STM32F030F4P6 с тактовой частотой 48 МГц и 16 КБ flash памяти. Каждый канал драйвера позволяет управлять одним коллекторным двигателем, а использование двух каналов позволяет подключить либо два коллекторных двигателя, либо один биполярный шаговый двигатель. Драйвер подключён к шине I2C через микроконтроллер STM32F030F4P6, который получает команды по шине I2C и отправляет управляющие сигналы и сигналы ШИМ на драйвер. Скетч загруженный в микроконтроллер позволяет использовать модуль в качестве ведомого устройства с адресом 0x30 (по умолчанию), но адрес можно изменить на 0x2D, 0x2E, 0x2F используя перемычки AD0, AD1 на обратной стороне платы модуля. Допускается использовать двигатели с рабочим напряжением от 4,5 до 13,5 В и номинальным током до 1,2 А.
Для работы с модулем предлагаем вам воспользоваться библиотекой WEMOS_Motor.
Примеры
Управление скоростью двух моторов.
#include "WEMOS_Motor.h" int pwm; //Motor shiled I2C Address: 0x30 //PWM frequency: 1000Hz(1kHz) Motor M1(0x30,_MOTOR_A, 1000);//Motor A Motor M2(0x30,_MOTOR_B, 1000);//Motor B void setup(){ Serial.begin(250000); } void loop(){ for (pwm = 0; pwm <= 100; pwm++){ M1.setmotor(_CW, pwm); M2.setmotor(_CW, 100-pwm); Serial.printf("A:%d%, B:%d%, DIR:CW\r\n", pwm,100-pwm); } M1.setmotor(_STOP); M2.setmotor(_STOP); Serial.println("Motor A&B STOP"); delay(200); for (pwm = 0; pwm <=100; pwm++){ M1.setmotor(_CCW, pwm); M2.setmotor(_CCW, 100-pwm); Serial.printf("A:%d%, B:%d%, DIR:CCW\r\n", pwm,100-pwm); } M1.setmotor(_STOP); M2.setmotor(_STOP); delay(200); Serial.println("Motor A&B STOP"); M1.setmotor(_SHORT_BRAKE); M2.setmotor(_SHORT_BRAKE); Serial.println("Motor A&B SHORT BRAKE"); delay(1000); M1.setmotor(_STANDBY);//Both Motor standby //M2.setmotor(_STANDBY); Serial.println("Motor A&B STANDBY"); delay(1000); }
Данный скетч использует библиотеку WEMOS_Motor для работы с платами WeMos Motor Shield.
Единственная строка кода setup() инициирует передачу данных в монитор последовательного порта на скорости 74880 бод. Данная скорость выбрана не случайно, именно на этой скорости микроконтроллер ESP8266 отправляет в UART отладочную информацию при старте.
Комплектация
- 1x WeMos Motor Shield;
- 2x Соединитель типа "ПАПА-ПАПА" прямой;
- 1х Соединитель типа "ПАПА-ПАПА" угловой;