🛠 Faire varier la luminosité avec un potentiomètre (ADC + PWM)

Arduino UNO R3 · debutant · Schéma : IMG-uno-r3-debutant-3-potentiometre-fade-pwm.svg — potentiomètre 10 kΩ dont le curseur va sur A0, LED + 330 Ω sur la pin PWM 9.

Objectifs

Comprendre la double conversion analogique/numérique : l'ADC 10 bits de l'ATmega328P (6 entrées analogiques, valeurs 0–1023) et la sortie PWM (~980 Hz sur les pins 3, 5, 6, 9, 10, 11 — les six seules pins PWM de l'UNO). Le tout relié par map.

Matériel

Code complet

// "Fade" classique : ADC 10 bits (0..1023) -> PWM 8 bits (0..255).
const uint8_t POT = A0;
const uint8_t PWM_PIN = 9;   // une des six pins PWM : 3, 5, 6, 9, 10, 11

void setup {
  Serial.begin(115200);
}

void loop {
  int brut = analogRead(POT);            // 10 bits : 0..1023
  uint8_t pwm = map(brut, 0, 1023, 0, 255);
  analogWrite(PWM_PIN, pwm);             // PWM ~980 Hz pilotée par un timer
  Serial.print("brut="); Serial.print(brut);
  Serial.print(" pwm="); Serial.println(pwm);  // suivez ça dans le Traceur série
  delay(10);
}

Vérification attendue

En tournant le potentiomètre, la LED s'éteint progressivement puis s'intensifie, sans palier perceptible (le PWM module la largeur d'impulsion, l'œil intègre). Le Traceur série (Outils > Traceur série) montre brut qui suit 0→1023 et pwm qui suit 0→255.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels