Étape 4: Contrôleur logiciel
Le logiciel est écrit en AVR-GCC sous windows à l’aide de AVR studio, il emprunte à des projets similaires de la bougie et le code d’exemple de wikipedia pour un registre à décalage rétroaction linéaire.Les principales différences sont que celui-ci utilise une LED RGB et 3 minuteries PWM hardware, pour minimum SW frais généraux.
L’idée était que si le scintillement Pseudo-aléatoires n’a pas l’air naturel, le CPU a beaucoup d’espace supplémentaire pour gérer un modèle plus complexe du comportement de la bougie.
La LED RGB a été choisie pour plusieurs raisons, au cours d’une seule couleur LED.
- Il est difficile de trouver des LEDs orange / jaunes à haute brillance
- Firelight plupart n’est pas une couleur constante, si vous regardez de près un incendie variateur a une couleur plus foncée, plus rouge, et j’ai voulu essayer d’imiter qui.
- Je voulais utiliser ce projet pour d’autres choses à l’avenir.
Une autre différence est que bon nombre des bougies LED disponibles commercialement clignotent la LED marche / arrêt, et de vraies bougies ne fais pas ça.
Obtenir le code complet est joint. J’ai a essayé de mettre en œuvre une décoloration plus complexe entre les couleurs, mais a manqué de temps pour le finir. Qui est commentée dans le code ci-joint
Le code commence dans main() en initialisant les registres PWM et puis en faisant un auto-test rapide de la LED.
La fonction set_rgb() accepte le R, G, B valeurs et définit les registres PWM en conséquence.
La boucle principale puis commence un LFSR et vacille entre 2 valeurs de couleur différente.