Для управления двумя моторами используйте четыре сигнальных провода: IA1, IB1 – первый канал, IA2, IB2 – второй. Подача высокого уровня на IA и низкого на IB запускает вращение в одну сторону, обратная комбинация – в другую. Если оба входа в одном состоянии, вал остановится.
Подключите выходы OA и OB непосредственно к клеммам электромотора. Для снижения помех проложите провода максимально коротко. Если используется ШИМ, частота сигнала не должна превышать 1 кГц – плата не рассчитана на высокоскоростную модуляцию.
При работе с индуктивной нагрузкой параллельно мотору добавьте диод, например, 1N4007, анодом к OB, катодом к OA. Это предотвратит пробой от ЭДС самоиндукции. Для точного контроля скорости комбинируйте ШИМ с обратной связью по току через резистор 0,5 Ом в цепи питания.
В этой статье:
Как соединить и контролировать модуль L9110S
Чтобы менять скорость, применяйте ШИМ-сигнал на один из входов. Например, при постоянном низком уровне на IB и импульсном сигнале на IA частота вращения будет снижаться пропорционально скважности.
Для защиты от помех добавьте керамический конденсатор 0.1 мкФ между VCC и GND. Если нагрузка превышает 800 мА, используйте внешний теплоотвод или более мощный аналог, например, L298N.
Пример кода для Arduino:
const int pinIB = 8;
void setup() {
pinMode(pinIA, OUTPUT);
pinMode(pinIB, OUTPUT);
}
void loop() {
analogWrite(pinIA, 150); // Вращение вперед на 60% мощности
digitalWrite(pinIB, LOW);
delay(2000);
digitalWrite(pinIA, LOW);
analogWrite(pinIB, 255); // Полная скорость в обратном направлении
delay(2000);
}
Избегайте перегрева: продолжительная работа на максимальных токах без охлаждения сокращает срок службы элемента.
Соединение модуля L9110S с Arduino и моторами
Используйте ШИМ-сигналы для регулировки скорости. Например, при подаче 255 на IA и 0 на IB мотор вращается вперёд, при обратных значениях – назад. Для остановки установите оба выхода в LOW.
Пример кода для движения двух моторов:
const int motorA1 = 5;
const int motorA2 = 6;
const int motorB1 = 7;
const int motorB2 = 8;
void setup() {
pinMode(motorA1, OUTPUT);
pinMode(motorA2, OUTPUT);
pinMode(motorB1, OUTPUT);
pinMode(motorB2, OUTPUT);
}
void loop() {
// Вперёд на полной скорости
analogWrite(motorA1, 255);
analogWrite(motorA2, 0);
analogWrite(motorB1, 255);
analogWrite(motorB2, 0);
delay(2000);
// Стоп
digitalWrite(motorA1, LOW);
digitalWrite(motorA2, LOW);
digitalWrite(motorB1, LOW);
digitalWrite(motorB2, LOW);
delay(1000);
}
Изменение вращения и регулировка оборотов с помощью L9110S
Для изменения направления подайте на входы IA и IB противоположные сигналы. Например, HIGH на IA и LOW на IB заставит вал крутиться по часовой стрелке, а LOW на IA и HIGH на IB – против.
Не подавайте одинаковые уровни на оба входа одновременно – это вызовет торможение. Например, HIGH на IA и IB остановит вал без инерции.
Для плавного разгона увеличивайте ШИМ постепенно. Резкие скачки могут повредить обмотки. Оптимальный шаг – 10-15 единиц за 100 мс.
Если мотор не запускается, проверьте напряжение питания. Минимальный порог – 2.5 В, но стабильная работа достигается при 5-12 В. Превышение 12 В сократит срок службы.









