Драйвер моторов L293
Перемычка PWR нужна для объединения питания. Тогда моторы будут запитываться от вывода VCC. При таком варианте будьте внимательны, не спалите выводы.
Управляющие выводы:
- VCC - питание драйвера
- GND - земля драйвера
- IN1 - управляющий сигнал 1 мотора А
- IN2 - управляющий сигнал 2 мотора А
- IN3 - управляющий сигнал 1 мотора B
- IN4 - управляющий сигнал 2 мотора И
- EN1 - сигнал скорости мотора A
- EN2 - сигнал скорости мотора И
Выводы для подключения шагового моторов:
- VCC - питание мотора
- A+ -
Пример 1. Один мотор. Подключение: мотор красный провод в А+, мотор чёрный провод в А-. От Ардуино: 5в - VСС, GND - GND, EN1 - 10, IN1 - 9, IN2 - 8
Внешнее питание в VIN и GND.
Скетч:
#define MOTOR_EN_1 10 #define MOTOR_IN1 9 #define MOTOR_IN2 8 int Speed = 128; void Forward() { analogWrite(MOTOR_EN_1, Speed); digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, LOW); } void Back() { analogWrite(MOTOR_EN_1, Speed); digitalWrite(MOTOR_IN1, LOW); digitalWrite(MOTOR_IN2, HIGH); } void Brake() { digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, HIGH); } void setup() { Serial.begin(9600); Serial.println("L293D motor driver test"); pinMode(MOTOR_EN_1, OUTPUT); pinMode(MOTOR_IN1, OUTPUT); pinMode(MOTOR_IN2, OUTPUT); } void loop() { Forward(); delay(1000); Brake(); delay(500); Back(); delay(1000); Brake(); delay(500); }
Пример 2. Два мотора. Подключение: мотор 1 красный провод в А+, мотор чёрный провод в А-, мотор 2 красный провод в B-, мотор чёрный провод в B+. От Ардуино: 5в - VСС, GND - GND, EN1 - 10, IN1 - 9, IN2 - 8, EN2 - 11, IN3 - 12, IN4 - 13
Внешнее питание в VIN и GND.
#define MOTOR_EN_1 10 #define MOTOR_EN_2 11 #define MOTOR_IN1 9 #define MOTOR_IN2 8 #define MOTOR_IN3 12 #define MOTOR_IN4 13 int Speed = 128; void Forward() { analogWrite(MOTOR_EN_1, Speed); digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, LOW); analogWrite(MOTOR_EN_2, Speed); digitalWrite(MOTOR_IN3, HIGH); digitalWrite(MOTOR_IN4, LOW); } void Back() { analogWrite(MOTOR_EN_1, Speed); digitalWrite(MOTOR_IN1, LOW); digitalWrite(MOTOR_IN2, HIGH); analogWrite(MOTOR_EN_2, Speed); digitalWrite(MOTOR_IN3, LOW); digitalWrite(MOTOR_IN4, HIGH); } void Brake() { digitalWrite(MOTOR_IN1, HIGH); digitalWrite(MOTOR_IN2, HIGH); digitalWrite(MOTOR_IN3, HIGH); digitalWrite(MOTOR_IN4, HIGH); } void setup() { Serial.begin(9600); Serial.println("L293D motor driver test"); pinMode(MOTOR_EN_1, OUTPUT); pinMode(MOTOR_IN1, OUTPUT); pinMode(MOTOR_IN2, OUTPUT); pinMode(MOTOR_EN_2, OUTPUT); pinMode(MOTOR_IN3, OUTPUT); pinMode(MOTOR_IN4, OUTPUT); } void loop() { Forward(); delay(1000); Brake(); delay(500); Back(); delay(1000); Brake(); delay(500); }