merci de ta réponse, j'essaye de le mettre en oeuvre mais je n'arrive pas à définir "oldvalues" au début du code.
je poste ce début de code qui n’exécute qu'une fois le clignotement en fonction de chaque boutons pressés et non un clignotement en boucle :
- Code: Tout sélectionner
#include <IRremote.h>
#define RECV_PIN 11
#define LEDPIN 6
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
pinMode(LEDPIN, OUTPUT);
irrecv.enableIRIn(); // Start receiver
Serial.begin(9600);
}
void loop() {
// If IR message is received
if (irrecv.decode(&results)) {
if (results.value == 0x4FB02FD) {
Serial.println("OFF");
digitalWrite(LEDPIN, LOW);
}
else if (results.value == 0x4FB906F) {
Serial.println("1");
digitalWrite(LEDPIN, HIGH);
delay(15);
digitalWrite(LEDPIN, LOW);
delay(200);
}
else if (results.value == 0x4FB32CD) {
Serial.println("2");
digitalWrite(LEDPIN, HIGH);
delay(15);
digitalWrite(LEDPIN, LOW);
delay(2000);
}
else if (results.value == 0x4FB20DF) {
Serial.println("3");
digitalWrite(LEDPIN, HIGH);
delay(15);
digitalWrite(LEDPIN, LOW);
delay(20000);
}
else {
Serial.print("unexpected value: ");
Serial.println(results.value, HEX);
}
irrecv.resume(); // Resume (needed)
}
}
j'ai aussi essayé avec switch/case sans résultat plus probant, dans un autre registre, j'ai trouvé un code qui fait clignoter en continue la led mais une fois lancé, le programme ne sort plus de la boucle en pressant une autre touche.
J'ai l'impression qu'il ne faut pas utiliser la fonction delay() pour pouvoir sortir de la boucle mais je ne voit vraiment pas comment faire.
sinon je crois qu'un génie à posté ce code :
http://arduino.cc/forum/index.php?topic=118842.0;wap2qui fonctionnerait peut être pour ce que je veux faire mais je ne comprend pas comment il a calculer la durée des pulses.
Si un connaisseur a le temps
merci d'avance