Драйвер коллекторных двигателей L9110S (HG7881)

Модуль собран на двух микросхемах HG7881 или аналоге L9110S, к модулю можно подключить два маломощных коллекторных или один шаговый двигатель.

Характеристики драйвера L9110S (HG7881):

  • Диапазон напряжения питания: 2.5V  …  12V.
  • Максимальный ток: 800mA, на каждый канал.
  • Управление логическим уровнем.
  • Встроенные защитные диоды.
  • Рабочая температура: 0℃  …  80℃.

Особенности модуля:

Модуль собран на двух полумостовых драйверах (H-bridge) HG7881, к сожалению подробного даташита на микросхему нет. Хотя и пишут что он предназначен для управления моторами, это не совсем так, у драйвера отсутствует возможность изменять скорость вращения мотора, драйвер способен изменять только направление вращения. По этой причине, данный модуль больше подходит для управления небольшими шаговыми двигателями, нежели коллекторными.

На схеме из даташита видно, что в наличии только входы для управления полумостами и питание.

Принципиальная схема модуля:

Подключение модуля к Arduino:

В случаи подключения коллекторного мотора.

Модуль подключается на два свободных выхода arduino, питание для моторов, если они маломощные и работают от напряжение 5 вольт, можно взять от arduino. Чтобы заставить мотор крутится, нужно на один выход подать логическую единицу и на второй логический ноль. Для изменения направления вращения, нужно инвертировать состояние обеих выходов arduino. подробнее в видео ниже.

 


код из видео
#define A1_A 8 // выходы на драйвер
#define A1_B 9

void setup(){
  pinMode (A1_A, OUTPUT);
  pinMode (A1_B, OUTPUT);
}

void loop(){
     // включаем мотор на 1 секунды вперед
  digitalWrite (A1_A, HIGH); 
  digitalWrite (A1_B, LOW); 
  delay(1000);  
     // выключаем мотор  
  digitalWrite (A1_A, LOW); 
  digitalWrite (A1_B, LOW); 
  delay(1000);
     // включаем мотор на 1 секунды назад
  digitalWrite (A1_A, LOW); 
  digitalWrite (A1_B, HIGH); 
  delay(1000);
       // выключаем мотор  
  digitalWrite (A1_A, LOW); 
  digitalWrite (A1_B, LOW); 
  delay(1000);
           // плавно увеличиваем скорость
  digitalWrite (A1_A, LOW); 
  for (int i = 0; i < 255; i++){
    analogWrite (A1_B, i); 
    delay(25);
  }
  delay(2000);
       // плавно уменьшаем скорость
  digitalWrite (A1_A, LOW); 
  for (int i = 255; i > 0; i--){
    analogWrite (A1_B, i); 
    delay(25);
  }
  delay(1000);

 
}


В случаи подключения биполярного шагового двигателя.

Подключаем обмотки за место коллекторных двигателей. Для работы можно использовать встроенную в среду библиотеку Stepper.h.