Introduction

Dans ce projet, l’objectif est de contrôler l’allumage progressif de plusieurs LEDs à l’aide d’un potentiomètre connecté à une carte Arduino. En tournant le potentiomètre, la valeur analogique mesurée par l’Arduino évolue et permet d’allumer les LEDs de manière graduelle, en fonction de la position choisie. Plus le potentiomètre est tourné, plus le nombre de LEDs allumées augmente.

Ce projet permet de comprendre la conversion d’un signal analogique en actions concrètes, ainsi que la gestion progressive de sorties numériques. Il constitue une excellente introduction à la visualisation de données et au contrôle d’éclairages, avec des applications possibles dans les indicateurs de niveau, les interfaces utilisateur ou les systèmes de réglage de luminosité.

Schéma du circuit

Lorsque le potentiomètre sera à 0V, on allumera 0 LED, puis lorsqu’il sera au maximum on les allumera toutes. Pour les valeurs comprises entre 0 et 5V, elles s’allumeront les LED proportionnellement :

Programme du circuit

// Définition des pins
const int ledPins[] = {7, 8, 9, 10, 11, 12, 13}; // LEDs branchées de 7 à 13
const int numLeds = 7;                           // Nombre total de LEDs
const int potPin = A5;                           // Potentiomètre sur A5

void setup() {
  // Initialisation des LEDs en sortie
  for (int i = 0; i < numLeds; i++) {
    pinMode(ledPins[i], OUTPUT);
    digitalWrite(ledPins[i], LOW);
  }
}

void loop() {
  // Lecture de la valeur du potentiomètre (0 à 1023)
  int potValue = analogRead(potPin);

  // Conversion de la valeur du potentiomètre en nombre de LEDs à allumer (0 à numLeds)
  int ledsToLight = map(potValue, 0, 1023, 0, numLeds);

  // Allumage progressif des LEDs
  for (int i = 0; i < numLeds; i++) {
    if (i < ledsToLight) {
      digitalWrite(ledPins[i], HIGH);
    } else {
      digitalWrite(ledPins[i], LOW);
    }
  }

  delay(50); // Petite pause pour stabiliser l'affichage
}