Bonjour, je suis nouveau sur l'Arduino mais avec quelques bases. J'aimerai faire clignoter une led, piloté par une télécommande, qui est déjà dans la boucle de la télécommande. Mon message n'est peut être pas clair, mais voici le code que j'ai pour l'instant et qui ne permet que d'allumer les leds fixe correctement (montage de feux SNCF):
Si vous pouvez me trouver une solution, je vous en remercierait beaucoupCode:#include <IRremote.h> const char DIN_RECEPTEUR_INFRAROUGE = 2; IRrecv monRecepteurInfraRouge (DIN_RECEPTEUR_INFRAROUGE); decode_results messageRecu; int rouge_1 = 3; int vert = 4; int rouge_2 = 5; int jaune_1 = 6; int blanc = 7; int jaune_2_et_3 = 8; int jaune_4 = 9; int jaune_5 = 10; int clignotement = 0; void setup() { Serial.begin(9600); monRecepteurInfraRouge.enableIRIn(); monRecepteurInfraRouge.blink13(true); pinMode(rouge_1, OUTPUT); pinMode(rouge_2, OUTPUT); pinMode(jaune_1, OUTPUT); pinMode(vert, OUTPUT); pinMode(blanc, OUTPUT); pinMode(jaune_2_et_3, OUTPUT); pinMode(jaune_4, OUTPUT); pinMode(jaune_5, OUTPUT); digitalWrite(rouge_1, HIGH); digitalWrite(rouge_2, HIGH); } void loop() { if (monRecepteurInfraRouge.decode(&messageRecu)) { if (messageRecu.value == 0xFFA25D) { Serial.println("Carré mis en place"); digitalWrite(rouge_1, HIGH); digitalWrite(rouge_2, HIGH); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF629D) { Serial.println("Sémaphore mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, HIGH); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFFE21D) { Serial.println("Rouge clignotant mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); digitalWrite(rouge_2, HIGH); delay(500); digitalWrite(rouge_2, LOW); delay(500); } if (messageRecu.value == 0xFF22DD) Serial.println("Non trouvé"); if (messageRecu.value == 0xFF02FD) Serial.println("Non trouvé"); if (messageRecu.value == 0xFFC23D) Serial.println("Non trouvé"); if (messageRecu.value == 0xFFE01F) Serial.println("Non trouvé"); if (messageRecu.value == 0xFFA857) Serial.println("Non trouvé"); if (messageRecu.value == 0xFF906F) Serial.println("Non trouvé)"); if (messageRecu.value == 0xFF6897) { Serial.println("Voie libre mise en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, HIGH); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF9867) Serial.println("Non trouvé"); if (messageRecu.value == 0xFFB04F) Serial.println("Non trouvé"); if (messageRecu.value == 0xFF30CF) { Serial.println("Fin de préanonce mis en place, retour à 160 km/h"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, HIGH); delay(500); digitalWrite(vert, LOW); delay(500); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF18E7) { Serial.println("Avertissement mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, HIGH); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF7A85) { Serial.println("Avertissement clignotant mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, HIGH); delay(500); digitalWrite(jaune_1, LOW); delay(500); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF10EF) { Serial.println("Blanc de manoeuvre mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, HIGH); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF38C7) { Serial.println("Blanc de manoeuvre clignotant mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, HIGH); delay(500); digitalWrite(blanc, LOW); delay(500); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF5AA5) { Serial.println("Ralentissement à 30 km/h mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, HIGH); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); } if (messageRecu.value == 0xFF42BD) { Serial.println("Rappel de ralentissement à 30 km/h mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, HIGH); digitalWrite(jaune_5, HIGH); } if (messageRecu.value == 0xFF4AB5) { Serial.println("Ralentissement à 60 km/h mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); digitalWrite(jaune_2_et_3, HIGH); delay(500); digitalWrite(jaune_2_et_3, LOW); delay(500); } if (messageRecu.value == 0xFF52AD) { Serial.println("Rappel de ralentissement à 60 km/h mis en place"); digitalWrite(rouge_1, LOW); digitalWrite(rouge_2, LOW); digitalWrite(vert, LOW); digitalWrite(jaune_1, LOW); digitalWrite(blanc, LOW); digitalWrite(jaune_2_et_3, LOW); digitalWrite(jaune_4, HIGH); digitalWrite(jaune_5, HIGH); delay(500); digitalWrite(jaune_4, LOW); digitalWrite(jaune_5, LOW); delay(500); } delay(500); monRecepteurInfraRouge.resume(); } delay(1000); }
-----