Программа для управления мотрами и их скоростью с ИК пульта почему-то не работает.
- Войдите на сайт для отправки комментариев
#include "IRremote.h"
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long eventTime=0;
int timer_PIN = 13;
const int in1 = 2;
const int in2 = 3;
const int ENA = 5;
const int in3 = 6;
const int in4 = 7;
const int ENB = 10;
void setup()
{
irrecv.enableIRIn();
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(ENA, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(timer_PIN, OUTPUT);
}
void loop()
{
if(digitalRead(RECV_PIN) == LOW)
(timer_PIN, HIGH);
eventTime=millis(),digitalWrite(timer_PIN, HIGH);
if(millis()-eventTime>100)
digitalWrite(timer_PIN, LOW);
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
if(irrecv.decode(&results))
{
if(results.value==0x5AA5&&(digitalRead(timer_PIN)==HIGH))
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW); //
}
for (int a=55; a<=200; a++)
{
analogWrite(ENA, a);
analogWrite(ENB, a);
delay(10);
}
if(results.value==0x609F&&(digitalRead(timer_PIN)==HIGH))
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
for (int a=55; a<=200; a++)
{
analogWrite(ENA, a);
analogWrite(ENB, a);
delay(10);
}
if(results.value==0xFFFFD827&&(digitalRead(timer_PIN)==HIGH))
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
for (int a=55; a<=200; a++)
{
analogWrite(ENA, a);
analogWrite(ENB, a);
delay(10);
}
if(results.value==0x6897&&(digitalRead(timer_PIN)==HIGH))
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
for (int a=55; a<=200; a++)
{
analogWrite(ENA, a);
analogWrite(ENB, a);
delay(10);
}
irrecv.resume();
}
}
В чём ошибка?
Компилятор говорит, что написано верно. Когда нажимаю кнопку на пульте потор не крутится.