Problème compilation avec IRremote

Salut à tous !

Pour commencer, je tiens à prevenir, je suis débutant en la matière, avec seuls quelques programmes simples à mon actif.

Cette fois j'ai juste voulu tester le recepeteur IR.
J'ai donc installé la librairie qui correspond ( disponible ici : GitHub - Arduino-IRremote/Arduino-IRremote: Infrared remote library for Arduino: send and receive infrared signals with multiple protocols )
et fait un petit programme avec la liaison série. Ca donne :

#include <IRremote.h>

int broche_reception = 11; // broche 11 utilisée 
IRrecv reception_ir(broche_reception); // crée une instance 
decode_results decode_ir; // stockage données reçues

void setup() 
{ 
  Serial.begin(9600); 
  reception_ir.enableIRIn(); // démarre la réception 
}

void loop() 
{ 
  if (reception_ir.decode(&decode_ir)) 
  { 
    Serial.println(decode_ir.value, HEX); 
    reception_ir.resume(); // reçoit le prochain code 
  } 
}

Le seul souci (pour le moment..) vient au moment de la compilation : j'ai ce message d'erreur :

"C:\Program Files\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5: error: 'TKD2' was not declared in this scope "

Et la je m'interroge.. "\RobotIRremote" ça veut dire que le logiciel utilise la librairie (déjà installée) RobotIRremote ?

Si vous pouviez m'aidez à résoudre le problème (et eventuellement m'expliquer pourquoi ça déconne ^^ ) Ce serait vraiment cool :slight_smile:

Merci d'avance, Bapt

Salut,

Quand tu fais un #include l'IDE cherche et prend la première lib qui lui tombe sous la main, et il suffit que celle de RobotIRremote s'appelle pareil pour que ça plante. Parce que je viens d'étudier la lib : aucun appel à une autre librairie et aucune variable TKD2.

La solution : coupe et colle la lib RobotIRremote temporairement dans un autre dossier et essaye de recompiler

Ah super merci, je repost quand j'aurais eassyé, mais c'est surment ça ! :slight_smile:

Bapt

En même temps, la librairie RobotIRRemote c'est la librairie de Ken Shirriff.
Il faudrait peut être comparer les versions.

En fait ça marche très bien en mettant la librairie robotIRremote plus loin ! :smiley:

Par contre j'ai un un autre souci.. comme un idiot j'avais mal branché le recepteur IR : 5v à gauche ; out au milieu et GND à droite... M'en suis pas rendu compte et il au chauffé, me suis même brulé quand je l'ai débranché...

Et la il a pas l'air de vouloir fonctionner.. quelqu'un connais un autre moyen pour tester ? ou il est definitivement mort ? :confused:

Merci,
Bapt

Si tu t'es brûlé il est sans doute mort.

Le récepteur IR n'est pas protégé contre les erreurs d' inversions de polarité, ça lui est fatal.

Ah d'accord merci, je le saurai pour le prochain... =(

Il faut supprimer le fichier IRremoteTools.cpp et IRremoteTools.h de ton repertoire "C:\Program Files\Arduino\libraries\RobotIRremote\src".
Je n'ai plus l'erreur de mon coté depuis supression.

bonjour en enlevant la bibliothèque comme conseiller ci-dessus,
je tombe avec un message d'erreurs un peut différent:

In file included from C:\Users\Tanguy\AppData\Local\Temp\arduino_modified_sketch_347188\sketch_jan28b.ino:4:0:

C:\Users\Tanguy\Documents\Arduino\libraries\Arduino-IRremote-master/ir_Lego_PF_BitStreamEncoder.h: In member function 'int LegoPfBitStreamEncoder::getRepeatStopPause() const':

C:\Users\Tanguy\Documents\Arduino\libraries\Arduino-IRremote-master/ir_Lego_PF_BitStreamEncoder.h:107:38: warning: integer overflow in expression [-Woverflow]

return STOP_PAUSE_DURATION + 5 * MAX_MESSAGE_LENGTH - messageLength;

^

In file included from C:\Users\Tanguy\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF.cpp:3:0:

C:\Users\Tanguy\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h: In member function 'int LegoPfBitStreamEncoder::getRepeatStopPause() const':

C:\Users\Tanguy\Documents\Arduino\libraries\Arduino-IRremote-master\ir_Lego_PF_BitStreamEncoder.h:107:38: warning: integer overflow in expression [-Woverflow]

return STOP_PAUSE_DURATION + 5 * MAX_MESSAGE_LENGTH - messageLength;

que faire?

salut les amis je suis tout noob dans la programmation jai un prbleme de compilation voila mon code
je ne peux pas faire d'eereur cest un exemple fournis avec l'ide

#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>

void setup() {
Serial.begin(9600);
while (!Serial) ; // wait for serial
delay(200);
Serial.println("DS1307RTC Read Test");
Serial.println("-------------------");
float (t=time);
}

void loop() {

if (RTC.read(t)) {
Serial.print("Ok, Time = ");
print2digits(tm.Hour);
Serial.write(':');
print2digits(tm.Minute);
Serial.write(':');
print2digits(tm.Second);
Serial.print(", Date (D/M/Y) = ");
Serial.print(tm.Day);
Serial.write('/');
Serial.print(tm.Month);
Serial.write('/');
Serial.print(tmYearToCalendar(tm.Year));
Serial.println();
} else {
if (RTC.chipPresent()) {
Serial.println("The DS1307 is stopped. Please run the SetTime");
Serial.println("example to initialize the time and begin running.");
Serial.println();
} else {
Serial.println("DS1307 read error! Please check the circuitry.");
Serial.println();
}
delay(9000);
}
delay(1000);
}

void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}

le probleme c'est que ca medis sans arret not declared in this cope !
pouvez vous m'aider svp mais vraimenta avec un vocabulaire pour les nuls svp