Me preguntaba si alguien podría decirme cómo Arduino cambia el ancho del ciclo de trabajo. ¿Cómo se produce un patrón on-off? Estoy buscando una explicación para la modulación en este sistema.
Hay varias formas simples de hacer una señal PWM. PWM significa Modulación de ancho de pulso que es una señal de (generalmente) una frecuencia constante en la que el tiempo que la señal es alta es variable.
Una forma de implementar esto es Haga un contador que cuente continuamente de 1 a 100 y luego de 100 reinicios, así el siguiente conteo es "1": Entonces: 1, 2, 3, ..., 99, 100, 1, 2, ...
Luego use un comparador para comparar ese número con el Ciclo de trabajo que desea. Por ejemplo, queremos un 33% de DuCy, luego hacemos la salida del contador "1" cuando el valor del contador es 33 o menor. El comparador "volteará" a 34, por lo que para 34 a 100 la salida será "0".
El Arduino no tiene 100 niveles de DuCy sino 256, por lo que el contador no cuenta hasta 100, sino hasta 256.
El contador "cronometrará" (contará) en algún reloj derivado de la frecuencia del reloj principal.
No estoy diciendo que esta sea la forma THE de que se implemente en el chip ATMega en el Arduino, es un ejemplo de cómo podría ser implementado.
Lea otras preguntas en las etiquetas voltage arduino modulation pwm duty-cycle