TIPKALO (PUSH BUTTON)

ŠTO SU?
Tipkalo je najčešće korišteni switch u elektronici i nema potreba da se dugo zadržavamo na tome što je. Vrlo kratko, s jednom sličicom, prikazati ćemo što i kako radi, a zatim ga odmah idemo spojiti na Dasduino.
PULL-UP OTPORNIK
Svako tipkalo moramo spajati preko pull-up ili pull-down otpornika na Dasduino. Već smo pričali o pull-up otpornicima i floatanju pinova Dasduina. Provjerimo što se događa kada tipkalo ima, odnosno što kada nema ovog otpornika.
Tipkalo lijevo spojimo na +5V koje će se pri pritisku tipke proslijediti na digitalni pin 7. Tipkalo desno spajamo na pin 6, ali dodajemo mu 10k otpornik kako prikazuje slika dolje.
Ono što očekujemo je da će pinovi 7 i 6 Dasduina imati očitanja LOW(0) kada nisu aktivirano, odnosno HIGH(1) kada su tipke pritisnute. Provjerimo što se u stvarnosti događa.
Napišimo mali sketch koji će čitati stanja digitalnih pinova 7 i 6.
int
lijevoT = 7;
// tipkalo lijevo, bez pull-up otpornika, je na pinu 7
int
desnoT = 6;
// tipkalo desno, s pull-up otpornikom, je na pinu 6
void
setup
()
{
pinMode
(lijevoT,
INPUT
);
pinMode
(desnoT,
INPUT
);
// definiramo ih kao ulazne pinove
Serial.begin(9600);
// započinjemo serijsku komunikaciju, preko koje ćemo čitati stanje pinova
}
void
loop
()
{
// ispisujemo stanja pinova 7 i 6
Serial.write(
"Tipkalo lijevo: "
);
Serial.write(
digitalRead
(lijevoT) );
Serial.write(
"\t"
);
Serial.write(
"Tipkalo desno: "
);
Serial.writeln(
digitalRead
(desnoT) );
}
TIPKALO KAO AKTIVATOR
Tipkalo želimo koristiti na način da kada je pritisnuto/aktivirano upali LED diodu na 13om pinu. Nema problema:
TIPKALO KAO PREKIDAČ
Tipkalo možemo koristiti i kao prekidač. Koristiti ćemo boolean funkciju te pritiskom na tipku na pinu 6 prebacivati stanje iz LOW(0) u HIGH(1) i obratno. To radimo ovako:
TIPKALO KAO BROJAČ
Koristiti ćemo varijablu brojač koju ćemo povećavati za 1 prilikom svakog novog pritiska tipkala. Ovdje moramo pripaziti na pojavu debouncing. Radi se o tome da koliko god mi brzo pustili tipku kod će nekoliko puta očitati da je aktivna te nepotrebno povećavati brojač. To možemo riješiti pomoću funkcije delay() koja će zaustaviti kod dok mi ne stignemo pustiti tipkalo ili malo sofisticiranije kao u sketchu ispod: