Étape 3: Le Code
Au lieu de dumping juste le code je vais d’abord expliquer un peu comment le code fonctionne. Si vous n’êtes pas intéressé, vous pouvez simplement télécharger le code à la fin de cette étape.
Le code requiert la bibliothèque Adafruit_Neopixel. Pour l’installer, allez dans Esquisse -> Include Bibliothèque -> gérer les bibliothèques et tapez Neopixel dans la zone Rechercher, cliquez sur le Adafruit NeoPixel et cliquez sur installer.
Avec le capteur accroché maintenant, nous pouvons essayer de lire certaines valeurs. C’est en fait assez facile. Tout ce que nous devons faire est de sélectionner la couleur, nous sommes intéressés et compter combien de fois la broche de sortie change de haut en bas dans un temps donné. Nous avons ensuite Répétez cette opération pour chaque couleur, et nous avons nos mesures. Téléchargez et décompressez le code à suivre ainsi que l’explication ci-dessous.
Lecture de la sonde :
La fonction de mesure des couleurs fait tout le travail. La boucle externe est une boucle qui boucle 3 fois, une fois pour rouge, vert et bleu. À l’intérieur de la boucle, l’heure est stockée et un certain temps de boucle est entré pour les 25 ms. À l’intérieur le tout en boucle nous continuons vérifier l’état de la broche de sortie, si elle est passée d’élevé à faible ou faible à élevée nous incrémenter le compteur et enregistrer l’État. Ce faisant, nous continuons jusqu'à ce que le temps de mesure est en place. Après cela nous sauver le comte comme le réinitialiser la valeur brute pour cette couleur et sélectionnez la couleur suivante. Au moment où que cette fonction est terminée la ColorData struct a les valeurs brutes mesurées pour rouge, vert et bleu. C’est aussi simple que cela.
Conversion de couleurs :
Afin d’obtenir les couleurs réelles, que nous aurons besoin d’étalonner le capteur, nous le ferons à l’étape suivante. Mais tout d’abord permet d’expliquer ce que nous sommes étalonnage. Nous supposons que le capteur est linéaire, donc si le nombre de sortie augmente la quantité de lumière augmente au même rythme. https://en.wikipedia.org/wiki/Linear_function Par conséquent, la couleur est donnée par une fonction sous la forme de couleur = a * (comte) + b. Cela s’explique pour le capteur à https://arduinoplusplus.wordpress.com/2015/07/15/tcs230tcs3200-sensor-calibration/ et nous allons utiliser la même méthode pour calibrer le capteur.
La dernière chose que nous ferons est scale-up la couleur que nous avons senti. Nous faisons cela pour empêcher les LEDs dim. Donc nous prendre la couleur plus élevée et affectez-lui la valeur maximale de 255 et les deux autres couleurs à l’échelle en conséquence.
RGB LED :
Les LEDs sont définies dans la boucle principale. Après avoir lu la couleur nous effectuer une boucle sur tous les voyants et définir la couleur des LEDs sur la couleur que nous lisons.