🛠 Variateur d'intensité LED avec PWM
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
- 1 × Arduino Pro Mini (ATmega328P; pines PWM confirmados: 3, 5, 6, 9, 10, 11)
- 1 × LED + 1 × resistencia de 220 Ω (o transistor NPN/MOSFET para un LED de potencia, máx. 40 mA por pin)
- 1 × potenciómetro de 10 kΩ en A0
- Adaptador FTDI/CP2102 para la devolución serie
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
analogWriteen un pin no PWM (por ejemplo, pin 4): el pin se comporta como todo-o-nada (0 = apagado, cualquier otro valor = encendido permanentemente).- LED de potencia conectado directamente al pin: se superan los 40 mA máximos por pin y se daña la salida; utilice un transistor.
- Confundir escalas:
analogWriteacepta 0-255,analogReaddevuelve 0-1023 — de ahí la necesidad obligatoria demap. - Esperar una tensión analógica real: el PWM es una señal rectangular filtrada por la persistencia visual, no una verdadera salida DAC; la Pro Mini no tiene ningún convertidor digital-analógico.
- Usar los pines 11-13 en PWM mientras se utiliza SPI: estos son también MOSI/MISO/SCK — ambos usos interfieren entre sí.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-poussoir.inoArduinopwm-fade.inoArduinocapteur-lumiere-ldr.inoArduinoservo-balayage.inoArduinoruban-neopixel.inoArduino