Stap 6: Test DAC
//63Hz sine wave //by Amanda Ghassaei 2012
Één of andere info over de code-in principe wat ik hier heb gedaan in een timer-interrupt die de variabele t met een frequentie van 40kHz verhoogt is ingesteld. Zodra t 627 bereikt het herstelt terug naar nul (dit gebeurt met een frequentie van 40.000/628 = 63 Hz). Ondertussen in de hoofdlus stuurt de Arduino een waarde tussen 0 (00000000 binair) en 255 (11111111 binair) naar digitale pinnen 0 t/m 7 (PORTD). Het berekent deze waarde met de volgende vergelijking:
PORTD=byte(127+127*Sin(2*t/100));
Dus als t stappen van 0 naar 627 doorloopt de sinus-functie in een volledige cyclus. De waarde die wordt verzonden naar PORTD is een sinusgolf met 63Hz frequentie en amplitude 127, oscillerende ongeveer 127. De DAC vertaalt dit naar een spanning tussen 0 en 5 v, waar een 0 verzonden naar PORTD evenaart 0V en een 255 verzonden naar PORTD gelijken 5V.