Bonjour,
J'ai fait il y a quelque temps un kit led avec arduino uno pour ma voiture rc.
j'ai une touche de télécommande pour allumer/éteindre une rampe led sur le toit et 5 autre touche pour allumer de différente couleurs les phares
je voudrais ajouter une touche pour faire clignoter la rampe
j'ai ajouter a mon script la touche 7 pour faire clignoter les led de la rampe mais une fois lancé impossible d'arrêter la rampe
je pense que je n'utilise pas la bonne fonction
#include <IRremote.h>
int RECV_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
/* Broches */
const byte PIN_LED_R1 = 3;
const byte PIN_LED_G1 = 5;
const byte PIN_LED_B1 = 6;
const byte PIN_LED_R2 = 9;
const byte PIN_LED_G2 = 10;
const byte PIN_LED_B2 = 11;
const byte PIN_LED_W1 = 2;
const byte PIN_LED_W2 = 4;
const byte PIN_LED_W3 = 7;
const byte PIN_LED_W4 = 8;
// Fonction setup(), appelée au démarrage de la carte Arduino
void setup() {
// Initialise les broches
pinMode(PIN_LED_R1, OUTPUT);
pinMode(PIN_LED_G1, OUTPUT);
pinMode(PIN_LED_B1, OUTPUT);
pinMode(PIN_LED_R2, OUTPUT);
pinMode(PIN_LED_G2, OUTPUT);
pinMode(PIN_LED_B2, OUTPUT);
pinMode(PIN_LED_W1, OUTPUT);
pinMode(PIN_LED_W2, OUTPUT);
pinMode(PIN_LED_W3, OUTPUT);
pinMode(PIN_LED_W4, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // allumer récepteur IR
}
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX); // affiche la valeur de la touche actionnée en hexadécimal
switch(results.value)
{
case 0xFFA25D:digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));
digitalWrite(PIN_LED_W2, !digitalRead(PIN_LED_W2));
digitalWrite(PIN_LED_W3, !digitalRead(PIN_LED_W3));
digitalWrite(PIN_LED_W4, !digitalRead(PIN_LED_W4)); //touche 1 télécommande pour rampe led
break;
case 0xFF629D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 2 télécommande pour phare white
break;
case 0xFFE21D:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
digitalWrite(PIN_LED_B1, LOW);
digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
digitalWrite(PIN_LED_B2, LOW); //touche 3 télécommande pour phare yellow
break;
case 0xFF22DD:digitalWrite(PIN_LED_R1, !digitalRead(PIN_LED_R1));
digitalWrite(PIN_LED_G1, LOW);
digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
digitalWrite(PIN_LED_R2, !digitalRead(PIN_LED_R2));
digitalWrite(PIN_LED_G2, LOW);
digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 4 télécommande pour phare magenta
break;
case 0xFF02FD:digitalWrite(PIN_LED_R1, LOW);
digitalWrite(PIN_LED_G1, LOW);
digitalWrite(PIN_LED_B1, !digitalRead(PIN_LED_B1));
digitalWrite(PIN_LED_R2, LOW);
digitalWrite(PIN_LED_G2, LOW);
digitalWrite(PIN_LED_B2, !digitalRead(PIN_LED_B2)); //touche 5 télécommande pour phare blue
break;
case 0xFFC23D:digitalWrite(PIN_LED_R1, LOW);
digitalWrite(PIN_LED_G1, !digitalRead(PIN_LED_G1));
digitalWrite(PIN_LED_B1, LOW);
digitalWrite(PIN_LED_R2, LOW);
digitalWrite(PIN_LED_G2, !digitalRead(PIN_LED_G2));
digitalWrite(PIN_LED_B2, LOW); //touche 6 télécommande pour phare green
break;
case 0xFF9867:digitalWrite(PIN_LED_W3, LOW);
digitalWrite(PIN_LED_W4, LOW);
digitalWrite(PIN_LED_W1, LOW);
digitalWrite(PIN_LED_W2, LOW);
digitalWrite(PIN_LED_R1, LOW);
digitalWrite(PIN_LED_G1, LOW);
digitalWrite(PIN_LED_B1, LOW);
digitalWrite(PIN_LED_R2, LOW);
digitalWrite(PIN_LED_G2, LOW);
digitalWrite(PIN_LED_B2, LOW); //touche 0 télécommande pour tout éteindre
break;
case 0xFFE01F:digitalWrite(PIN_LED_W1, !digitalRead(PIN_LED_W1));
digitalWrite(PIN_LED_W2, !digitalRead(PIN_LED_W2));
digitalWrite(PIN_LED_W3, LOW);
digitalWrite(PIN_LED_W4, LOW);
delay(100);
digitalWrite(PIN_LED_W1, LOW);
digitalWrite(PIN_LED_W2, LOW);
digitalWrite(PIN_LED_W3, !digitalRead(PIN_LED_W3));
digitalWrite(PIN_LED_W4, !digitalRead(PIN_LED_W4)); //touche 7 télécommande pour rampe led clignotante
return;
}
irrecv.resume(); // Recoit la prochaine valeur
}
}