#include <FastLED.h>
#define NUM_LEDS 8 // Nombre de LEDs dans la bande
#define DATA_PIN 6 // Broche de données pour les LEDs WS2812
#define POT_PIN A0 // Broche du potentiomètre
#define MAX_BRIGHTNESS 200 // Luminosité maximale
CRGB leds[NUM_LEDS];
int brightness = 0; // Luminosité actuelle de l'effet
int fadeAmount = 15; // Incrémentation de luminosité pour l'effet de fondu
void setup() {
FastLED.addLeds<WS2812, DATA_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(MAX_BRIGHTNESS);
}
void loop() {
// Lecture de la valeur du potentiomètre et mapping sur les LEDs
int potValue = analogRead(POT_PIN);
int currentLED = map(potValue, 0, 1023, 0, NUM_LEDS - 1); // Mappe la position du potentiomètre aux LEDs
// Éteint toutes les LEDs
for (int i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB::Black;
}
// Allume la LED sélectionnée par le potentiomètre avec une luminosité variable
leds[currentLED] = CRGB(brightness, 0, 0); // Rouge avec luminosité variable
FastLED.show();
delay(30); // Délai pour lisser l'animation
// Ajuste la luminosité pour créer un effet de fondu
brightness += fadeAmount;
if (brightness <= 0 || brightness >= MAX_BRIGHTNESS) {
fadeAmount = -fadeAmount; // Inverse la variation de luminosité
}
}