ok! Here you go. The following is my code and it work on my rover. Thank you guys.
///??????????????????????????
#include <IRremote.h>
#define E1 6//?????
#define E2 5
#define M1 8//?????
#define M2 7
//???????? ?????????????
#define UP 0xC26BF044 //?????UP?
#define DOWN 0xC4FFB646 //?????DOWN?
#define LEFT 0x758C9D82 //?????LEFT?
#define RIGHT 0x53801EE8 //?????RIGHT?
#define STOP 0x8AF13528 //?????STOP?
int RECV_PIN = 11; //????????
IRrecv irrecv(RECV_PIN);//???
decode_results results;//???????
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // ????
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.println(results.value, HEX);
switch(results.value)
{
case UP://2???
advance(255);
break;
case LEFT://4???
left_handed(255);
break;
case DOWN://8???
retreat(255);
break;
case RIGHT://6???
right_handed(255);
break;
case STOP://5???
stop_m();
break;
default:
delay(100);
}
irrecv.resume(); // Receive the next value
}
}
void foreward_mechine_a()//?????
{
analogWrite(E1,255);
digitalWrite(M1,LOW);
}
void inversion_mechine_a()//?????
{
analogWrite(E1,255);
digitalWrite(M1,HIGH);
}
void stop_a(void)//?????
{
digitalWrite(E1,LOW);
}
void stop_b(void)//?????
{
digitalWrite(E2,LOW);
}
void foreward_mechine_b()//?????
{
analogWrite(E2,255);
digitalWrite(M2,LOW);
}
void inversion_mechine_b()//?????
{
analogWrite(E2,255);
digitalWrite(M2,HIGH);
}
void advance(int time)//????
{
foreward_mechine_a();
foreward_mechine_b();
delay(time);
}
void retreat(int time)//????
{
inversion_mechine_a();
inversion_mechine_b();
delay(time);
}
void left_handed(int time)//????
{
inversion_mechine_a();
foreward_mechine_b();
delay(time);
}
void right_handed(int time)//????
{
foreward_mechine_a();
inversion_mechine_b();
delay(time);
}
void stop_m(void)//????
{
stop_a();
stop_b();
}