Étape 3: Logiciel, partie 2
C’est la partie du programme qui produit les impulsions. La boucle interne produit une série d’impulsions à une intensité donnée. Il allume les LEDs pour un certain nombre de microsecondes, déterminé par la luminosité actuelle niveau, puis elles s’éteint pendant le reste de 5 millisecondes. Cela signifie que le programme génère un signal de fréquence constante, ce qui simplifie la synchronisation. Le nombre d’impulsions est déterminé par sunrisespeed, qui à son tour détermine la vitesse à laquelle la lampe éclaire.
Les étapes de la boucle externe par le biais du tableau de valeurs de luminosité, leur lecture dans l’ordre et produit une série d’impulsions de la luminosité spécifiée. Dans ce cas, il multiplie la valeur de la table de correspondance par 5, parce que j’ai initialement calculé les valeurs de plage de 0-1000, mais l’Arduino n’est pas précis à des intervalles de temps inférieurs à 5 microsecondes. J’ai utilisé 5 millisecondes comme la fréquence d’impulsion comme un compromis-essayant d’impulsion plus vite que cela réduit le nombre de valeurs de luminosité possible en raison des limitations de minutage de l’Arduino, mais les impulsions beaucoup plus longtemps que 5 ms commencent à être visibles à le œil humain dans le scintillement.
Une fois que la boucle atteint la fin il juste recommence au réglage de luminosité plus faible - idéalement à ce stade vous serait éveillée, afin que puissiez mettre le temporisateur pour éteindre l’Arduino après le temps mis par un cycle complet (dans mon cas environ 25 minutes).