Étape 3: programmation
Parce que j’utilise des microcontrôleurs PICAXE, que le code est écrit dans la variante de base utilisée par l’éditeur de programmation PICAXE. Cela posait problème parce que cette variante de base ne supporte pas la formule nécessaire pour le calcul de l’intensité lumineuse. Pourquoi faut-il une formule pour quelque chose comme ça ? La perception humaine bien de n’importe quel données sensorielles est exponentielle et cela comprend l’intensité lumineuse. Ainsi, afin de créer une lumière qui aurait fondu de façon linéaire un code a dû être écrite qui permettrait une telle relation exponentielle entre luminosité prévue et la valeur PWM soit possible. La troisième image montre la relation entre la luminosité prévue et valeur PWM. La relation a été d’abord calculée et peaufinée dans Excel, toutefois sur la base du code limites mentionné plus tôt, que j’ai créé trois tableaux de référence très important, un pour chaque couleur, au lieu de cela en copiant manuellement les valeurs d’Excel.
Tant le code pour le récepteur et la télécommande ont des fonctions IF dedans pour vérifier si les nouvelles données (valeur RF ou ADC) sont différentes de la précédente. Cela arrête le microcontrôleur de passer par les lignes inutiles dans le code et rend par conséquent plus réactif. Les fichiers .bas sont dans le dossier zip avec tous les autres fichiers de la lampe.
Un petit problème, que j’ai remarqué avoir construit mon circuit a été que la LED serait vacille constamment aussi longtemps que la télécommande est sur, mais quand il n’était pas le scintillement s’est arrêté. J’en ai déduit de ce que les paquets constantes de RF de la télécommande étaient interrompre le flux du code sur l’extrémité de réception. Cela ne devrait pas être possible parce que pwmout est une routine de fond constant qui modifie uniquement lorsqu’elle est spécifiée pour. En tout cas, pour résoudre ce problème, j’ai reprogrammé l’extrémité de réception pour avoir un cycle beaucoup plus petit et qui corrige le problème.
Pour programmer le PICAXE puces j’utilise le PICAXE Development Board, il y a beaucoup d’options alternatives à la programmation des puces PICAXE cependant c’est mieux expliqués ici.