Skip to main content

MX1508: Мини-драйвер

MX1508 (Mini L298N)

MX1508 — это крошечный и очень дешевый драйвер, который часто называют “Mini L298N”, хотя внутри он устроен иначе (на MOSFET-ах, как и TB6612). Он идеально подходит для маленьких роботов на батарейках (AA или Li-Ion 1S/2S).

MX1508 Module

1. Характеристики

  • Напряжение питания: 2V – 10V.
  • Ток: 1.5A на канал (пик до 2.5A).
  • Логика: Не требует отдельного питания логики (берет от силового).
  • Размер: Очень маленький (~2x2 см).
  • Цена: Самый дешевый из всех (дешевле L298N и TB6612).

Отличия от L298N

  1. Нет пинов Enable: Управление скоростью (ШИМ) подается прямо на пины направления (IN).
  2. Низкое напряжение: Нельзя подавать больше 10V (сгорит). L298N держит до 35V.
  3. Эффективность: Лучше, чем у L298N (меньше падение напряжения), но чуть хуже, чем у TB6612.

2. Подключение

PinНазначениеArduino
+ / VCCПитание (+)Батарея (2-10V)
- / GNDЗемля (-)GND (Батарея + Arduino)
MOTOR AВыход на мотор АМотор 1
MOTOR BВыход на мотор BМотор 2
IN1Управление АD5 (PWM)
IN2Управление АD6 (PWM)
IN3Управление BD9 (PWM)
IN4Управление BD10 (PWM)

Важно: Для регулировки скорости нужно подключать пины IN к ШИМ-выходам Arduino (помечены тильдой ~).

3. Программная реализация

Так как нет отдельного пина ENABLE, логика управления немного меняется.

  • Вперед: IN1 = PWM (Скорость), IN2 = LOW (0).
  • Назад: IN1 = LOW (0), IN2 = PWM (Скорость).
  • Стоп: IN1 = LOW, IN2 = LOW.
  • Тормоз: IN1 = HIGH, IN2 = HIGH.
// Пины должны поддерживать PWM!
#define IN1 5
#define IN2 6

void setup() {
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
}

void loop() {
  // Вперед (50% скорости)
  analogWrite(IN1, 128);
  digitalWrite(IN2, LOW);
  delay(2000);

  // Стоп
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  delay(1000);

  // Назад (100% скорости)
  digitalWrite(IN1, LOW);
  analogWrite(IN2, 255);
  delay(2000);
}

Функция управления

void setMotorSpeed(int speed) {
  // speed: от -255 до 255
  if (speed > 0) {
    analogWrite(IN1, speed);
    digitalWrite(IN2, LOW);
  } else if (speed < 0) {
    digitalWrite(IN1, LOW);
    analogWrite(IN2, -speed);
  } else {
    digitalWrite(IN1, LOW);
    digitalWrite(IN2, LOW);
  }
}

4. Вердикт

MX1508 — лучший выбор для:

  • Маленьких машинок на 2-4 батарейках AA.
  • Роботов на ESP32/ESP8266 (работает с логикой 3.3V).
  • Ситуаций, когда нужно сэкономить место и деньги.

Не подходит для:

  • Мощных моторов (> 1.5A).
  • Высокого напряжения (> 10V).