Friday, March 28, 2008

Arduino PWM

En algunos artículos anteriores escribí sobre la modulacion PWM. Esta se usa entre otras cosas para controlar la velocidad en motores de corriente continua (DC) y regular el brillo en los LEDS.
Arduino (Decimilia y derivados) usa el microcontrolador Atmel ATMEGA168, este micontrolador tiene 6 salidas PWM (patas 3,5,6,9,10 y 11). La función analogWrite(pin, value) permite controlar cada una de las salidas PWM. La frecuencia de la PWM se encuentra fija en 490Hz y lo que controlamos con esa función es el ciclo de actividad de la PWM.
Un valor value=0v producirá una salida en 0v, mientras que un valor value=255 producirá una salida de 5v constante. Valores intermedios producirán valores medios proporcionales de tensión de salida Vmediosalida = (value/255)*5v.
Por ejemplo para controlar un LED, una frecuencia de 100Hz alcanza para que el sistema de visión humana no perciba el parpadeo del mismo, asi que los 490Hz que usa Arduino son mas que suficientes.


1 comment:

NW said...

Hola, interesante artículo.
Estoy preparando una especie de lámpara con 40 LEDs, y mi idea es controlar la intensidad de cada uno independientemente. Necesitaría varios Arduinos?. Cual es el límite en cuanto a LEDs.?
Estoy pensando en hacerlo vía DMX, pero los conversores tiene salida de 4 canales, y creo que me quedo corto. Por eso pensaba en Arduino.
Agradezco cualquier ayuda.
Saludos.
Ignacio.