🛠 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

Objetivos

Utilizar la modulación de ancho de pulso (PWM) para variar la luminosidad de un LED: el núcleo de Arduino expone analogWrite(pin, 0-255) en los 6 pines PWM de la Pro Mini (3, 5, 6, 9, 10, 11 — resolución de 8 bits mediante el temporizador del ATmega328P). El potenciómetro conectado a A0 (0-1023) se escala a 0-255 para controlar el ciclo de trabajo. Se recuerda el límite absoluto: 40 mA máximo por pin, independientemente del modelo de 5 V o 3,3 V.

Material

Código completo

// Variateur PWM : potentiometre 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);
  }
}

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, mientras que el ojo percibe una luz continua. En el modelo de 3,3 V, la tensión «alta» del PWM es de 3,3 V: elija la resistencia en consecuencia (el LED será ligeramente menos luminoso que a 5 V).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales