Étape 3: Le programme
La fonction RCtime() effectue la lecture des capteurs. J’ai essayé de l’écrire aussi générique que possible donc il peut être soulevé et utilisé dans d’autres programmes. Vous pourriez trouver des moments où certains ajustements devront être faits pour l’étalonnage. Par exemple, dans la fonction boucle dans cette ligne "if(toggle) pwmWrite (ledPin, photocellReading * 4); » J’ai multiplier la photocellule lecture par 4. Vos résultats peuvent varier, j’ai deux des mêmes cellules photoélectriques et ils se comportent différemment.
Quand j’ai commencé à travailler sur le projet que j’ai fait ma première expérimentation sur un Arduino. Quand j’ai eu il fonctionne j’ai transféré sur le RaspberryPi, et il n’a pas fonctionné. Il m’a fallu beaucoup de temps pour comprendre ce qui clochait. Le RaspberryPi n’est aucun hot rod, mais il est plusieurs fois plus vite qu’un Arduino. La solution était d’ajouter le « delay(2) » dans la fonction RCtime() pour donner le temps de condensateurs à décharge.
Le code pour le taux de blink utilise millis() au lieu de delay() parce que l’ensemble du programme s’arrête pendant un delay(). Le programme continue à fonctionner à l’aide de millis() et les changements sont immédiats. « temps » est une variable globale définie juste au-dessous du titre de programme et le comprend. Il est initialisé dans la fonction setup(). Notez l’utilisation de l’époque et bascule variables ainsi que la fonction millis() dans la fonction loop() pour voir comment c’est fait.