Étape 2: Le Code
Voici le code de source assembleur PIC pour le projet.L’intensité de la LED est modifiée à l’aide de la modulation de largeur d’impulsions (PWM). Autres tutoriels ailleurs et Instructables couvrent déjà cela beaucoup mieux que je pouvais en détail. N’en déplaise destiné à suggérer la recherche autour d’ailleurs si vous n’êtes pas encore familiarisé avec la théorie.
Le facteur de marche PWM rampe pas linéairement haut et en bas. Correction gamma crée une rampe exponentielle que le œil perçoit comme une augmentation quasi linéaire de luminosité. Parce que je suis paresseux et que si peu espace programme était utilisé, plutôt que de travailler sur une fonction de l’élévation à la puissance j’ai simplement une grande table de valeurs précalculées de correction gamma. Le PIC10F206 avait suffisamment d’espace pour contenir ce tableau, mais un dispositif plus limité peut-être pas ce luxe et code mathématique réelle sera nécessaire.
Une broche de la PIC (GP2) est utilisée pour la sortie. Cette broche a été choisie car je pourrais décider plus tard d’utiliser la fonction de comparaison de cette puce (disponible sur les broches GP0 et GP1) pour détecter la nuit ou à l’ombre et activer le battement uniquement lorsqu’il est suffisamment sombre. Comme c’est le cas, l’appareil vibre juste sans cesse lorsque la batterie est installée, peu importe l’environnement. Le cycle PWM exponentiels signifie le voyant est éteint la plupart du temps, et une pile neuve peut fonctionner l’appareil en continu pendant quelques semaines.