🛠 Variateur d'intensité LED avec PWM

Arduino Nano (Classic, ATmega328P) · intermediaire · Schéma : IMG-nano-classic-intermediaire-4-nanoc-pwm-led.svg — LED avec résistance sur broche PWM 9 de l'Arduino Nano, potentiomètre sur A0 pilotant analogWrite

Objetivos

Utilizar la modulación de ancho de pulso (PWM) para variar la luminosidad de un LED: el núcleo Arduino expone analogWrite(pin, 0-255) en los pines PWM (6 pines en el conector digital del Nano). El potenciómetro conectado a A0 (0-1023) se escala a 0-255 para controlar el ciclo de trabajo a ~490 Hz.

Material

Código completo

// Variateur PWM : potentiometre A0 -> LED broche 9
const uint8_t POT = A0;
const uint8_t LED_PWM = 9;      // broche PWM (marque ~ sur le silk)
uint32_t derniere = 0;

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

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

Verificación esperada

Al girar el potenciómetro, el LED se apaga progresivamente (0) y luego aumenta su luminosidad hasta el máximo (255) sin saltos. Al observar el LED a través de la cámara de un teléfono en cámara lenta, se distingue el parpadeo PWM (~490 Hz en los pines 9/10 del 328P), mientras que el ojo percibe una luz continua.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales