View Categories

Драйвер моторов L9110S

Популярный модуль драйвера для двух моторов. Драйвер работает по классической схеме Н-мост, по два пина управления на каждый мотор - это позволяет подключать к нему как обычные коллекторные моторы с управлением скоростью в обе стороны (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 блоков кода

Полезные страницы #

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Прокрутить вверх