При подключении моторов через драйвер l298n один мотор не крутиться.
- Войдите на сайт для отправки комментариев
Вс, 13/12/2015 - 00:01
Делаю управление моторами с помощью ик пульта, также хочу сделать автоматическую остановку перед препятствием. При подключении моторов через драйвер l298n один мотор не крутиться. Причём при запуске скетча без использования датчиков оба мотора работают нормально. Если же подключить драйвер без регулировки скорости моторов, то они крутятся. Пробовал питать драйвер от разных источников. Также есть проблема с выключением мотора с помощью ик пульта, при нажатии кнопки он просто не останавливается.
#include <Ultrasonic.h> #include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv (RECV_PIN); decode_results results; int IN1 = 7; int IN2 = 6; int IN3 = 5; int IN4 = 4; int ENA = 10; int ENB = 3; Ultrasonic ultrasonic(8, 9); //Trig-8, Echo-9 int i = 1023; void setup() { irrecv.enableIRIn(); pinMode (ENA, OUTPUT); pinMode (IN1, OUTPUT); pinMode (IN2, OUTPUT); pinMode (ENB, OUTPUT); pinMode (IN4, OUTPUT); pinMode (IN3, OUTPUT); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); } void loop() { int distance = ultrasonic.Ranging(CM); if (distance < 20) { digitalWrite (IN1, LOW); digitalWrite (IN2, LOW); digitalWrite (IN3, LOW); digitalWrite (IN4, LOW); } delay(100); if (irrecv.decode(&results)) { if (results.value == 0xFF30CF) { digitalWrite (IN1, HIGH); digitalWrite (IN2, LOW); digitalWrite (IN3, HIGH); digitalWrite (IN4, LOW); analogWrite (ENB, i); analogWrite (ENA, i); } if (results.value == 0xFF18E7) { digitalWrite (IN2, LOW); digitalWrite (IN1, LOW); digitalWrite (IN4, LOW); digitalWrite (IN3, LOW); } irrecv.resume(); } }
сначала без пульта все проверяй по отдельности каждый канал, потом вместе