Digitalni ulazi i izlazi na Arduino mikrokontrolerima

Za početak definišimo digitalni signal u elektronici. Digitalni signal možemo da shvatimo kao signal u kojem je informacija zapisana pomoću nekog broja naponskih stanja (gde taj broj nije beskonačno). Najčešće se pod digitalnim signalom posmatra binarni signal koji se sastoji od niza 0 i 1, tj. niskog i visokog naponskog nivoa.

Kod Arduino Uno mikrokontrolera 0 je predstavljena sa 0V, dok je visok naponski nivo predstavljen signalom od 5V. Interesantan detalj za poznavaoce elektronike je i to da svaki pin ima i svoj pull up otpornik koji je moguće isključiti.

U zavisnosti od Arduino mikrokontrolera broj digitalnih ulaza i izlaza varira od 10ak do 50ak. Na Arduino Uno pločici nalazi se 13 digitalnih ulaza/izlaza postavljenih na dužoj ivici pločice, daljoj od samog čipa. Na naspramnoj ivici nalazi se set pinova za naponske izlaze od 3.3V, 5V, GND i analogne ulaze A0 – A5.

DIGITALNI IZLAZI NA ARDUINO MIKROKONTROLERU

Popularni primer rada sa digitalnim izlazom je Blink – aplikacija koja upravlja periodičnim uključivanjem diode.

Potrebni su nam:

Na slici ispod prikazana je šema povezivanja.

Ako sada u okviru setup() unesemo sledeću liniju koda:
pinMode(13, OUTPUT);
podesili smo da pin 13, za koji je povezana LED dioda, izlazni pin tj. da će se sa njega slati signali, a ne primati informacije spolja.
Dalje u okviru loop() unesemo sledeće 4 linije koda:

digitalWrite(13, HIGH);
delay(500);
digitalWrite(13,LOW);
delay(500);

gde smo prvim i trećim redom zadavali da se LED dioda povezana na pin 13 uključi, tj. isključi, a komande na drugoj i četvrtoj liniji predstavljaju pauze u radu Arduina od 500ms (0.5 sekundi), čime dobijamo vidljiv efekat treptanja. Na slici ispod prikazan je rezultat aplikacije.

DIGITALNI ULAZI NA ARDUINO MIKROKONTROLERU

U ovom slučaju ćemo proširiti prethodni primer sa jednim tasterom i otpornikom za ograničavanje struje pri pritisku tastera. Želimo da pri pritisku na taster zelena LED dioda zasvetli.

Dakle, potrebni su nam:

Na slici ispod prikazana je šema.

Ako sada u okviru setup() dodamo sledeću liniju koda (nije bitan redosled sada):
pinMode(2, INPUT);
podesili smo da je pin 2, za koji je povezan taster, ulazni pin tj. da ćemo sa njega čitati signale.
Dalje loop() promenimo u sledeće 4 linije koda:
if(digitalRead(2) == HIGH)
{
digitalWrite(13, HIGH);
}
else
{
digitalWrite(13, LOW);
}
gde smo u prvom redu pročitali vrednost stanja na pinu 2 odnosno tasteru. Kako je u slučaju kada je taster pritisnut na pinu 2 visok naponski nivo (videti šemu), kod za uključivanje LED diode će biti izvršen, dok će u suprotnom dioda da bude ugašena. Na slici ispod prikazan je rezultat aplikacije.

Sad pustite mašti na volju!