🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🔄 Проект: переключение направления DC-мотора кнопкой через драйвер L9110S

L9110S — компактный двухканальный драйвер, заметно меньше L298N, для небольших маломощных DC-моторов или униполярных шаговых двигателей. Каждое нажатие кнопки меняет направление вращения мотора на противоположное.

Как это работает

L9110S содержит два независимых H-моста: HIGH на один управляющий вход и LOW на другой даёт вращение в одну сторону, наоборот — в обратную; одинаковые уровни на обоих входах останавливают мотор.

В отличие от L298N (мощнее, крупнее, с отдельным входом ШИМ), L9110S проще и компактнее, но рассчитан на меньший ток — для мини-моторчиков в хобби-проектах этого достаточно.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. L9110S: A-IA → D2, A-IB → D3, VCC → питание мотора (обычно 5V), GND → GND.
  2. Мотор — к выходным клеммам канала A (A-OA, A-OB).
  3. Кнопка: один вывод → D4, второй → GND (INPUT_PULLUP).

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить. Небольшой
// DC-мотор не входит в комплект — подключается к выходным клеммам.

const int IA = 2;
const int IB = 3;
const int BUTTON_PIN = 4;
bool forward = true;
bool lastButtonState = HIGH;

void setMotorDirection(bool goForward) {
  digitalWrite(IA, goForward ? HIGH : LOW);
  digitalWrite(IB, goForward ? LOW : HIGH);
}

void setup() {
  Serial.begin(9600);
  pinMode(IA, OUTPUT);
  pinMode(IB, OUTPUT);
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  setMotorDirection(forward);
}

void loop() {
  bool buttonState = digitalRead(BUTTON_PIN);
  if (lastButtonState == HIGH && buttonState == LOW) {
    forward = !forward;
    setMotorDirection(forward);
    delay(50);
  }
  lastButtonState = buttonState;
}
                

Дополнительных библиотек не требуется. Код реагирует на момент нажатия (переход HIGH→LOW), а не на удержание — направление меняется один раз за нажатие.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← ↕️ безопасное подключение "голого…🔌 автономный сетевой узел управл… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 137 ₽ 123 ₽ (экономия 14 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA