Arduino AnalogOut
Denne opgave er endnu en del af den grundlæggende start på Arduinoen.
Software
Arduinoen skal i dette eksempel læse en analog værdi, skrive det ud på en analog port og sende noget der kan læses på PC'en.
I Arduino-programmet åbnes Fil - Eksempler - 03.Analog - AnalogInOutSerial[1].
Virkemåde
I funktionen setup() sættes den serielle port op til at kommunikere med 9600 Baud.
I funktionen loop() afvikles den samme kode i en uendelig løkke, hvor der læses en analog værdi på ben A0 - dette giver et tal mellem 0 og 1023. Denne værdi konverteres til en anden værdi mellem 0 og 255. Den konverterede værdi læses ud som PWM-output på Ben 9. Herefter skrives både den læste værdi og den konverterede værdi ud på den serielle port.
Hardware
Der skal tilsluttes noget hardware for at teste programmet, Der skal tilsluttes et potentiomete, så man kan variere spændingen på A0.
Der kan tilsluttes en LED på ben 9, så man kan se variationen i lyset (der skal være en formodstand på 680 ohm).
Så skal man tilslutte nogle voltmetre (evt. bare et som man måler med flere steder).
I udvidelsen af funktionen kan man også sætte et RC-led på, så man udglatter det analoge output.
Det tilsluttede kan illustreres på følgende måde:
Diagram der illustrerer opkobling til at teste programmet
Test
Når programmet er ovre i Arduinoen skulle man gerne kunne variere spændingen på potentiometeret mellem 0 og 5V, og så skulle spændingen på udgangen ben 9 gerne variere fra 0 til 5V, og lyset skulle gerne følge spændingen.
Den serielle konsol på PC'en viser hvad Arduinoen skriver ud på den serielle port.
Dette giver følgende visning:
Visning af den serielle konsol
Tallene løber bare ned over skærmen i en uendelig strøm.
Prøv også at måle spændingen over kondensatoren i kredsløbet, og find sammenhængen mellem de udskrevne værdier, spændingen direkte på udgangen og spændingen på kondensatoren.
Udvidelser til at forstå PWM bedre
Der arbejdes videre med samme program og samme hardware (med RC-leddet på).
Test
For at kunne observere signalerne yderligere skal vi have et oscilloscop tilsluttet, så vi kan se hvad der sker med spændingerne.
Hvis vi tilslutter så kanal 1 måler direkte på ben 9 og kanal 2 måler på kondensatoren (begge dele i forfold til stel), så kan vi få følgende billede når vi kommer 2,5V ind i den analoge indgang 0.
Måling af ben 9 (blå kurve) og spændingen på kondensatoren (rød kurve) ved 2,5V ind på A0
Hvis spændingen ind reduceres til 0,5V så vil man kunne måle følgende:
Måling af ben 9 (blå kurve) og spændingen på kondensatoren (rød kurve) ved 0,5V ind på A0
Observer hvordan kondensatoren forsøger at udglatte spændingen, men at der stadig er små variationer.
Udvidelse 1
Prøv at variere på modstand eller kondensator for at få en bedre eller en dårligere udglatning af spændingen - prøv at se sammenhængen mellem komponenternes størrelser og den måde der udglattes på.
Udvidelse 2
Prøv at vende reguleringsområdet, så 0V ind giver 5V ud, og 5V ind giver 0V ud.
Referencer
- ↑ http://arduino.cc/en/Tutorial/AnalogInOutSerial Analog læsning, Analogt output og Udskrift Seriel