Подключение L9110S к Arduino

27-02-2020, 17:41 0 комментариев
В данном обзоре речь пойдет о подключении L9110S к Arduino и основных параметрах этого двухканального драйвера. Напомним, подобные модули отлично вписываются во многие современные проекты, связанные с автоматизацией робототехники, «умными» системами и применением различных моторов (например, коллекторных или шаговых). Данное устройство, к слову, подойдет именно для подключения 2-х маломощных коллекторных или одного более мощного шагового двигателя.

Напомним нашим читателям тот факт, что ШД – это отличный выбор для управления различными процессами в проектах. Они часто используются в конструировании простых ЧПУ станков, 3-Д принтеров, копировальной ∕ факсимильной техники, манипуляторов и т.п. на платформе Ардуино.

Рассмотрим технические параметры драйвера:
  • напряжение питания: 2.5-12 V;
  • совместимость входа: TTL / CMOS;
  • max ток: 800mA (поканально);
  • диапазон рабочих температур: 0℃  …  +80℃;
  • габариты: 30 х 24 х 15 mm;
  • вес: около 7 г.
В плате продумано управление логическим уровнем, имеются защитные диоды и светодиод индикации питания (LED подсветка).
Электрическая схема показана на скриншоте:

Подключение L9110S к Arduino

Примеров использования модуля очень много. Мы остановимся на самых элементарных. Первая схема сборки (стандартная, если можно так ее назвать) выглядит вот так:

По сути мы взяли контроллер Уно, модуль L9110S, ШД, провода и соединили все это вместе.
Прописываем коды с целью тестирования управления:
int Speed = 0;
const int IA1 = 5;  // Управляющий вывод 1
const int IA2 = 6;  // Управляющий вывод 2

void setup() {
  pinMode(IA1, OUTPUT);
  pinMode(IA2, OUTPUT);
  Serial.begin(9600);
}

void loop() {
    if (Serial.available() > 0) {
      String s = Serial.readString(); 
      Speed = s.toInt(); // преобразуем считанную строку в число
    }
    if (Speed > 0) { // если число положительное, вращаем в одну сторону
      analogWrite(IA1, Speed);
      analogWrite(IA2, LOW);      
    }
    else { // иначе вращаем ротор в другую сторону
      analogWrite(IA1, LOW);
      analogWrite(IA2, -Speed);      
    }
}
Следующий вариант чуть сложнее (более модернизирован):
Задействованы такие аппаратные компоненты:
  1. Микроконтроллер Arduino Uno.
  2. Модуль драйвера L9110S.
  3. Мотор.
  4. Макетная плата.
  5. Несколько светодиодов (белый и красный).
  6. Источник питания (4 батарейки).
  7. Соединительные провода.
Напишем программный скетч (для проверки работоспособности):
// Драйвер двигателя L9110S
// by Dr.S
// 3d-diy.ru

// определяем, какие порты будем использовать для управления мотором и светодиодами
#define FORWARD 3
#define BACK 5
#define WHITE_LIGHT 6
#define RED_LIGHT 9
#define LEDOUT 13
#define TIME 5000

unsigned char Forward_Speed = 200;
unsigned char Back_Speed = 160;
unsigned char White_Light = 210;
unsigned char Red_Light = 220;

void setup() {

// объявляем пины управления мостом как выходы:
pinMode(FORWARD, OUTPUT);
pinMode(BACK, OUTPUT);
pinMode(WHITE_LIGHT, OUTPUT);
pinMode(RED_LIGHT, OUTPUT);
pinMode(LEDOUT, OUTPUT);

}

// the loop routine runs over and over again forever:

void loop() {

// Робот едет вперед в течении времени TIME
analogWrite(WHITE_LIGHT, White_Light); // Включить белый светодиод- "фары"
analogWrite(RED_LIGHT, 0);
analogWrite(FORWARD, Forward_Speed); // Робот пошел  вперед
analogWrite(BACK, 0);
delay(  TIME); // и немного подождать
 
// Робот включает "фары" на половину обычной яркости  и стоит 
analogWrite(WHITE_LIGHT, White_Light / 2); // Включить белый светодиод- "фары" как стояночные огни
analogWrite(RED_LIGHT, 0); 
analogWrite(FORWARD, 0); // Робот стоит
analogWrite(BACK, 0);
delay(TIME); // и немного подождать
 
// Робот включает красные светодиоды "заднего хода" и идет назад 
analogWrite(WHITE_LIGHT, 0); // Включить белый светодиод- "фары" как стояночные огни
analogWrite(RED_LIGHT, Red_Light);
analogWrite(FORWARD, 0);
analogWrite(BACK, Back_Speed); // Робот идет назад
delay(  TIME); // и немного подождать
 
// Робот включает попеременно красные и белые светодиоды и стоит
analogWrite(WHITE_LIGHT, 0);
analogWrite(RED_LIGHT, Red_Light / 2); // Включить красный  светодиод  как стояночные огни
analogWrite(FORWARD, 0);
analogWrite(BACK, 0); // Робот стоит
delay(  TIME / 2); // и немного подождать
analogWrite(WHITE_LIGHT, White_Light / 2); // Включить белый светодиод- "фары" как стояночные огни
analogWrite(RED_LIGHT, 0);
delay(  TIME / 2); // и немного подождать

}
Это все, чем мы хотели сегодня поделиться с вами! Желаем удачной компиляции!
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

В этой статье мы хотим продолжить тему подключения шаговых двигателей к Ардуино – на очереди рассказ о ШД Nema 17. Почему именно он? Эта модель считается...

На повестке дня – подключение L293D к Arduino, знакомство с техническими характеристиками модуля, его практическим применением и простейшими схемами сборки....

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...

Подключение Motor Shield к Arduino у многих любителей электроники вызывает определенные затруднения. Тем не менее этот драйвер двигателей очень популярен и...

Оставить комментарий