Arduino analoogsisendid31. Oct '13

Sissejuhatus

Analoogsisendeid on Arduino Unol ning Arduino Megal vastavalt 6 ja 16. Erinevalt digitaalsisendist on igasugune pinge vahemikus 0V ... 5V analoogsisendi puhul sisukas: Atmega mikrokontroller teisendab 0V ... 5V pinge 10-bitiseks täisarvuks vahemikus 0 kuni 1023.

Potensiomeetri ühendamine

Käesolevas näites ühendame potensiomeetri analoogsisendiga. Potensiomeeter on sisuliselt reguleeritava väärtusega takisti või takistite paar, kui kõik kolm jalga kasutusele võtta. Potensiomeetri võib leida näiteks vanemast võimendist/raadiost helitugevuse reguleerimiseks või vanalt kineskoopkuvarilt kontrastsuse/heleduse reguleerimiseks.

layer 21012345678910111213text:0A0text:1A1text:2A2text:3A3text:4A4text:5A5text:66text:7A7text:8A8text:9A9text:10A10text:11A11text:12A12text:13A13text:14A14text:15A15text:2222text:2424text:2626text:2828text:3030text:3131text:3232text:3333text:3434text:3535text:3636text:3737text:3838text:3939text:4141text:4040text:4343text:4242text:4545text:4747text:4949text:5151text:4444text:4646text:5050text:4848text:5353text:5252element:C1package:C0603-ROUNDelement:C2package:C0603-ROUNDelement:C3package:C0603-ROUNDelement:C4package:C0603-ROUNDelement:C5package:C0603-ROUNDelement:C6package:C0603-ROUNDelement:C7package:C0603-ROUNDelement:C8package:C0603-ROUNDelement:C9package:C0603-ROUNDelement:C10package:C0603-ROUNDelement:C11package:C0603-ROUNDelement:C12package:C0603-ROUNDelement:C13package:C0603-ROUNDelement:C14package:C0603-ROUNDelement:C15package:C0603-ROUNDelement:F1package:L1812element:FD1package:FIDUCIA-MOUNTelement:FD2package:FIDUCIA-MOUNTelement:FD3package:FIDUCIA-MOUNTelement:FD4package:FIDUCIA-MOUNTelement:GROUNDpackage:SJelement:Ltext:LLelement:R1package:R0603-ROUNDelement:R2package:R0603-ROUNDelement:RN1package:CAT16element:RN2package:CAY16element:RN3package:CAY16element:RN4package:CAY16element:RN5package:CAT16element:RXtext:RXRXelement:TXtext:TXTXelement:Z1package:CT/CN0603element:Z2package:CT/CN0603layer 25text:ANALOG INANALOG INCOMMUNICATIONtext:ANALOG INPOWERAREFGNDTX0RX0RESET3V35Vtext:VINVINtext:GNDGNDtext:GNDGNDSDA 20SCL 21TX2 16RX2 17RX3 15text:TX3TX3 14RX1 19TX1 18text:MADE INMADE INtext:ITALYITALYPWMtext:5V5Vtext:GNDGNDtext:DIGITALDIGITALtext:MEGA 2560MEGAtext:M.Banzitext:D.Cuartiellestext:D.Mellistext:G.Martinotext:T.IgoeIOREFtext:SDAtext:SCLelement:C1package:C0603-ROUNDelement:C2package:C0603-ROUNDelement:C3package:C0603-ROUNDelement:C4package:C0603-ROUNDelement:C5package:C0603-ROUNDelement:C6package:C0603-ROUNDelement:C7package:C0603-ROUNDelement:C8package:C0603-ROUNDelement:C9package:C0603-ROUNDelement:C10package:C0603-ROUNDelement:C11package:C0603-ROUNDelement:C12package:C0603-ROUNDelement:C13package:C0603-ROUNDelement:C14package:C0603-ROUNDelement:C15package:C0603-ROUNDelement:D1package:SMBelement:D2package:MINIMELFelement:D3package:MINIMELFelement:F1package:L1812element:FD1package:FIDUCIA-MOUNTelement:FD2package:FIDUCIA-MOUNTelement:FD3package:FIDUCIA-MOUNTelement:FD4package:FIDUCIA-MOUNTelement:GROUNDpackage:SJelement:IC3package:TQFP100element:IC4package:MLF32element:IC6package:SOT23-DBVelement:IC7package:MSOP08element:Lpackage:CHIP-LED0805element:L1package:0805element:ONtext:ONONelement:R1package:R0603-ROUNDelement:R2package:R0603-ROUNDelement:RN1package:CAT16element:RN2package:CAY16element:RN3package:CAY16element:RN4package:CAY16element:RN5package:CAT16element:RXpackage:CHIP-LED0805element:T1package:SOT-23element:TXpackage:CHIP-LED0805element:XIOpackage:2X18text:XIOelement:Y1package:RESONATORelement:Y2package:QSelement:Z1package:CT/CN0603element:Z2package:CT/CN0603

Ühendamise skeem

Antud juhul kasutame 100kΩ potensiomeetrit, kuid samahästi peaks sobima suvaline potensiomeeter, mille takistus on rohkem kui 1kΩ. Potensiomeetri takistus peab olema piisavalt suur, et seda läbiv vool ei põhjustaks potensiomeetri läbipõlemist või ülemäärast kuumenemist. Samas liiga suure takistuse puhul, näiteks 1MΩ, võib näit ebatäpsemaks minna. Ühendades potensiomeetri ühe äärmise jala maha ning teise äärmise jala 5V toitepingega, saavutame sujuvalt valitava pinge vahemikus 0V ... 5V potensiomeetri kesmisele väljavõtte jalale.

img/arduino-potentiometer.jpg

Foto ühendatud skeemist

Koodinäide

Koodinäites loeme igas tsüklis pinge analoogsisendil A0 ning seejärel hoiame näidule vastava hulga millisekundeid Arduino plaadil olevat valgusdioodi sisselülitatud olekus ning siis sama kaua väljalülitatud olekus. Lõpptulemusena saab potensiomeetri abil seadistada Arduino plaadil oleva valgusdioodi vilkumise sagedust.

int led = 13;

void setup() {
    pinMode(led, OUTPUT);
}

void loop() {
    int value = analogRead(A0);
    digitalWrite(led, HIGH);
    delay(value);
    digitalWrite(led, LOW);
    delay(value);
}

Harjutused

  • Kasutades Serial klassi edasta analoogsisendi näit arvutiekraanile

  • Teisenda analogRead() funktsiooni täisarvuline tagastatud väärtus, ujukomaarvuks voltides

  • Teisenda voltide näit vastavalt väärtusele, nt 4.5 -> 4.5V ning 0.25 -> 250mV

Arduino GPIO Tiigriülikool Estonian IT College