Étape 2: Le code
J’ai utilisé 6 structures différentes pour contrôler les LED. Alors que j’ai 8 piqûres dans le toit, j’ai décidé de rester avec les fonctionnalités natives de PWM de l’ATMega328. J’ai examiner à l’aide de la bibliothèque de SoftPWM mais a décidé de quitter que pour des projets plus tard.
J’utilise un canal série pour quelques commandes de base et d’afficher les résultats. La version finale a certaines broches sur la carte, mais ils ne sont pas connectés à rien pour le moment.
Si un code a traverser
La première partie consiste à définir des constantes & variable, ainsi que les 6 structs pour contrôler les chaînes de LED.
La section de configuration s’ouvre le canal série et initialise les structs définissant les chaînes de LED
La boucle principale:
Vérifie le canal série pour l’entrée ;
Si le mode de fonctionnement est NORMAL
Définit chacune des chaînes de LED pour une luminosité basés sur le temps, chacun cycles plus lumineux et gradateur à des vitesses différentes, ce qui crée un effet de « scintillement » raisonnablement aléatoire.
Si le mode de fonctionnement en Ontario, toutes les LED de figurent complet sur
Si le mode de fonctionnement est désactivé, les voyants sont éteints.
Les procédures finales gérer le canal série, à la recherche de toutes les entrées, changer le mode de fonctionnement si nécessaire et en affichant l’état de certaines variables.
Tout le code relatif au canal série pourrait être supprimé comme l’interface série ne sert pas quand on l’utilise, mais je l’ai laissé dans le cas où j’ai voulu changer les choses dans l’avenir.