Bonjour à tous,
J'ai un problème, en apparence simple, mais dont la résolution est moins simple (de mon point de vue).
Avec une télécommande IR je contrôle une Strip LEDs.
Ce que c'est censé faire:
J'appuie sur 0, toutes les leds s’éteignent les unes après les autres.
J'appuie sur 1, les leds s'allument en bleu les unes après les autres.
J'appuie sur 2, les leds s'allument en vert les unes après les autres.
J'appuie sur 3, les leds s'allument en rouge les unes après les autres.
Ce que ça fait:
J'appuie sur 1, les leds s'allument bien les unes après les autres.
J'appuie sur 0, 2 ou 3, les leds s’éteignent les unes après les autres.
J'ai essayé d'autre programmes, la strip fonctionne bien, j'ai essayé d'autre façons de faire dans mon programme, mais rien ne change.
Je pense que le problème peut venir de la ligne " switch (codeIR.value)" car je ne sais pas à quoi correspond ce ".value" mais je peux me tromper.
Voila mon code:
(certaines partie du code ne sont pas encore utilisé tel que le lcd ou le tableau)
Merci de votre aide!Code:#include <Adafruit_NeoPixel.h> #include <LiquidCrystal.h> #include <IRremote.h> #define stripPin 10 //Commande Strip #define NBPIXELS 60 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NBPIXELS, stripPin, NEO_GRB + NEO_KHZ800); LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //Déclaration du Menu const int numMenu = 5; int menuCourant = 0; String menu[numMenu][2] = {{"Cadre Infini", "v0.0"}, {"Coul Constante", "%"}, {"RainB General", "%"}, {"RainB Avance", "%"}, {"Scintillement", "%"}}; int parametres[numMenu]; //Déclaration IR int receiver = 11; //Réception IR IRrecv irDecode(receiver); decode_results codeIR; //Constante de couleur byte V = 0; byte R = 0; byte B = 0; void setup() { irDecode.enableIRIn(); strip.begin(); strip.show(); } void loop() { if (irDecode.decode(&codeIR)) { switch (codeIR.value) { case 0xFF6897: // 0 coulPredef(0); allumage(); break; case 0xFF30CF: // 1 coulPredef(1); allumage(); break; case 0xFF18E7: // 2 coulPredef(2); allumage(); break; case 0xFF7A85: // 3 coulPredef(3); allumage(); break; } irDecode.resume(); // receive the next value } } void coulPredef(int key) { if (key == 0) { V = 0; R = 0; B = 0; } else if (key == 1) { V = 0; R = 0; B = 255; } else if (key == 2) { V = 0; R = 255; B = 0; } else if (key == 3) { V = 255; R = 0; B = 0; } } void allumage() { for (int i = 0; i < strip.numPixels(); i++) { strip.setPixelColor(i, (V, R, B)); strip.show(); delay(10); } }
-----