Paso 4: Software de controlador
El software está escrito en el AVR-GCC en windows usando AVR studio, pide prestado a otros proyectos similares de la vela y el código de ejemplo de wikipedia para un registro de cambio linear de regeneración.Las diferencias principales son que éste utiliza un LED RGB y 3 hardware PWM tiempo de SW mínimo overhead.
La idea era que si el pseudo-random parpadeo no se veía natural, la CPU tiene un montón de espacio extra para manejar un modelo más complejo del comportamiento de la vela.
RGB LED fue elegido por varias razones sobre un solo color LED.
- Es difícil encontrar LEDs naranja / amarillos en alto brillo
- La mayoría firelight no es color constante, si se mira cerca un fuego dimmer tiene un color más oscuro, más rojo, y quería intentar mímico.
- Quise utilizar este proyecto para otras cosas en el futuro.
Otra diferencia es que muchas de las velas de LED disponibles comercialmente parpadean el LED de encendido / apagado, y velas reales no lo hacen.
El código completo que se adjunta. Había estado tratando de aplicar una decoloración más complejo entre los colores, pero se quedó sin tiempo para acabarlo. Es comentada en el código adjunto
El código empieza en main() por inicializar los registros PWM y luego hacer una prueba rápida del LED.
La toma de set_rgb() de la función R, G, B los valores y establece en consecuencia los registros PWM.
El bucle principal entonces comienza un LFSR y oscila entre 2 valores de color diferentes.