Драйвер поддерживает следующие режимы работы: Вперед, Назад, Торможение и Остановка. Регулирование скорости вращения каждого из двигателей при помощи ШИМ-регулирования с максимальной частотой 50 кГц. Дополнительно предусмотрен вход перевода драйвера в ждущий режим подачей низкого логического уровня на вход STBY. Формула для рассчета ограничения выходного тока: I(A) = 0.2V / R (Ohm), если поставить перемычки – ограничение будет вылючено.
Драйвер отлично стыкуется как с 5V-платами Arduino, так и с 3,3V-контроллерами и миникомпьютерами. Распиновка выполнена таким образом, что входные контакты находятся на одной стороне, а выходные – на другой.
Распиновка
Входы драйвера:
- NC – Вход не используется А
- AIN2 – Вход 2 управления двигателем А
- AIN1 – Вход 1 управления двигателем А
- STBY – Вход перевода драйвера обоих двигателей в ждущий режим
- BIN1 – Вход 1 управления двигателем В
- BIN2 – Вход 2 управления двигателем В
- NC – Вход не используется В
- GND – Общий
Выходы драйвера:
- VM – Вход напряжения питания силовых ключей драйвера
- VCC – Вход напряжения питания логической части драйвера
- GND – Общий
- A01 – Выход 1 двигателя А
- A02 – Выход 2 двигателя А
- B02 – Выход 2 двигателя В
- В01 – Выход 1 двигателя В
- GND – Общий
Логика работы драйвера
IN1 | IN2 | STBY | OUT1 | OUT2 | Описание режима |
---|---|---|---|---|---|
Высокий | Высокий | Высокий | Низкий | Низкий | Торможение |
Низкий | Высокий | Высокий | Низкий | Высокий | Обратное вращение |
Низкий | Высокий | Высокий | Низкий | Низкий | Торможение |
Высокий | Низкий | Высокий | Высокий | Низкий | Прямое вращение |
Высокий | Низкий | Высокий | Низкий | Низкий | Торможение |
Низкий | Низкий | Высокий | Выключен | Выключен | Стоп |
Высокий/Низкий | Высокий/Низкий | Низкий | Выключен | Выключен | Ожидание |
Пример
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
#define AIN1 4 #define AIN2 5 #define BIN1 7 #define BIN2 8 void setup() { Serial.begin(9600); pinMode(AIN1,OUTPUT); pinMode(AIN2,OUTPUT); pinMode(BIN1,OUTPUT); pinMode(BIN2,OUTPUT); } void loop() { digitalWrite(AIN1,HIGH); digitalWrite(AIN2,LOW); digitalWrite(BIN1,HIGH); digitalWrite(BIN2,LOW); delay(3000); digitalWrite(AIN1,LOW); digitalWrite(AIN2,LOW); digitalWrite(BIN1,LOW); digitalWrite(BIN2,LOW); delay(3000); digitalWrite(AIN1,LOW); digitalWrite(AIN2,HIGH); digitalWrite(BIN1,LOW); digitalWrite(BIN2,HIGH); delay(3000); digitalWrite(AIN1,LOW); digitalWrite(AIN2,LOW); digitalWrite(BIN1,LOW); digitalWrite(BIN2,LOW); delay(3000); } |