RECV_PIN previously defined here

Hello
im using this program but it gives me an error

#include <IRremote.h>
#include <IRremoteInt.h>

//carica libreria IR 
int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);//imposta il pin di ricezione dei dati
decode_results results;
unsigned long code; // memorizza il codice ricevuto

//ai codici ricevuti aggiungere 0x + codice
#define UP      0x11//comando marcia avanti
#define KEY_UP    0xE246AFCA  //codice del tasto freccia su
#define DOWN  0x22 //comando marcia indietro
#define KEY_DOWN  0x3AFB26D4  //codice del tasto freccia giu
#define LEFT 0x33 //comando gira a sinistra
#define KEY_SX 0x4D43596A //codice del tasto freccia sinistra
#define RIGHT 0x44 //comando gira a destra
#define KEY_DX 0xBB0EDD22 //codice del tasto freccia destra
#define STOP 0x55 //Comando stop
#define KEY_STOP 0xB520CEC //codice del tasto STOP

//variabili usate dal sonar
#define ECHO 12 //arduino pin D12 -SRF04 pin 4
#define TRIG 11 //arduino pin D11-SRF04 pin 3
unsigned long echo_time = 0;//tempo di ritorno dell echo sonar in us
#define DISTANCE_CM echo_time / 48  //calcola la distanza in cm
unsigned long go_sonar = 0; //timer per accensione a tempo 
boolean obstacle = 0 ; // memorizza se è stato avvicinato un ostacolo
unsigned long max_distance = 30 ; // distanza massima a cui può avvicinarsi il robot

//variabili usate dai motori 
#define PIN_PWMA 5 //arduino pin D3 PWM motore A
#define PIN_DIRA 2 //arduino pin D2 comando direzione motore A
#define PIN_PWMB 9 //arduino pin D3 PWM motore B
#define PIN_DIRB 8 //arduino pin D2 comando direzione motore B
int velo_A = 0 ; // imposta velocità motore A
int velo_B = 0; //imposta velocità motore B
int dir_A = LOW ; // imposta la direzione del motore A
int dir_B= LOW ; // imposta la direzione motore B

void setup() {
  // put your setup code here, to run once:
  irrecv.enableIRIn();//attiva il ricevitore 
  pinMode(ECHO, INPUT); //arduino attiva ingresso
  pinMode (TRIG, OUTPUT); //arduino attiva uscita
  pinMode (13, OUTPUT); // arduino attiva uscita pin D13 led L
  pinMode (PIN_PWMA, OUTPUT); //arduino attiva uscita motore A
  pinMode (PIN_PWMB, OUTPUT); //arduino attiva uscita motore B
  pinMode (PIN_DIRA, OUTPUT); //arduino attiva uscita direzione A
  pinMode (PIN_DIRB, OUTPUT); //arduino attivs uscita direzione B
  Serial.begin(9600); // attiva la comunicazione seriale-USB
}

void loop() {
  // put your main code here, to run repeatedly:
  //ricevi i segnali dal telecomando 
  if (irrecv.decode(&results)) { //è stato ricevuto un comando
    digitalWrite(13,HIGH);// accende il led L di arduino
    if (results.value== KEY_UP) code = UP; //se premuto freccia SU
    if(results.value== KEY_DOWN) code = DOWN; //se premuto freccia GIU
    if(results.value== KEY_SX) code = LEFT;//se premuto freccia SINISTRA
    if(results.value== KEY_DX) code = RIGHT;//se premuto freccia DESTRA  
    if(results.value== KEY_STOP) code = STOP;// se premuto tasto STOP
    Serial.print(results.value, HEX);//invia alla seriale -USB il codice ricevuto
    Serial.print("   "); // invia 3 spazi
    Serial.println(code,HEX); // invia alla seriale-USB il tasto premuto
    irrecv.resume();// riceve il prossimo codice
    delay (5); //aspetta 5 ms
    digitalWrite (13,LOW); // spegne il led L di arduino
  }

  // misura la distanza con il sonar 
  delay(1); //conta fino ad 1ms
  if(go_sonar++ >= 250) {//attiva il sonar ogni 250 cicli del loop
    digitalWrite(TRIG, HIGH);//attiva l emissione sonar
    delayMicroseconds(10); //aspetta 10 us
    digitalWrite(TRIG, LOW);//termina l emissione sonar
    echo_time =pulseIn(ECHO, HIGH);//misura la durata dell echo
    if(DISTANCE_CM <= max_distance) obstacle = 1; //si è troppo vicini all ostacolo
    else obstacle = 0; //non si è in presenza di ostacoli
    if(obstacle) Serial.print("obstacle "); //scrivi in presenza di un ostacolo
    Serial.print("  distance  ");
    Serial.println(DISTANCE_CM); //stampa la distanza in centimetri
    go_sonar = 0; // azzera il timer
  }

  //comanda i motori
  if(!obstacle) {//se non ci sono ostacoli muove il robot
    //se DIR_A= LOW allora led A verde// se DIR_B =HIGH allora led B rosso
    if(code == UP) { 
      velo_A = 250; 
      velo_B = 250; 
      dir_A =LOW; 
      dir_B =HIGH;
    }

    else if(code == DOWN) {
      velo_A = 250; 
      velo_B = 250; 
      dir_A =HIGH; 
      dir_B =LOW;
    }
    else if(code == LEFT) {
      velo_A = 250; 
      velo_B = 250; 
      dir_A =HIGH; 
      dir_B =HIGH;
    }
    else if(code == RIGHT) {
      velo_A = 250; 
      velo_B = 125; 
      dir_A =LOW; 
      dir_B =LOW;
    }
    else if(code == STOP) {
      velo_A = 0; 
      velo_B = 0; 
      dir_A =LOW; 
      dir_B =LOW;
    }
  }
  //altrimenti ferma il robot finche è presente l ostacolo
  else { 
    velo_A = 0; 
    velo_B = 0; 
    dir_A = LOW; 
    dir_B = LOW;
  }
  analogWrite(PIN_PWMA, velo_A);//imposta la velocità del motore A
  analogWrite(PIN_PWMB, velo_B);//imposta la velocità del motore B
  digitalWrite(PIN_DIRA, dir_A);//imposta la direzione del motore A
  digitalWrite(PIN_DIRB, dir_B); //imposta la direzione del motore B
}
robot:54: error: 'void loop()' previously defined here

 void loop() {

      ^

Using library IRremote at version 2.0.1 in folder: C:\Users\Utente\Documents\Arduino\libraries\IRremote 
exit status 1
'int RECV_PIN' previously defined here

Hi,

What model arduino controller are you using?
What version IDE are you using?

Thanks . Tom... :slight_smile:

hi
arduino uno and IDE 1.6.9

The problem is not with the code. It compiles fine for me, (UNO, IDE V1.6.5).

Please post the full error message. You might need to enable 'verbose' output in 'Preferences'.
(Just the (orange) errors please, and not the other (white) compiler output.)

C:\Users\Utente\Desktop\robot\robot - Copia.ino:3:5: error: redefinition of 'int RECV_PIN'

 int RECV_PIN = 10;//arduino pin D10 collegato a IR OUT

     ^

robot:5: error: 'int RECV_PIN' previously defined here

 int RECV_PIN = 10;

     ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:4:24: error: redefinition of 'IRrecv irrecv'

 IRrecv irrecv (RECV_PIN);//imposta il pin di ricezione dei dati

                        ^

robot:6: error: 'IRrecv irrecv' previously declared here

 IRrecv irrecv(RECV_PIN);//imposta il pin di ricezione dei dati

        ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:5:16: error: redefinition of 'decode_results results'

 decode_results results;

                ^

robot:7: error: 'decode_results results' previously declared here

 decode_results results;

                ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:6:15: error: redefinition of 'long unsigned int code'

 unsigned long code; // memorizza il codice ricevuto

               ^

robot:8: error: 'long unsigned int code' previously declared here

 unsigned long code; // memorizza il codice ricevuto

               ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:23:15: error: redefinition of 'long unsigned int echo_time'

 unsigned long echo_time = 0;//tempo di ritorno dell echo sonar in us

               ^

robot:25: error: 'long unsigned int echo_time' previously defined here

 unsigned long echo_time = 0;//tempo di ritorno dell echo sonar in us

               ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:25:15: error: redefinition of 'long unsigned int go_sonar'

 unsigned long go_sonar = 0; //timer per accensione a tempo 

               ^

robot:27: error: 'long unsigned int go_sonar' previously defined here

 unsigned long go_sonar = 0; //timer per accensione a tempo 

               ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:26:9: error: redefinition of 'boolean obstacle'

 boolean obstacle = 0 ; // memorizza se è stato avvicinato un ostacolo

         ^

robot:28: error: 'boolean obstacle' previously defined here

 boolean obstacle = 0 ; // memorizza se è stato avvicinato un ostacolo

         ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:27:15: error: redefinition of 'long unsigned int max_distance'

 unsigned long max_distance = 30 ; // distanza massima a cui può avvicinarsi il robot

               ^

robot:29: error: 'long unsigned int max_distance' previously defined here

 unsigned long max_distance = 30 ; // distanza massima a cui può avvicinarsi il robot

               ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:34:5: error: redefinition of 'int velo_A'

 int velo_A = 0 ; // imposta velocità motore A

     ^

robot:36: error: 'int velo_A' previously defined here

 int velo_A = 0 ; // imposta velocità motore A

     ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:35:5: error: redefinition of 'int velo_B'

 int velo_B = 0; //imposta velocità motore B

     ^

robot:37: error: 'int velo_B' previously defined here

 int velo_B = 0; //imposta velocità motore B

     ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:36:5: error: redefinition of 'int dir_A'

 int dir_A = LOW ; // imposta la direzione del motore A

     ^

robot:38: error: 'int dir_A' previously defined here

 int dir_A = LOW ; // imposta la direzione del motore A

     ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino:37:5: error: redefinition of 'int dir_B'

 int dir_B= LOW ; // imposta la direzione motore B

     ^

robot:39: error: 'int dir_B' previously defined here

 int dir_B= LOW ; // imposta la direzione motore B

     ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino: In function 'void setup()':

C:\Users\Utente\Desktop\robot\robot - Copia.ino:39:6: error: redefinition of 'void setup()'

 void setup() {

      ^

robot:41: error: 'void setup()' previously defined here

 void setup() {

      ^

C:\Users\Utente\Desktop\robot\robot - Copia.ino: In function 'void loop()':

C:\Users\Utente\Desktop\robot\robot - Copia.ino:52:6: error: redefinition of 'void loop()'

 void loop() {

      ^

robot:54: error: 'void loop()' previously defined here

 void loop() {

      ^

Using library IRremote at version 2.0.1 in folder: C:\Users\Utente\Documents\Arduino\libraries\IRremote 
exit status 1
'int RECV_PIN' previously defined here

thats what is written in orange

The errors seem to indicate that you have more than one copy of the sketch in the sketch folder.

Ensure that you have nothing else in the sketch folder except the file you're compiling. If you have a second *.ino file with the same definitions, that would account for your problem.

ah prob i got it
i did a copy of the program and putted it in the same folder

thx man

giamas:
ah prob i got it
i did a copy of the program and putted it in the same folder

thx man

I thought that was the case. Glad I could help. :slight_smile: