Étape 4: Fonctions de Firmware
Réguler la tension de sortie de Joule Thief (tension d’alimentation de microcontrôleur)
Firmware surveille la tension d’alimentation en utilisant le convertisseur A/N - au lieu de brancher une des broches d’entrée à la tension d’alimentation, des échantillons de convertisseur A/N construits en tension de référence fixe à l’aide de la tension d’alimentation comme la tension de référence A/D. Le résultat est le nombre inverse de la tension d’alimentation. Le résultat A/D équivaut à être : 512/supply_voltage. En comparant ce nombre contre un seuil prédéterminé pour activer/désactiver le circuit Joule Thief efficacement régule la tension d’alimentation. Cette tension est réglée légèrement inférieure à la tension de diode Zener de 5.1V à ne pas laisser la diode Zener la tension - gaspiller de l’énergie de shunt.
Vérifiez si le commutateur de bouton est enfoncé
Le firmware vérifie aussi régulièrement si le bouton est enfoncé. Étant donné que le commutateur de bouton est multiplexé avec la goupille qui contrôle le voleur Joule, le travail est un peu délicat.
Le firmware passe tout d’abord la broche de sortie vers le mode d’entrée. Ce qui signifie que le code pin devienne haute impédance. Une autre façon, circuit Joule Thief mettez-le obtient éteint. À ce stade, la tension de la tige devrait aller basse, sauf si le commutateur de bouton est fermé. Donc le firmware simplement lit le statut du code pin et tourne la broche de revenir au mode de sortie. Cela produit à peu près toutes les 8 millisecondes ou 125 fois/seconde.
Maintenant l’état du bouton est vérifié contre le chronomètre pour voir si elle se tient assez longtemps. Si trop court, la poussée de bouton est ignorée comme un bruit. Si la Poussée est assez long, un compteur est incrémenté pour vérifier les robinets simples ou doubles. Firmware attend pendant une durée prédéterminée pour un autre bouton tape. Quand il arrive à expiration, un événement est créée sur single/double clic ou touche maintenue enfoncée.
Animer les LEDs
Maintenant le fonctionnement le plus important de tous - animer les LEDs ! J’utilise le mot animé parce que Wave JT n’est pas juste « blink » les LEDs, mais change luminosité LED en douceur vers le haut et vers le bas en plein 8 bit niveaux.
Le moteur d’animation fonctionne de façon paramétrique. Il faut quelques paramètres à spécifier ; mise à jour base rate (vitesse), la direction du niveau seuil (gauche/droite), mouvement qui conduit déclenche l’adjacent a conduit à commencer à changer le niveau de luminosité entre autres choses. En changeant ces paramètres, vous pouvez créer des modèles sans fin de l’animation.