Je vous écris ce Instructable car Bot1398 a utilisé un Arduino et je n’ai jamais utilisé. Je n’ai rien contre eux, cependant, lorsque j’ai commencé à utiliser des microcontrôleurs il y a 3 ans, que je cherchais de vitesse et de puissance pour une application spécifique. Je me suis installé sur la série de microcontrôleurs PIC de Microchip. C’est incroyable ce que vous pouvez faire avec des microcontrôleurs, vous pouvez laisser votre imagination courir sauvage et avec un peu de programmation créative réaliser exactement ce que vous voulez. Ainsi, il y a un certain nombre de langages de programmation là-bas, mais quand j’ai commencé j’ai voulu la vitesse et de savoir exactement ce qui se passait à chaque étape, c’est pourquoi que j’ai choisi le langage d’assemblage car il ressemblait beaucoup à BASIC que j’ai appris sur l'
retour dans les années 80 quand j’étais jeune. C’est ce qu’implique ce Instructable : microcontrôleurs PIC et langage d’assemblage, d’utiliser une LED (Light Emitting Diode) pour détecter la quantité de lumière ambiante et la mesure numérique de cette lumière ainsi qu’un diagramme à barre d’affichage sur un écran LCD.
J’ai produisit la première version de ce dispositif de détection de lumière base de LED qui fonctionnait, la peine que j’ai remarqué que les valeurs sauté autour un peu. Par conséquent, j’ai cherché une solution à ce problème, que j’ai pensé à une moyenne des valeurs, mais comment ? Fait de math binaire est assez difficile, mais il y a toujours une façon de faire. Comme j’étais à la recherche de solutions je suis tombé sur une grande page sur les moyennes mobiles et comment le faire plus efficacement afin que même les microcontrôleurs 8 bits peuvent le manipuler avec aisance. Le lien vers la page est ici : Calcul efficaces moyennes mobiles et cela fonctionne très bien. Cette application affiche la moyenne mobile des dernière 256 lectures légères et affiche cette valeur ainsi qu’un diagramme à barre sur l’écran LCD. Le code de moyens mobile empêche les valeurs lues à partir de la LED de sauter autour de beaucoup et vous donne un résultat meilleur et beaucoup plus précis.
Pourquoi cela fonctionne
Lorsque nous accordons une LED à un microcontrôleur nous faisons généralement que pour l’éclaire. Dans ce cas, toutefois, nous sommes en fait application une tension positive le pole négatif de l’électrode. C’est ainsi que nous pouvons tirer profit de ce qu’on appelle la capacité parasite. Appliquant cette tension positive s’accumulent d’une petite charge (ressources sur internet disent dans les 100-200 nanosecondes) au sein de cette capacité parasite de la LED que nous utilisons. La capacité réelle n’est pas très importante, mais les ressources en ligne dire que c’est autour de 10-15 PF. On passera ensuite la broche du micro-contrôleur attaché à l’extrémité négative de l’électrode d’une sortie pour une entrée et attendez que l’accusation s’égoutter. Lorsque la charge draine suffisamment la broche maintenant lira un état de 0 ou faible niveau logique où nous nous tournerons arrêt de la minuterie et utiliser cette valeur pour calculer la moyenne mobile et afficher les résultats sur l’écran. Puis nous prendre des lectures plus et affichez-les sur l’écran à l’intervalle qui est écrit dans le code assembleur. Dans le code fini, je l’ai aura une lecture sur toutes les 20 ou si microsecondes. Dans ce cas 50 fois alors qu’un résultat de mise à jour est affiché à l’écran chaque seconde environ ou plus. Le temps que nécessaire pour obtenir une lecture peut varier un peu car il prend plus de temps pour l’accusation s’écouler dans un environnement sombre et cela se produit plus rapidement dans des environnements lumineux. Le taux de décharge de la capacité de la LED est en quelque sorte directement lié au nombre de photons ou quantité de lumière frappant la lumière LED générant des éléments. Est-il soigné. :)
Maintenant que nous savons comment cela fonctionne, passons à l’étape #1.