Популярный модуль драйвера для двух моторов. Драйвер работает по классической схеме Н-мост, по два пина управления на каждый мотор - это позволяет подключать к нему как обычные коллекторные моторы с управлением скоростью в обе стороны (2 штуки), так и двухфазные шаговые моторы (1 штуку), а также простую нагрузку типа светодиодных лент.
![]() |
В наборе GyverKIT | START | IOT | EXTRA |
---|---|---|---|---|
Драйвер мотора | ✔ |
Характеристики:
- Количество моторов: 2
- Напряжение логики: 3.. 5V
- Напряжение мотора: 2.5.. 12V
- Рабочий ток: 800 мА
- Пиковый ток: 1.5А
Подключение к Arduino #
- Для управления выходами достаточно подключить микроконтроллер к GND и управляющим пинам драйвера
- VCC на плате драйвера идёт на питание мотора, то есть его к МК подключать не нужно (за исключением тех случаев, когда МК и драйвер питаются от одного источника)
- Управляющие пины драйвера подключаются к любым цифровым пинам МК. Если нужно управление скоростью вращения мотора – один из пары пинов нужно подключать на пин МК с возможностью ШИМ сигнала. Если нужна более стабильная работа мотора в обе стороны - оба пина подключаются на ШИМ
В данном модуле пины управления подтянуты к VCC резисторами на 10 кОм, то есть при управлении 12V нагрузкой они окажутся под высоким напряжением. Пины МК защищены от повышенного напряжения, но всё равно не рекомендуется управлять нагрузкой с напряжением выше питания МК. В наборе GyverKIT идут моторы, которые работают от 5V, а также блок питания на 5V
Программирование #
Связанные уроки:
Скорость и направление #
Добавим в схему потенциометр для настройки:
Будем задавать потенциометром скорость и направление для первого мотора (вариант с двумя ШИМ):
#define MOTOR_A1 3 // ШИМ
#define MOTOR_A2 5 // ШИМ
#define POT_PIN 0
// функция для запуска мотора
// принимает -255.. 255
void runMotor1(int speed) {
uint8_t m1 = 0, m2 = 0;
if (speed > 0) m1 = 0, m2 = speed;
else if (speed < 0) m1 = -speed, m2 = 0;
analogWrite(MOTOR_A1, m1);
analogWrite(MOTOR_A2, m2);
}
void setup() {
}
void loop() {
// преобразуем 0.. 1023 в -255.. 255
int motSpeed = map(analogRead(POT_PIN), 0, 1023, -255, 255);
runMotor1(motSpeed);
delay(30);
}
Дополнительно #
Дополнительный контент доступен владельцам набора GyverKIT и по подписке, подробнее читай здесь. Блок содержит:
- Примеры
- 1 блоков кода

Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту ([email protected])
- Поддержать автора за работу над уроками