#include <Adafruit_NeoPixel.h>
// Définir le nombre de LED et le pin de données
#define LED_PIN 6
#define NUM_LEDS 16
#define BTN_PIN 2
// Initialiser le ruban LED
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
long colors[3];
uint16_t nbColor = 0;
bool uneFois = false;
void setup() {
pinMode(BTN_PIN, INPUT_PULLUP);
// Initialiser le strip
strip.begin();
strip.show(); // Initialiser toutes les LED à 'off'
colors[0] = strip.Color(0, 0, 255);
colors[1] = strip.Color(0, 255, 0);
colors[2] = strip.Color(225, 0, 0);
}
void loop() {
if (digitalRead(BTN_PIN) == LOW) {
uneFois = false;
nbColor ++;
if (nbColor >= 3) nbColor = 0;
delay(30);//pause pour éviter des rebonds du bouton
while(digitalRead(BTN_PIN) == LOW) {
//on ne fait rien d'autre que d'attendre le relanchement du bouton
}
}
if (!uneFois) {
// Allumer les LED une par une avec un délai de 15 ms
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, colors[nbColor]); // Allumer chaque LED en cyan
strip.show();
delay(15);
uneFois = true;
}
}
// Clignoter toutes les LED très rapidement
ledClignotement(125, colors[nbColor], strip.Color(0, 0, 0));
}
void ledClignotement(int pause, long color1, long color2) {
strip.fill(color1); // Etindre
strip.show();
delay(pause);
strip.fill(color2); // On rétabli la couleur
strip.show();
delay(pause);
}