Dugme, Tipka ili Prekidač u Arduino svijetu (Push button – Pull-up / Pull-down )
U ovoj lekciji ćemo objasniti:
- Šema povezivanja i kod za kontrolu dugmeta
- Specifikacija materijala
Šema povezivanja i kod za kontrolu dugmeta
Nezaobilazna stvar u većini projekata je unos podataka. Jedna od najčešćih komponenti za unos podataka je dugme (eng. Pushbutton). Tastatura je sastavljena od određenog broja dugmića, kao i kućni telefon i mnogi drugi uređaji koje svakodnevno koristimo. U nastavku ćete naučit kako se koristi dugme i svaki put kada pritisnete dugme na nekom uređaju sjetit ćete se ove lekcije.
Na slici ispod prikazana je šemu dugmeta.
Kao što možete vidjeti na slici iznad krajevi 1 i 3 su uvijek povezani, kao i krajevi 1 i 4. U slučaju kada dugme nije pritisnuto nema veze izmedju dva kraja.
Pa da krenemo sa primjerom broj 1:
Na slici iznad je prikazana najjednostavnija šema i kod, gdje smo koristili interni otpornik komandom INPUT_PULLUP. Također, smo postavili i jedan if uslov. Obzirom da smo koristili komandu digiralRead očekujemo dva digitalna stanja, a to su ili 0 ili 1. Nakon što smo prenijeli kod u kontroler na serial monitoru možemo vidjeti ispis na osnovu zadatog if uslova. Zbog same šeme i korištenja INPUT_PULLUP (internog otpornika), kao rezultat dobit ćemo da kada dugme nije pritisnuto stanje će biti 1 i prikazat ce nam ispis 1 = dugme nije pritisnuto, a u slučaju kada ga pritisnemo stanje će biti 0 i prikazat će nam se ispis 0 = dugme je pritisnuto. Zbog delay-a od 100 milisekundi, u jednoj sekundi ćemo imati 10 očitanja.
Korištenje pull up/down otpornika
U Primjeru broj 1 mi nismo koristili eksterni otpornik jer smo koristili komandu INPUT_PULLUP (interni otpornik). Kako Vas ne bi zbunjivalo, na samom početku objasnit ćemo par osnovnih primjera koji će Vas stalno pratiti.
U Primjeru broj 1 umjesto pinMode(BUTTON_PIN, INPUT_PULLUP) upišete samo pinMode(BUTTON_PIN, INPUT) i vidjet ćete da će se rezultati u serial monitoru nekontrolisano ispisivati između 1 i 0 neovisno o Vašem pritisku.
U čemu se krije problem?
Kao što smo u prvim uvodnim lekcijama govorili vrijednost koju očitava Arduino je između 0V i 5V. Ako je vrijednost blizu 0V, dobit ćete LOW ili 0 u svom kodu, a ako je blizu 5V, dobit ćete vrijednost HIGH ili 1.
Ako ne stavimo nikakav otpornik, vrijednost bi mogla “varirati” između 0 V i 5 V, što vam daje nasumične i čudne rezultate. Dodavanjem otpornika mi kontrolišemo zadano stanje na LOW ili HIGH. A kada pritisnete gumb stanje će postati suprotno.
Dakle, ovdje imamo 3 opcije:
- Nema otpornika, ali upotrijebite INPUT_PULLUP način za aktiviranje unutarnjeg pull-up otpornika (pritiskom dugmeta dobit ćemo stanje 0V – LOW)
Mi smo koristili ovaj primjer i zbog toga nam je 0 = dugme pritisnuto. - Dodajte pull-up otpornik (zadana vrijednost: HIGH – pritiskom na dugme dobivamo LOW)
- Dodajte pull-down otpornik (zadana vrijednost: LOW – pritiskom na dugme dobivamo HIGH)
Opcija broj 1. INPUT_PULLUP
Iz opisa možemo zaključiti da smo u primjeru broj 1 kotistili interni otpornik kao pull-up otpornik tako da ga nećemo dodatno objašnjavati.
Opcija broj 2. pull-up otpornik
Šema i kod:
Kao što možete vidjeti na slici iznad, kod je isti, samo smo promijenili način rada u funkciji pinMode() i dodali smo jedan otpornik od 10kΩ Ohm. Umjesto INPUT_PULLUP koristili samo samo INPUT. Ugradili smo vanjski otpornik vanjski otpornik, tako da nemamo potrebe za internim.
Opcija broj 3. pull-down otpornik
Šema i kod:
Kao što možete vidjeti na šemi i u kodu, napravili smo vrlo male izmjene kako bi postigli pull-down rješenje. Zbog same logike tj. stanje 1 ili HIGH označava da je dugme pritisnuto, dok stanje 0 ili LOW da dugme nije pritisnuto, ova metoda se najčešće koristi.
Cilj ovoga tutorijala je prikazati osnovne funkcije i karakteristike dugmeta, kako bi se u narednim lekcijama što više bazirali na naprednije primjere.
Specifikacija materijala:
- 1x Arduino Uno
- 1x Breadboard
- 1x Dugme / Pushbutton
- 1x 10kΩ otpornik
- 4x Komunikacijski kablovi