Bonjour je poste ce message dans le but de trouver réponse à mes questions par rapport a mon projet de stage en cours ( je suis encore amateur). Mon objectif sur cette carte arduino est de piloter une bande led adressable avec 4 boutons ON/OFF, le but étant de pouvoir changer la couleur de la bande via un changement d'état d'un bouton peu importe lequel. J'ai pour l'instant un début de code mais rien d'utilisable car les couleurs se mélangent au lieu de changer une par une, c'est donc pourquoi je cherche le moyen de rendre le dernier appuie de bouton prioritaire sur les autres et changer la bande de couleurs en fonction du dernier bouton ON/OFF utilisé en rappelant bien que peu importe le changement d'état du bouton (ON ou OFF) la couleur de la bande dois changer. J'ai utiliser la librairie adafruit_neopixel pour ce projet.
mise en forme par la modération pour cette fois.. Merci de lire "Les bonnes pratiques du Forum Francophone”
#include <Adafruit_NeoPixel.h>
int bouton1=9;
int bouton2=10;
int bouton3=11;
int bouton4=12;
int bouton5=13;
int etat0=0;
int etat1=0;
int etat2=0;
int etat3=0;
int etat4=0;
int etat5=0;
#define PIXEL_COUNT 7
#define PIXEL_PIN 3
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pinMode(bouton1,INPUT_PULLUP);
pinMode(bouton2,INPUT_PULLUP);
strip.begin(); // Lance la connection
strip.show(); // Initialise toute les led à 'off'
strip.setBrightness(100);
}
/* Définition des couleurs */
int RED[3] = {255, 0, 0}; // Couleur Rouge
int GREEN[3] = {0, 255, 0}; // Couleur Verte
int CYAN[3] = {0, 255, 255}; // Couleur Cyan
int YELLOW[3] = {255, 125, 0}; // Couleur Jaune
int ORANGE[3] = {255, 40, 0}; // Couleur Orange
int PURPLE[3] = {255, 0 , 255}; // Couleur Violette
int PINK[3] = {255, 0, 100}; // Couleur Rose
int BLUE[3] = {0, 0, 255}; // Couleur Bleu
int WHITE[3] = {255, 255, 255}; // Couleur Blanche
int OFF[3] = {0, 0, 0}; // Éteint
void allLeds(int COLOR[])
{
for(int i = 0 ; i < PIXEL_COUNT ; i++)
{
strip.setPixelColor(i, COLOR[0], COLOR[1], COLOR[2]);
}
strip.show();
}
void loop() {
etat1 = digitalRead(bouton1);
if (etat1 == HIGH ||etat1 == LOW ) {
allLeds(RED);
}
etat2 = digitalRead(bouton2);
if (etat2 == HIGH || etat2 == LOW) {
allLeds(GREEN);
}
}