Arduinet Electrónica
Menú
Inicio Tutoriales Componentes Herramientas Simulador Foro Arduino
Clase 8 · Arduino

PWM, tiempo y control no bloqueante

Control gradual de actuadores y ejecución simultánea de tareas sin depender de delay.

2 min de lectura 45–60 min de clase completa Nivel Intermedio

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.