#include int receiver = 12; // Signal Pin of IR receiver to Arduino Digital Pin 12 IRrecv irrecv(receiver); // create instance of 'irrecv' decode_results results; // create instance of 'decode_results' int Mode=0; int ENA=6; // DC motor int ENB=5; int N1=7; int N2=8; int N3=9; int N4=11; int middle=4; // Line tracker int right=10; int left=2; int M=0; int R=0; int L=0; void setup(){ irrecv.enableIRIn(); Serial.begin(9600); pinMode(N1,OUTPUT); // DC motor pinMode(N2,OUTPUT); pinMode(N3,OUTPUT); pinMode(N4,OUTPUT); pinMode(middle,INPUT);// Line tracker pinMode(right,INPUT); pinMode(left,INPUT); } void loop(){ if (irrecv.decode(&results)){ modeCheck(); irrecv.resume(); // receive the next value } (Your Code) } void modeCheck(){ if (Your code) { Mode=1; } else if (Your code) { Mode=2; } else if (Your code){ Mode=4; // Just stop } } void translateIR() // takes action based on IR code received { if (Mode==1) switch(results.value) { case 0xFF629D: goForward(); break; case 0xFF22DD: turnLeft(); break; case 0xFF02FD: stopCar(); break; case 0xFFC23D: turnRight(); break; case 0xFFA857: goBack(); break; } } else if (Mode==2){ M=digitalRead(middle); R=digitalRead(right); L=digitalRead(left); if (M==0 && R==1 && L==1){ goForward(); } else if (Your Code){ turnRight(); } else if (Your Code){ turnLeft(); } } else if (Mode==4){ stopCar(); } } void goForward(){ (Your Code) } void goBack(){ (Your Code) } void turnLeft(){ (Your Code) } void turnRight(){ (Your Code) } void stopCar(){ (Your Code) }