🛠 Potentiomètre et variation LED : l'ADC 10 bits et le PWM 8 bits version AVR

Arduino Duemilanove — Ficha de placa · debutant · Schéma : IMG-duemilanove-debutant-3-potentiometre-pwm-fade.svg — potentiomètre 10 kΩ câblé entre 5 V, A0 et GND sur une Arduino Duemilanove, LED + résistance 220 Ω sur la broche PWM 9, liste des broches PWM 3/5/6/9/10/11 surlignée, ADC 10 bits annoté.

Objetivos

El par analógico clásico en AVR: leer un potenciómetro con el ADC de 10 bits (0–1023 en A0–A5) y controlar el brillo de un LED mediante PWM de 8 bits (0–255). Aprenderás a memorizar los seis pines PWM de la Duemilanove (3, 5, 6, 9, 10, 11) y la conversión de escala 1023→255 con map. A diferencia de la Due, todo funciona a 5 V aquí: no necesitas un adaptador de nivel para tus módulos TTL de 5 V.

Material

Código completo

// Potentiometre sur A0 -> luminosite LED sur broche PWM 9
const byte POT = A0;        // ADC 10 bits : 0..1023, plage 0..5 V (AREF)
const byte LED_PIN = 9;     // PWM 8 bits (broches PWM : 3,5,6,9,10,11)

void setup {
  Serial.begin(9600);       // suivi serie via la FTDI
}

void loop {
  int brut = analogRead(POT);                  // 0..1023
  byte consigne = map(brut, 0, 1023, 0, 255);  // -> PWM 8 bits
  analogWrite(LED_PIN, consigne);
  Serial.print("brut="); Serial.print(brut);
  Serial.print("  pwm="); Serial.println(consigne);
  delay(50);
}

Verificación esperada

Al girar el potenciómetro, el LED se apaga progresivamente y luego aumenta hasta su máximo, sin saltos visibles. El monitor serie muestra el valor bruto 0–1023 y la consigna PWM 0–255 que lo sigue. Al girar completamente en un sentido o en el otro, se obtienen respectivamente 0 y ~1023 (± ruido).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales