#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
#define FADE_RANGE 4 // Nombre de LEDs avec l'effet de fading
CRGB leds[NUM_LEDS];
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);
float position = 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++) {
// Calcule la distance entre chaque LED et la position actuelle
int distance = abs(i - position); // Distance entre la LED et la position
// Si la LED est dans la portée du dégradé (4 LEDs autour de la position)
if (distance < FADE_RANGE) {
int brightness = MAX_BRIGHTNESS - (distance * (MAX_BRIGHTNESS / FADE_RANGE)); // Ajustement du dégradé
brightness = constrain(brightness, 0, MAX_BRIGHTNESS); // Assure que la luminosité est positive
leds[i] = CRGB(brightness, 0, 0); // Applique la couleur rouge avec dégradé de luminosité
} else {
leds[i] = CRGB::Black; // Éteint les LEDs hors de portée
}
}
// Affiche les LEDs avec le dégradé lumineux
FastLED.show();
delay(20); // Petit délai pour lisser l'animation
}