[Ajuda] Robô controlado por controle IR

Estou fazendo um robô controlado por um controle IR, similar aqueles de som de carro, vendido em kits de controle IR. Bem o meu robô sera bem simples, so quero controlar a sua locomoção, formada por dois motores DC com locomoção tipo tanque de guerra, e controlar o acender e apagar de um LED. Sou iniciante na area de programação, mas estava vendo um post em outro forum e o altor me fornecel seu codigo, mas era algo mais complexo do que eu quero.

Modifiquei o codigo mas sempre da erro. Este é o codigo que estou fazendo:

 #include <IRremote.h> 

int motor1Pin1 = 5;    // Ponte H
int motor1Pin2 = 6;    // Ponte H
int motor2Pin1 = 10;   // Ponte H
int motor2Pin2 = 11;   // Ponte H
int led = 4; 
int receiver = A0

IRrecv irrecv(receiver); 
decode_results results; 

void setup(){ 
  
  // Definir os pinos outputs:
  pinMode(led, OUTPUT); 
  pinMode(motor1Pin1, OUTPUT); 
  pinMode(motor1Pin2, OUTPUT); 
  pinMode(motor2Pin1, OUTPUT); 
  pinMode(motor2Pin2, OUTPUT);
  irrecv.enableIRIn(); 
} 

void pisca(){ 
  digitalWrite(led, HIGH); 
  delay(50); 
  digitalWrite(led, LOW); 
} 

void loop(){ 
  
if (irrecv.decode(&results)){  
switch(results.value){ 
    
            //CONTROLE 
  
case FF629D:{ //   Mode => Ir para frete
  digitalWrite(motor1Pin1, HIGH); 
  digitalWrite(motor1Pin2, LOW);  
    
  digitalWrite(motor2Pin1, HIGH);   
  digitalWrite(motor2Pin2, LOW);
  break; 
} 
case FFA857:{ //   VOL- => Ir para traz
  digitalWrite(motor1Pin1, LOW); 
  digitalWrite(motor1Pin2, HIGH);  
    
  digitalWrite(motor2Pin1, LOW);   
  digitalWrite(motor2Pin2, HIGH);
  break; 
} 
case FF22DD:{ //  >// PAUSE => Gira para a esquerda
  digitalWrite(motor1Pin1, LOW); 
  digitalWrite(motor1Pin2, HIGH);  
  
  digitalWrite(motor2Pin1, HIGH);   
  digitalWrite(motor2Pin2, LOW); 
  break; 
} 
case 1FFC23D:{ //  >>/ Avançar   Girar para a direita
  digitalWrite(motor1Pin1, HIGH); 
  digitalWrite(motor1Pin2, LOW);  
    
  digitalWrite(motor2Pin1, LOW);   
  digitalWrite(motor2Pin2, HIGH);
  break; 
} 

case FF02FD:{ // /<< Voltar => LED
  digitalWrite(led, HIGH); 
  delay(50); 
  digitalWrite(led, LOW); 
}

Os valores dos botões do controle obtive através do exemplo IRrecvDump

Muito interessante...

E qual é exactamente o problema?

Troquei os codigos dos botoes obtendo-os atraves de um codigo passado pelo altor do topico de onde estou me baseando, mas o erro continua =( o novo codigo fica assim

#include <IRremote.h> 

int motor1Pin1 = 5;    // Ponte H
int motor1Pin2 = 6;    // Ponte H
int motor2Pin1 = 10;   // Ponte H
int motor2Pin2 = 11;   // Ponte H
int led = 4; 
int receiver = A0

IRrecv irrecv(receiver); 
decode_results results; 

void setup(){ 
  
  // Definir os pinos outputs:
  pinMode(led, OUTPUT); 
  pinMode(motor1Pin1, OUTPUT); 
  pinMode(motor1Pin2, OUTPUT); 
  pinMode(motor2Pin1, OUTPUT); 
  pinMode(motor2Pin2, OUTPUT);
  irrecv.enableIRIn(); 
} 

void pisca(){ 
  digitalWrite(led, HIGH); 
  delay(50); 
  digitalWrite(led, LOW); 
} 

void loop(){ 
  
if (irrecv.decode(&results)){  
switch(results.value){ 
    
            //CONTROLE 
  
case 16736925:{ //   Mode => Ir para frete
  digitalWrite(motor1Pin1, HIGH); 
  digitalWrite(motor1Pin2, LOW);  
    
  digitalWrite(motor2Pin1, HIGH);   
  digitalWrite(motor2Pin2, LOW);
  break; 
} 
case 16754775:{ //   VOL- => Ir para traz
  digitalWrite(motor1Pin1, LOW); 
  digitalWrite(motor1Pin2, HIGH);  
    
  digitalWrite(motor2Pin1, LOW);   
  digitalWrite(motor2Pin2, HIGH);
  break; 
} 
case 16720605:{ //  >// PAUSE => Gira para a esquerda
  digitalWrite(motor1Pin1, LOW); 
  digitalWrite(motor1Pin2, HIGH);  
  
  digitalWrite(motor2Pin1, HIGH);   
  digitalWrite(motor2Pin2, LOW); 
  break; 
} 
case 16761405:{ //  >>/ Avançar   Girar para a direita
  digitalWrite(motor1Pin1, HIGH); 
  digitalWrite(motor1Pin2, LOW);  
    
  digitalWrite(motor2Pin1, LOW);   
  digitalWrite(motor2Pin2, HIGH);
  break; 
} 

case 16712445:{ // /<< Voltar => LED
  digitalWrite(led, HIGH); 
  delay(50); 
  digitalWrite(led, LOW); 
}

Quando tento copilar o codigo apresenta o seguinte erro

Controle_IR:9: error: expected ',' or ';' before 'IRrecv'
Controle_IR.cpp: In function 'void setup()':
Controle_IR:20: error: 'irrecv' was not declared in this scope
Controle_IR.cpp: In function 'void loop()':
Controle_IR:31: error: 'irrecv' was not declared in this scope
Controle_IR:73: error: expected `}' at end of input
Controle_IR:73: error: expected `}' at end of input
Controle_IR:73: error: expected `}' at end of input

int receiver = A0

Aqui esta um erro falta te o ;
Deveras ter de corrigir para

int receiver = A0;

Depois no final faltam muitos "}" para fechares as funçoes !!
Outra coisa que reparei,eu nunca usei essa lib mas axo que a criaçao deste objecto nao estara bem

IRrecv irrecv(receiver);
decode_results results;

Bem estou baseando o codigo a partir deste de autoria do robi_gremista.

#include <IRremote.h> 
#include <Servo.h> 

Servo SERVO_X; 
Servo SERVO_GE; 
Servo SERVO_GD; 

int MOTOR_E = 5; 
int MOTOR_D = 6; 
int receiver = 3; 
int LUZ = 2; 
int led = 4; 

IRrecv irrecv(receiver); 
decode_results results; 

void setup(){ 
  pinMode(led, OUTPUT); 
  pinMode(MOTOR_E, OUTPUT); 
  pinMode(MOTOR_D, OUTPUT); 
  pinMode(LUZ, OUTPUT); 
  SERVO_X.attach(9); 
  SERVO_GE.attach(10); 
  SERVO_GD.attach(11); 
  SERVO_GE.write(5); 
  SERVO_GD.write(70); 
  SERVO_X.write(30); 
  Serial.begin(9600); 
  irrecv.enableIRIn(); 
} 

void pisca(){ 
  digitalWrite(led, HIGH); 
  delay(50); 
  digitalWrite(led, LOW); 
} 

void loop(){ 
  
if (irrecv.decode(&results)){  
switch(results.value){ 
    
            //CONTROLE 
  
case 1086259455:{ //      PLAY/PAUSE 
  analogWrite(MOTOR_E, 240); 
  analogWrite(MOTOR_D, 80); 
  Serial.println("IR - FRENTE"); 
  pisca(); 
  break; 
} 
case 1086292095:{ //      CHANEL - 
  analogWrite(MOTOR_E, 240); 
  Serial.println("IR - MOTOR ESQ. - FRENTE"); 
  pisca(); 
  break; 
} 
case 1086275775:{ //      CHANEL + 
  analogWrite(MOTOR_D, 80); 
  Serial.println("IR - MOTOR DIR. - FRENTE"); 
  pisca(); 
  break; 
} 
case 1086267615:{ //      EQUALIZADOR 
  analogWrite(MOTOR_E, 100); 
  analogWrite(MOTOR_D, 240); 
  Serial.println("IR - TRAS"); 
  pisca(); 
  break; 
} 
case 1086300255:{ //      VOLUME - 
  analogWrite(MOTOR_E, 100); 
  Serial.println("IR - MOTOR ESQ. - TRAS"); 
  pisca(); 
  break; 
} 
case 1086283935:{ //      VOUME + 
  analogWrite(MOTOR_D, 240); 
  Serial.println("IR - MOTOR DIR. - TRAS"); 
  pisca(); 
  break; 
} 
case 1086296175:{ //      PREVIOUS 
  analogWrite(MOTOR_D, 80); 
  analogWrite(MOTOR_E, 95); 
  Serial.println("IR - GIRO ANT. HORARIO"); 
  pisca(); 
  break; 
} 
case 1086279855:{ //      NEXT 
  analogWrite(MOTOR_D, 240); 
  analogWrite(MOTOR_E, 240); 
  Serial.println("IR - GIRO HORARIO"); 
  pisca(); 
  break; 
} 
case 1086263535:{ //      NUMERO 0 
  analogWrite(MOTOR_E, 0); 
  analogWrite(MOTOR_D, 0); 
  Serial.println("IR - PARADO"); 
  pisca(); 
  break; 
} 
case 1086271695:{ //      NUMERO 1 
  SERVO_X.write(90); 
  delay(5); 
  Serial.println("IR - LEVANTANDO A GARRA"); 
  pisca(); 
  break; 
} 
case 1086304335:{ //      NUMERO 2 
  SERVO_GE.write(65); 
  SERVO_GD.write(10); 
  delay(5); 
  Serial.println("IR - ABRINDO A GARRA"); 
  pisca(); 
  break; 
} 
case 1086288015:{ //      NUMERO 3 
  SERVO_GE.write(5); 
  SERVO_GD.write(70); 
  delay(5); 
  Serial.println("IR - FECHANDO A GARRA"); 
  pisca(); 
  break; 
} 
case 1086261495:{ //      NUMERO 4 
  SERVO_X.write(30); 
  delay(5); 
  Serial.println("IR - BAIXANDO A GARRA");  
  pisca(); 
  break; 
} 
case 1086294135:{ //      NUMERO 5 
  pisca(); 
  digitalWrite(LUZ, HIGH); 
  Serial.println("IR - LUZ - LIGADA"); 
  pisca(); 
  break; 
} 
case 1086277815:{ //      NUMERO 6 
  digitalWrite(LUZ, LOW); 
  Serial.println("IR - LUZ - DESLIGADA"); 
  pisca(); 
  break; 
} 

case 1086269655:{pisca();} //      NUMERO 7 
case 1086302295:{pisca();} //      NUMERO 8 
case 1086285975:{pisca();} //      NUMERO 9 
case 1086265575:{pisca();} //      PICK SONG 
case 1086281895:{pisca();} //      CHANEL SET 
} 
  delay(100); 
  irrecv.resume(); 
  } 
}

No codigo dele as funções IRrecv irrecv(receiver); decode_results results; copilam sem problema, mas no meu não =(
Sei que parece um tanto quanto preguiça da minha parte, mas se alguém pode se modificar o código para o jeito que tentei agradeceria muito, peço isso não por preguiça mas sim por esta ficando louco tentando descobri onde esta o erro :~