Tokrat se bomo srečali z mehanskim elementom, ki je zelo pogosto v uporabi v današnjem digitalnem svetu. Tipka najde svoje mestu uporabe v skoraj vsaki elektronski napravi npr. telefonih, računalnikih, TV daljincih itd. Spoznali bomo kako se tipko poveže s kontrolerjem in napisali bomo nekaj preprostih vrstic ukazov, ki se bodo izvedli ob pritisku na tipko. Uporabili bomo do sedaj že pridobljeno znanje iz prve vaje.
Navodilo: Ob pritisku na tipko LED diodo prižgemo in ko tipko spustimo LED diodo ugasnemo
Najprej si bomo pogledali kako se tipko poveže s kontrolerjem, nato bomo na kontroler priključili še LED diodo in na koncu bomo napisali programsko kodo, ki jo bomo praktično preizkusili.
V prvi vaji smo spoznali, da je LED dioda vezana na izhodni pin kontrolerja. Pri tipki je stvar nekoliko drugačna, ker tipka ni porabnik jo vežemo na digitalni pin kontrolerja, ki mu definiramo stanje vhoda. Saj mora tok ob pritisku na tipko steči, iz pozitivne sponke napajanja v sam kontroler. Pri LED diodi pa je tok stekel iz kontrolerja skozi LED diodo proti masi. Iz tega lahko sklepamo, da se tipko veže med napajanjem in digitalnim pinom kontrolerja. To teoretično drži, vendar se v praksi pojavi problem, ker stanje, ko tipka ni pritisnjena, ostaja visoko. Ni ravno na logični enici oz. na potencialu napajalne napetosti, je nekoliko nižje a vseeno dovolj visoko, da kontroler ne razume, da je tipka spuščena. Zato v vozlišču med napajanjem in tipko vežemo proti masi “pull down” upor R2. Velikost upora naj je med 1k in 10kR, upor je lahko 1/4W. Vezava LED diode in njenega pred upora R1 je ostala nespremenjena iz prve vaje. Pred upor LED diode naj ima upornost med 330R in 1kR. Celotno vezavo si oglejte na sliki spodaj.
Še slika vezave na bread boardu in na Arduino Uno platformi.
Sedaj je čas za pisanje programske kode. Postopek ponovimo iz prve vaje. Odpremo Arduino programsko okolje in med simbole za komentar zapišemo ime projekta in ostale avtorju pomembne podatke. Sam projekt shranimo na želeno lokacijo na disku računalnika.
/* Vaja 2: Tipka in LED dioda www.elektronika-start.com/arduino */
Sedaj moramo definirati in poimenovati uporabljene pine. Na pinu 13 imamo priključeno LED diodo, na pinu 8 pa je priključena tipka.
int Tipka = 8; int LEDdioda = 13;
Definirati moramo kakšni so izbrani digitalni pini (vhodi ali izhodi). Pin št. 13 je izhodni, saj ima na sebi priključeno LED diodo. Pin št. 8 pa je zaradi tipke vhodni.
void setup() { pinMode (Tipka, INPUT); pinMode (LEDdioda, OUTPUT); }
Sedaj, ko smo definirali vse potrebno lahko vstopimo v glavno LOOP zanko. V neskončni zanki se bo izvajal program, ki bo preverjal ali je tipka na pinu 8 pritisnjena in če je, bo prižgal LED diodo na pinu 13. Če tipka ni pritisnjena, potem ima LED dioda nizko logično stanje in ne sveti. Uporabili bomo pogojni stavek if else. Naloga if stavka je, da preverja ali je nek pogoj izpolnjen in če je se izvrši ukaz. Naloga else pa je, da če ni izpolnjen if del, se izvede ukaz za else-om.
Recept zapisa if else stavka je takšen:
void loop() { if (POGOJ == izpolnjen) { Izvedi UKAZ 1; } else { Izvedi UKAZ 2; } }
Po zgoraj navedenem receptu sestavimo našo kodo. Pogoj, ki mora biti izpolnjen je, da je stanje tipke visoko, kar pomeni, da je tipka pritisnjena. Če je ta pogoj izpolnjen je stanje na pinu LED diode visoko, drugače je stanje na pinu 13 nizko in LED dioda ne sveti.
void loop() { if (digitalRead(Tipka) == HIGH) { digitalWrite(LEDdioda, HIGH); } else { digitalWrite(LEDdioda, LOW); } }
Tako! Prišli smo do zadnje vrstice kode. Sedaj jo zložimo skupaj, preverimo in naložimo v kontroler AT mega328 na Arduino UNO platformi.
/* Vaja 2: Tipka in LED dioda www.elektronika-start.com/arduino */ int Tipka = 8; int LEDdioda = 13;
void setup() { pinMode (Tipka, INPUT); pinMode (LEDdioda, OUTPUT); }
void loop() { if (digitalRead(Tipka) == HIGH) { digitalWrite(LEDdioda, HIGH); } else { digitalWrite(LEDdioda, LOW); } }
Če nismo naredili napake zadeva deluje! Ob pritisku na tipko se LED dioda prižge, če pa tipko spustimo LED dioda ugasne.
Spodaj si lahko snamete delujočo kodo programa Vaje 2.
Program Vaja2: Tipka in LED dioda