#include <IRremote.h>

long Go_Forward = 0x00FF18E7;
long Left_Rotate =  0x00FF5AA5;
long Right_Rotate = 0x00FF10EF;

long Go_Back = 0x00FF4AB5;
long Stand_Stop = 0x00FF38C7;



int input1 = 5; // unopin 5  input1    
int input2 = 6; // unopin 6  input2   
int input3 = 8; // unopin 8  input3   
int input4 = 7; // unopin 7  input4   

int RECV_PIN = 2;//Ϊ2
IRrecv irrecv(RECV_PIN);
decode_results results;
  
  
void setup() {  
Serial.begin (9600);
irrecv.enableIRIn(); // ʼ  
//ʼIO,ģʽΪOUTPUT ģʽ  
pinMode(input1,OUTPUT);  
pinMode(input2,OUTPUT);  
pinMode(input3,OUTPUT);  
pinMode(input4,OUTPUT);  
  
}  
  
void loop() {  

  if (irrecv.decode(&results)){

    if(results.value == Go_Forward){
        digitalWrite(input1,HIGH); //  
        digitalWrite(input2,LOW);  //
        digitalWrite(input3,HIGH); // 
        digitalWrite(input4,LOW);  //    
      }

    if(results.value == Left_Rotate){
        digitalWrite(input1,HIGH); //
        digitalWrite(input2,LOW);  //
        digitalWrite(input3,LOW); //
        digitalWrite(input4,HIGH);  // 

        
      }   
    if(results.value == Right_Rotate){
        digitalWrite(input1,LOW); //
        digitalWrite(input2,HIGH);  //
        digitalWrite(input3,HIGH); //
        digitalWrite(input4,LOW);  // 
        
      }   

    if(results.value == Go_Back){
        digitalWrite(input1,LOW); //
        digitalWrite(input2,HIGH);  //
        digitalWrite(input3,LOW); //
        digitalWrite(input4,HIGH);  // 
      }
    if(results.value == Stand_Stop){
        digitalWrite(input1,LOW); //
        digitalWrite(input2,LOW);  //
        digitalWrite(input3,LOW); //
        digitalWrite(input4,LOW);  // 
      }   
    irrecv.resume();
    }   
  
}

