#include <FastLED.h>
#define NUM_STRIPS 1 // nombre de bandeaux
#define NUM_LEDS_PER_STRIP 16 // nombre de LEDs par bandeau
#define LED_TYPE NEOPIXEL
struct CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP]; // initialise le tablelau (array) de LEDs
uint8_t hue = 0;
void setup() {
delay(1000); // délai de 1s en cas de pic de tension au démarrage (protège LEDs)
// ensuite, on déclare les bandeaux sur les PINs correspondants, chaque bandeau étant de type "leds" déclaré précedemment.
FastLED.addLeds<LED_TYPE, 10>(leds[0], NUM_LEDS_PER_STRIP);
FastLED.addLeds<LED_TYPE, 8>(leds[1], NUM_LEDS_PER_STRIP);
FastLED.setBrightness(255); // on définit la luminosité
}
void loop() {
int ledPivot = 0;
unsigned int ledPrev, ledNext, ledPrevPrev, ledNextNext;
while(1) {
ledPivot ++;
if (ledPivot >= NUM_LEDS_PER_STRIP - 1) ledPivot = 0;
if (ledPivot == 0)
ledPrev = NUM_LEDS_PER_STRIP - 1;
else
ledPrev = ledPivot - 1;
if (ledPivot >= NUM_LEDS_PER_STRIP - 1)
ledNext = 0;
else
ledNext = ledPivot + 1;
if (ledPrev == 0)
ledPrevPrev = NUM_LEDS_PER_STRIP - 1;
else
ledPrevPrev = ledPrev - 1;
if (ledNext >= NUM_LEDS_PER_STRIP - 1)
ledNextNext = 0;
else
ledNextNext = ledNext + 1;
leds[0][ledPrevPrev] = CRGB::CRGB::Black;
leds[0][ledPrev] = CRGB::Red;
leds[0][ledPivot] = CRGB::CRGB::Green;
leds[0][ledNext] = CRGB::CRGB::Blue;
leds[0][ledNextNext] = CRGB::CRGB::Black;
leds[1][ledPrevPrev] = CRGB::CRGB::Black;
leds[1][ledPrev] = CRGB::Yellow;
leds[1][ledPivot] = CRGB::Yellow;
leds[1][ledNext] = CRGB::Yellow;
leds[1][ledNextNext] = CRGB::CRGB::Black;
FastLED.show();
delay(500);
}
}