Stap 6: Zoemer / Timer 2
TCCR2A = bit(COM2A0) | bit(WGM21); OC2A, duidelijke Timer op vergelijk Match in-/ uitschakelen
Nu is de frequentie van 4 kHz ingesteld door een prescaler en een waarde vergelijken. Een prescaler verdeelt de klok door een bepaald aantal en de waarde vergelijken bepaalt de exacte periode. Ik gebruikte een prescaler waarde van 3, die de klok worden gedeeld door 32, of maakt het 500 kHz. Dus 500 kHz/4 kHz is 125, maar herinner me dat het knevels pin 11, dus we een waarde van 62 moeten. Na 62 teken de pin gaat hoog en na 62 meer teken zal gaan terug laag die geeft ons een totaal 124 teken voor de hele cyclus. Dat geeft ons een frequentie van 4 kHz. Als dat is verwarrend gewoon spelen met getallen tot u zoals de toonhoogte. Een lager nummer in ofwel van het register zal de toonhoogte verhogen. Hier is de code:
TCCR2B = BUZZER_PRESCALER; / / 3, lager getal hoger pitch;0-mute,1-1,2-8,3-32,4-64,5-128,6-256,7-1024
OCR2A = BUZZER_COMPARE; / / 62, nummer hogere toonhoogte verlagen
Schakel eigenlijk de timer in- en uitschakelen maak ik simpelweg pin 11 input (zoemer uit) of output (zoemer op).
pinMode (BUZZER_PIN, INPUT); //turn alarm uit
pinMode (BUZZER_PIN, OUTPTU); //turn alarm op
Ik sluit de zoemer rechtstreeks tussen pin 11 en grond. Dankzij het feit dat de Atmel ATMega en ATTiny-processors kunnen bron en verder geen aanzienlijke huidige zinken is versterking nodig. Het is eigenlijk harder dan andere wekkers die wij in het huis hebben.