Эта страница только для чтения. Вы можете посмотреть исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Драйвер моторов 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. Скетч: <file Arduino> #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); } </file> Пример 2. Два мотора. Подключение: мотор 1 красный провод в А+, мотор чёрный провод в А-, мотор 2 красный провод в B-, мотор чёрный провод в B+. От Ардуино: 5в - VСС, GND - GND, EN1 - 10, IN1 - 9, IN2 - 8, EN2 - 11, IN3 - 12, IN4 - 13 Внешнее питание в VIN и GND. <file Arduino> #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); } </file>