Arduino AnalogOut

Fra HTX Arduino
Spring til navigation Spring til søgning

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:
Arduino-analog-out-diag.png
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:
Arduino-seriel-2.png
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.

Analog-out-maal1.png
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:

Analog-out-maal2.png
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

  1. http://arduino.cc/en/Tutorial/AnalogInOutSerial Analog læsning, Analogt output og Udskrift Seriel
Digitale Opgaver
Kombinatorisk Logik Opgave 1a - Opgave 1b - Opgave 2 - Opgave 3 - Opgave 4 - Opgave 5 - Opgave 6 - Opgave 7 - Opgave 8 - Opgave 9 - Opgave 10
Sekvensiel Logik Opgave 11 - Opgave 12 - Opgave 13 - Opgave 14
Analoge Opgaver
Modstande og Ohms lov Modstands Opgave 1 - Modstands Opgave 2 - Modstands Opgave 3 - Modstands Opgave 4 - Modstands Opgave 5 - Modstands Opgave 6 - Modstands Opgave 7 - Modstands Opgave 8 - Modstands Opgave 9 - Modstands Opgave 10
Kondensator og Spole Kondensator opgaver 1 - Kondensator DC opgave 1 - Kondensator AC opgave 1 - Spolen 1 - Seriekobling og parallelkobling - Spolen 2 - Beregning af spoleværdier (selvinduktionen) - Spolen 3 - Tidskonstant for RL-led - Spolen 4 - Beregning af induktiv-reaktansen
Operationsforstærker Opamp Opgave 1 - Opamp Opgave 2 - Opamp Opgave 3
Diverse Opgaver Opgaver Diagram - Opgaver Transformator - Transistor opgave - Zenerdiode Opgave 1
Programmerings Opgaver
Arduino Arduino Blink - Arduino Opgave 01 - Blink - Arduino Button - Analog Out - Arduino StateChangeDetection - Arduino termometer - Arduino termostat - Arduino udgangsforstærkning
PIC PIC Opgave 1 - Blink - PIC Opgave 2 - Gates - PIC Opgave 3 - Udvidet blink - PIC Opgave 4 - Kombinatorik - PIC Opgave 5 - Flip-flops - PIC Opgave 6 - Løbelys - PIC Opgave 6a - kontakt - PIC Opgave 7 - Udvidet løbelys - PIC Opgave 8 - Sekventielle kredsløb - PIC Opgave 9 - Multivibratorer - PIC Opgave 10 - Samtidighed - PIC Opgave 11 - Tastatur - PIC Opgave 12 - Display - PIC Opgave 13 - A-D converter - PIC Opgave 14 - Interrupt - PIC Opgave 15 - Seriel komm - PIC Opgave 16 - Lyskryds - PIC Opgave 17 - Tyverialarm
PIC Opgave Løsninger PIC Opg 1 Løsning - PIC Opg 2 Løsning - PIC Opg 3 Løsning - PIC Opg 4 Løsning - PIC Opg 5 Løsning