Étape 6: Buzzer / Timer 2
TCCR2A = bit(COM2A0) | bit(WGM21) ; Toggle OC2A, claire Timer sur comparer Match
Maintenant la fréquence de 4 kHz est réglée par un diviseur et une valeur de comparaison. Un Prédiviseur divise l’horloge par un certain nombre et la valeur de comparaison détermine la période exacte. J’ai utilisé une valeur diviseur de 3 qui divise l’horloge par 32, ou rend 500KHz. Donc 500 kHz/4 kHz est 125 mais n’oubliez pas que nous avons besoin d’une valeur de 62 et désactive broche 11. Après 62 tiques la broche ira haute et après 62 tiques plus il ira retour faible qui nous donne un total de 124 tiques pour l’ensemble du cycle. Ce qui nous donne une fréquence de 4 kHz. Si c’est confus tout simplement jouer avec des nombres jusqu'à ce que vous comme le terrain. Un nombre inférieur en soit du Registre augmentera la hauteur de son. Voici le code :
TCCR2B = BUZZER_PRESCALER; / / 3, abaisser le nombre supérieur pitch;0-mute,1-1,2-8,3-32,4-64,5-128,6-256,7-1024
OCR2A = BUZZER_COMPARE; / / 62, abaisser la hauteur plus élevé numéro
Pour réellement mettre la minuterie sur et hors je fais simplement entrée pin 11 (sonnerie off) ou sortie (sonnerie sur).
pinMode (entrée, BUZZER_PIN); //turn alarme
pinMode (BUZZER_PIN, OUTPTU); //turn alarme sur
Je me connecte le buzzer directement entre la broche 11 et au sol. Grâce au fait que les processeurs Atmel ATMega et ATTiny peuvent source et couler beaucoup de courant non plus l’amplification est requise. C’est en fait plus fort que n’importe quel autres réveils que nous avons à la maison.