Étape 6: Magic
L’astuce pour le système 1-pin, c’est que la broche analogique 2 Arduino Tiny est identique à la broche numérique 4, donc nous pouvons utiliser la LED même comme un capteur et une sortie. Vous pourriez faire la même chose avec aucune broche analogique sur un Arduino mais ça marcherait notre assez cher !
Lorsque nous commençons l’AVR nous exécuter la routine de « setup », qui mesure la tension générée à partir de lumière frappant la LED plus de 40 secondes, à l’aide de code semblable à celui utilisé lors de la procédure de « boucle ». On mesure 128 valeurs et prendre la moyenne de ces comme étant le seuil d’obscurité. Cela signifie que nous n’avez pas besoin de connaître les propriétés de la LED à l’avance. Tant qu’il génère un signal, nous devrions être capables de l’utiliser.
Chaque fois que l’alimentation est coupée ou la puce est remis à zéro, nous allons courir ce seuil de routine de détection de nouveau. Donc si la puce réinitialise pendant la nuit pour une raison quelconque il pourrait entraîner un seuil qui est rarement traversé. Tout aussi si il se réinitialise en plein soleil puis la lumière serait probablement rester tout le temps. La vie est lourde de dangers.
Nous pourrions, si possible, écrire la valeur seuil d’EEPROM, mais si nous faisions cela, alors nous aurions seulement one shot à procéder au branchement de la batterie. Un autre développement consisterait à deux goupilles (par exemple connecter la broche 7 (PB2) à VCC) jusqu'à ce que nous sommes heureux avec notre seuil et découper ensuite que la broche pour prévenir d’autres écritures EEPROM. Je peux travailler sur une mise à jour de ce genre.
Si vous avez des idées de rusées, puis j’ai aime les entendre.
Maintenant, pour travailler pas la prochaine version - Throwduino RGB, je m’attendais !