miércoles, 27 de noviembre de 2013

Librería PWM para ATmega168/328

Por fin y tras muchas horas de sufrimiento, desesperación y llanto desde la frustración he podido terminar una librería mínimamente decente para el manejo de modulación por ancho de pulso en 14 pines de un ATmega 168/328.

La primera dificultad con la que me encontré fue la farragosa información disponible sobre la creación de librerías dentro del entorno Arduino. De no ser por las aportaciones sobre este tema disponible en otros blogs, construir una librería, mi primera librería, se habría convertido en algo realmente muy complicado si únicamente hubiera contado con la documentación publicada en la página oficial de Arduino.


A esta librería la he llamado, y no podía ser de otra manera, PWM. Si bien no pretende ser la panacea de las librerías para el manejo de timers, cumple con la finalidad para la que fue creada, que no es otra que el control de luces en un sistema domótico, mediante la utilización del timer2 para generar por desbordamiento la modulación por ancho de pulso en 14 pines, número de salidas que entiendo suficientes para un buen número de aplicaciones. No obstante, y haciendo algunos modificaciones podría, en teoría, utilizarse para incrementar el número de salidas.


Os dejo un vídeo donde se ve la ejecución de uno de los dos ejemplos que he puesto en la librería sobre una placa Arduino Diecimila. A causa de la pereza, reutilicé una protoboard que tenía a mano de otro proyecto con los leds ya montada, conectando únicamente 11 pines, pero como ejemplo de funcionamiento es igualmente válido. En el vídeo también puede verse el mismo ejemplo funcionando sobre 8 pines, dos de ellos los uso para controlar dos tiras led que tengo instaladas en sendas estanterías en el salón de casa, y los otros seis restantes controlan dos juegos de tiras led RGB que tengo instaladas ocultas en los altavoces del home cinema.





Soy consciente que la buena práctica de insertar comentarios en los códigos para facilitar la comprensión del mismo, así como futuras depuraciones o modificaciones en mi caso es una asignatura pendiente, pero bueno, poco a poco iremos mejorando.

En otro orden de cosas, este proyecto me ha servido también para aprender a utilizar Github, aplicación que en su plataforma web me ha resultado realmente útil. A partir de ahora, procuraré colgar todo el software que desarrolle en esta fantástica plataforma de control de versiones.

No hay comentarios:

Publicar un comentario