🛠 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.

Objetivos

Comprender la doble conversión analógica/digital: el ADC de 10 bits del ATmega328P (6 entradas analógicas, valores 0–1023) y la salida PWM (~980 Hz en los pines 3, 5, 6, 9, 10, 11 — los únicos seis pines PWM del UNO). Todo ello conectado mediante map.

Material

Código completo

// "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);
}

Verificación esperada

Al girar el potenciómetro, el LED se apaga progresivamente y luego se intensifica, sin escalones perceptibles (el PWM modula el ancho de pulso, el ojo integra). El Monitor serie (Herramientas > Monitor serie) muestra brut que sigue 0→1023 y pwm que sigue 0→255.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales