Arduino digitaalväljund ja valgusdioodide juhtimine03. Jun '14

Sissejuhatus

Digitaalväljundeid on Arduinol sama palju kui digitaalsisendeidki 1. Digitaalväljundi lubamiseks tuleb pesad seadistada väljundi režiimi pinMode() funktsiooni abil. Seejärel saab digitalWrite() funktsiooni abil iga pesa pingenivood tõsta kõrgele (HIGH) või suruda maha (LOW). Kõrge pingenivoo puhul on pesa läbi sisseehitatud transistori (pin driver) ühendatud Arduino toiteallikaga (5V), öeldakse ka et pesa on voolu lähteallikaks (pin sources current). Madala pingenivoo puhul on pesa läbi sisseehitatud transistori ühendatud maaga (0V), öeldakse ka et pesa maandab voolu (pin sinks current).

Valgusdioodi toitmine digitaalväljundiga

Nii nagu valgusdioodi toitmisel patareiga, tuleb valgusdioodi toitmisel mikrokontrolleriga leida valgusdioodi jaoks sobiv takisti. Ühelt poolt et läbi ei põleks Arduino mikrokontrolleri digitaalväljundi transistor ning teiselt poolt valgusdiood ise:

\begin{equation*} R_{takisti} = \frac {\Delta U_{takisti}}{I} = \frac{U_{toitepinge} - \Delta U_{valgusdiood}}{I} = \frac {5V - 1.8V}{20mA} = 160\Omega \end{equation*}

Iseenesestmõistetavalt täpselt sellise väärtusega takistit ei leia, sobivad ka näiteks 130Ω, 220Ω ning 330Ω.

Valgusdioodi ühendamine

Valgusdioodi omapäraks on see, et valgusdiood laseb voolu läbi vaid ühes suunas. Kuna digitaalväljundi pingenivoo on seadistatav tarkvaraliselt, saab muuta voolu suunda digitaalväljundi pesale ühendatud tarbijas. Järgnevalt on välja toodud fundamentaalselt kaks erinevat varianti kuidas tarbijaid digitaalväljundiga ühendada:

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

Kaks viisi kuidas tarbijat mikrokontrolleri külge ühendada.

Vasakpoolses variandis voolab vool pesalt 13 läbi valgusdioodi maha. Parempoolses variandis liigub vool toitepingelt läbi valgusdioodi pesale 2. Mõlema valgusdioodid saab põlema järgneva koodijupiga:

void setup() {
    pinMode(13, OUTPUT);
    digitalWrite(13, HIGH);
    pinMode(2, OUTPUT);
    digitalWrite(2, LOW);
}

Digitaalväljundi maksimaalne vool

Atmega dokumentatsioonist leiab, et on soovitatav voolu piirata 20mA ringis pesa kohta. Tegelikult ei juhtu ka miskit hullu kui mõnda pesa käitatakse 40mA vooluga. Soovitatud vool 20mA ei ole kuigi suur vool, 5V toitepinge juures tähendab see kõigest 100mW võimsust pesa kohta. Säärase vooluga võib käitada valgusdioodi või tosinat sensorit, kuid releede, mootorite, valgustitena kasutatavate valgusdioodide ja muude võimsate seadmete juhtimiseks on vaja transistoreid või väljatransistoreid ning vastavat toiteallikat.

1

Arduino - Digital Pins

Estonian IT College GPIO Tiigriülikool Arduino