les vencimos · offline
L21. PWM: brillo y velocidad
Maestro
analogWrite no saca un voltaje a medias. Enciende y apaga el pin muy rápido, y el LED lo ve como brillo. En el Uno eso solo ocurre en unos pines: 3, 5, 6, 9, 10 y 11. El número va de 0 a 255. Cero es apagado. 255 es encendido del todo. El pin 13 no entra en esa lista.
El truco se llama PWM, modulación por ancho de pulso. Si el pin está alto la mitad del tiempo, el LED parece a media luz. El chip lo hace solo miles de veces por segundo. Tú solo das el ancho: analogWrite(9, 30) es tenue, analogWrite(9, 200) es fuerte. No es una tensión de 1 voltio limpia. Un motor pequeño puede cambiar de velocidad con la misma idea, pero el pin no alimenta el motor. Como mucho le marca el ritmo a un transistor.
El LED externo va en el pin 9, con su resistencia de 220 ohmios a masa, ánodo hacia el pin. El del pin 13 se queda para pruebas de sí o no. Si escribes analogWrite(13, 128) en un Uno, no obtienes media luz: ese pin no tiene PWM.
El sketch sube el brillo y lo baja. delay aquí solo pausa entre escalones. Sigue bloqueando, y ya sabes el precio. Para un brillo fijo no hace falta loop complicado: escribes el número y se queda.
Montaje
Pines de esta lección
Por qué
analogWrite no entrega un voltaje quieto. Enciende y apaga el pin muy rápido. El argumento va de 0 a 255. 0 es siempre apagado. 255 es siempre encendido. 128 pasa la mitad del tiempo encendido y el ojo, o un motor pequeño a través de un transistor, lo nota como un medio. Un polímetro lento puede enseñar un número intermedio; el pin, en cada instante, está arriba o abajo.
En el Uno los pines con esa capacidad, marcados a menudo con una virgulilla, son 3, 5, 6, 9, 10 y 11. El 13 no está en la lista. Si escribes analogWrite(13, 80) no obtienes un brillo fino: obtienes un comportamiento que no es el de la lección. El LED de prueba se mueve al 9, con su resistencia de 220.
20, 120 y 255, con pausas, enseñan tres escalones que sí se distinguen. Un salto de 250 a 255 no se ve. No persigas suavidad de catálogo. Persigue que el ojo diga bajo, medio, alto. El delay aquí es didáctico. En un proyecto con botón, esos delay se irán.
PWM no da derecho a saltarte la resistencia. A 255 el pin está a 5 V el tiempo entero, y sin resistencia es el mismo cortocircuito de la lección del LED. A 20 la corriente media baja, y sigue haciendo falta el límite.
Práctica
- Pasa el LED y su 220 ohmios del pin 13 al pin 9. Masa como siempre.
- Carga el sketch de los tres niveles: 20, 120 y 255.
- Di en voz alta bajo, medio, alto, al ritmo de las pausas.
- Cambia 20 por 0. El bajo tiene que ser oscuro de verdad.
- Prueba analogWrite en el pin 8 a propósito, un momento. No debe parecerse al 9. Vuelve al 9.
- Deja 20, 120 y 255 antes de seguir.
- Comprueba en la serigrafía que el 9 lleva la marca de PWM. El 13 no es su sustituto.
Práctica en la página
El brillo sigue al número, de 0 a 255. Arranca en 120. La simulación arranca encendida.
Ejemplos resueltos
Brillo que no cambia
El LED se quedó en el 13 y analogWrite escribe el 9, que no tiene cable. El 13 se queda en lo último que alguien escribió, o apagado. Los tres niveles existen en un pin que nadie mira.
Se mueve el cable al 9 o se cambia el número del sketch al pin donde está el LED, siempre que ese pin sea de los seis. Una de las dos, y la resistencia también se mueve.
Se quita la resistencia porque a 20 se ve poco
A 20 el LED es tenue y se puentea la resistencia. Cuando el ciclo llega a 255, el pin entrega de más. El brillo medio era bajo; el pico no.
Se deja la 220. Si a 20 no se ve, se sube el primer escalón a 40, no se quita la protección.
En la mesa
Mira el LED del pin 9 y di el nivel antes de que cambie: bajo, medio, alto. Si el medio no se distingue del alto, separa más los números, ciento veinte y doscientos cincuenta y cinco ya deberían poderse. Si ni así, el LED no está en un pin de PWM y estás viendo un HIGH perezoso. Vuelve a la lista: 3, 5, 6, 9, 10, 11. El 13 no entra.
Pasa un momento a cero y confirma oscuridad. Un cero que aún luce es un cable a 5 V, no un analogWrite tímido. Luego vuelve a los tres escalones del sketch. No dejes el pin en doscientos cincuenta y cinco toda la noche: no aporta y, si la resistencia faltara, es el peor sitio para olvidarse.
Explica a alguien, o a la pared, que el pin no sabe hacer dos voltios y medio: sabe estar encendido a ratos. Si la frase no te sale, relee el dibujo de los pulsos. Esa frase es el examen, no el brillo.
Sketch
void setup() {
pinMode(9, OUTPUT);
}
void loop() {
analogWrite(9, 20);
delay(600);
analogWrite(9, 120);
delay(600);
analogWrite(9, 255);
delay(600);
}
Ejercicio
Pon un LED con resistencia de 220 ohmios en el pin 9. Prueba analogWrite con 20, con 80 y con 255. Anota cuál distingues de verdad con la vista.
Autoevaluación
1. ¿analogWrite entrega una tensión continua a medias?
No. Enciende y apaga muy rápido. El ojo lo lee como brillo.
2. ¿Qué pines del Uno sirven para eso?
3, 5, 6, 9, 10 y 11. El 13 no.
3. ¿Qué número es el máximo, encendido del todo?
255.