Hello, I'm trying to make a robot controlled by an IR remote. I've been trying to make it work for days but 3rd and 4th motor dont seem to work and I also can't change the directions of the ones that work.
Here's the code:
#include<IRremote.h>
const int RemotePin=8;
IRrecv irrecv(RemotePin);
decode_results results;
int in1=3;
int in2=5;
int in3=6;
int in4=9;
int enA=10;
int enB=11;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
}
void loop() {
if(irrecv.decode(&results))
{
if (results.value==0xFF18E7)//Press UP Button
{
Forward();
}
else if (results.value==0xFF4AB5)//Press Down Button
{
Backward();
}
else if (results.value==0xFF10EF)//Press Left Button
{
Left();
}
else if (results.value==0xFF5AA5)//Press Right Button
{
Right();
}
else if (results.value==0xFF38C7)//Stop
{
Stop();
}
irrecv.resume();
}
}
void Forward()
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enA, 150);
analogWrite(enB, 150);
}
void Backward()
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
analogWrite(enA, 150);
analogWrite(enB, 150);
}
void Right()
{
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
digitalWrite(in3,HIGH);
digitalWrite(in4,LOW);
analogWrite(enA, 150);
analogWrite(enB, 150);
}
void Left()
{
digitalWrite(in1,HIGH);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,HIGH);
analogWrite(enA, 150);
analogWrite(enB, 150);
}
void Stop()
{
digitalWrite(in1,LOW);
digitalWrite(in2,LOW);
digitalWrite(in3,LOW);
digitalWrite(in4,LOW);
analogWrite(enA, 0);
analogWrite(enB, 0);
}

