🛠 Variateur d'intensité LED avec PWM

Arduino Pro Mini · intermediaire · Schéma : IMG-pro-mini-intermediaire-4-promini-pwm-led.svg — LED avec résistance 220 Ω sur broche PWM 9 de l'Arduino Pro Mini, potentiomètre sur A0 pilotant analogWrite

Objectifs

Utiliser la modulation de largeur d'impulsion (PWM) pour faire varier la luminosité d'une LED : le core Arduino expose analogWrite(pin, 0-255) sur les 6 broches PWM de la Pro Mini (3, 5, 6, 9, 10, 11 — résolution 8 bits via le timer de l'ATmega328P). Le potentiomètre branché sur A0 (0-1023) est mis à l'échelle 0-255 pour piloter le rapport cyclique. On rappelle la limite absolue : 40 mA maximum par broche, quel que soit le modèle 5 V ou 3,3 V.

Matériel

Code complet

// Variateur PWM : potentiomètre A0 -> LED broche 9
const uint8_t POT = A0;
const uint8_t LED_PWM = 9;      // broche PWM (3, 5, 6, 9, 10 ou 11)
uint32_t derniere = 0;

void setup {
  pinMode(LED_PWM, OUTPUT);
  Serial.begin(57600);
}

void loop {
  if (millis - derniere >= 20) {
    derniere = millis;
    int brut = analogRead(POT);              // 0..1023
    uint8_t rapport = map(brut, 0, 1023, 0, 255);
    analogWrite(LED_PWM, rapport);           // 0..255
    Serial.println(rapport);
  }
}

Vérification attendue

En tournant le potentiomètre, la LED s'éteint progressivement (0) puis monte en luminosité jusqu'à plein régime (255) sans palier. En regardant la LED via la caméra d'un téléphone au ralenti, on distingue le scintillement PWM alors que l'œil perçoit une lumière continue. Sur le modèle 3,3 V, la tension « haute » du PWM vaut 3,3 V : choisissez la résistance en conséquence (la LED est un peu moins lumineuse qu'en 5 V).

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels