Bonjour,
Je débute dans le codage Arduino.
J'ai en ma possession un Arduino Uno, une télécommande Arduino, une Led RGB et un récepteur IR vs1838b.
J'arrive à contrôler les couleurs séparément
exemples bouton "power" pour éteindre la Led, bouton "1" pour l'allumer en bleu,...
Par contre en appuyant sur le bouton "function" j'aimerais qu'il fasse comme un chenillard de mes couleurs définies, mais en boucle jusqu'à ce que j'appuie sur le bouton "power" ou un autre bouton, or là cela n'effectue qu'une seule fois le balayage.
Pouvez vous m'aider?
voici le codage que j'ai effectué.
#include <IRremote.h>
#define IR_PIN 7
const int BLUELED = 9;
const int GREENLED = 5;
const int REDLED = 6;
int luminosity = 250;
String currentColor = "blue";
void setup() {
Serial.begin(9600);
IrReceiver.begin(IR_PIN, DISABLE_LED_FEEDBACK);
pinMode(BLUELED, OUTPUT);
pinMode(GREENLED, OUTPUT);
pinMode(REDLED, OUTPUT);
}
void setColor(String color) {
currentColor = color;
if (color == "blue") {
analogWrite(GREENLED, 0);
analogWrite(REDLED, 0);
analogWrite(BLUELED, luminosity);
}
else if (color == "green") {
analogWrite(BLUELED, 0);
analogWrite(REDLED, 0);
analogWrite(GREENLED, luminosity);
}
else if (color == "red") {
analogWrite(BLUELED, 0);
analogWrite(GREENLED, 0);
analogWrite(REDLED, luminosity);
}
else if (color == "purple") {
analogWrite(BLUELED, luminosity);
analogWrite(GREENLED, 0);
analogWrite(REDLED, luminosity);
}
else if (color == "cyan") {
analogWrite(BLUELED, luminosity);
analogWrite(GREENLED, luminosity);
analogWrite(REDLED, 0);
}
else if (color == "demo") {
setColor("red");
delay(500);
setColor("green");
delay(500);
setColor("blue");
delay(500);
setColor("cyan");
delay(500);
setColor("purple");
delay(500);
}
else {
analogWrite(BLUELED, 0);
analogWrite(GREENLED, 0);
analogWrite(REDLED, 0);
}
}
void loop() {
if (IrReceiver.decode()) {
const uint32_t trame = IrReceiver.decodedIRData.decodedRawData;
Serial.print("Trame = ");
Serial.println(trame, HEX);
IrReceiver.resume();
switch(trame) {
// Si le code bouton est 0xBA45FF00
case0xBA45FF00:
// C'est le bouton "power", on eteint les "LED".
setColor("");
break;
// Si le code bouton est 0xF30CFF00
case0xF30CFF00:
// C'est le bouton "1", on allume la "LED" en bleu.
setColor("blue");
break;
// Si le code bouton est 0xE718FF00
case0xE718FF00:
// C'est le bouton "2", on allume la "LED" en vert.
setColor("green");
break;
// Si le code bouton est 0xA15EFF00
case0xA15EFF00:
// C'est le bouton "3", on allume la "LED" en rouge.
setColor("red");
break;
// Si le code bouton est 0xF708FF00
case0xF708FF00:
// C'est le bouton "4", on allume la "LED" en violet.
setColor("purple");
break;
// Si le code bouton est 0xE31CFF00
case0xE31CFF00:
// C'est le bouton "5", on allume la "LED" en cyan.
setColor("cyan");
break;
// Si le code bouton est 0xB847FF00
case0xB847FF00:
// C'est le bouton "funcion", on allume la "LED" en chenillard de couleurs.
setColor("demo");
break;
}
}
}
Merci d'avance pour toutes aides. à terme l'idée sera de créer plusieurs jeux de lumières différents en utilisant des boutons différents de la télécommande, un peu comme sur une guirlande de noël