PWM, tiempo y control no bloqueante
Control gradual de actuadores y ejecución simultánea de tareas sin depender de delay.
Desarrollo de la clase
Qué produce analogWrite
En placas AVR clásicas analogWrite genera PWM en pines señalados: conmuta rápidamente entre LOW y HIGH. El valor configura ciclo útil, no una tensión analógica estable. LED y motores responden en promedio por su dinámica; un osciloscopio revela pulsos. Frecuencia, resolución y pines dependen de la placa y de temporizadores compartidos.
El costo de esperar con delay
delay detiene la ejecución del programa y dificulta leer pulsadores, actualizar pantallas o mantener comunicaciones. Con millis se compara tiempo actual y marca anterior; cuando vence el intervalo se actualiza una tarea y se conserva el resto. La resta entre unsigned long mantiene comportamiento correcto incluso cuando el contador desborda.
Varias tareas como estados
Cada tarea conserva su próximo momento o estado. Un LED puede respirar mientras un botón cambia modo y el monitor informa cada segundo. No se trata de ejecución paralela real, sino de pasos cortos y frecuentes. Si una función tarda demasiado, perjudica a todas las demás.