Tipkala i sklopke
Tipkalo, sklopka, mikroprekidač, sklopka s kuglicom i reed sklopka: kako rade, kako ih spojiti na Arduino s pull-up otpornikom i zašto kontakti poskakuju.

Što su tipkala i sklopke?
Tipkalo i sklopka rade isto: spajaju i razdvajaju dva metalna dijela, kontakte. Kad su kontakti spojeni, struja teče. Kad su razdvojeni, ne teče. Razlikuju se po tome što se dogodi kad ih pustiš:
- Tipkalo spaja kontakte samo dok ga držiš. Kad ga pustiš, opruga ga vrati. Tipkala su, na primjer, tipka zvona na vratima, tipke na tipkovnici i tipke A i B na micro:bitu.
- Sklopka ostaje onako kako si je namjestio, dok je ponovo ne pomakneš. Sklopke su, na primjer, ona za svjetlo u sobi i ona kojom uključuješ robota Maqueen. U svakodnevnom govoru sklopku često zovemo i prekidač.
Neke sklopke ne pomiče ruka, nego nešto drugo: kuglica koja udari u polugu, nagib ili magnet. Takve su sklopke najjednostavniji senzori.
Kako ih prepoznati?

- Malo tipkalo (6 × 6 mm) ima četiri nožice, ali samo dva kontakta. Nožice 1 i 2 spojene su unutra, kao i nožice 3 i 4. Pritisak spoji par 1 i 2 s parom 3 i 4. Tipkalo zato na breadboard stavljamo preko srednjeg utora, kao na stranici Breadboard. Ako nisi siguran koje su nožice spojene, provjeri multimetrom.
- Mikroprekidač je malo tipkalo s polugom. Za pritisak mu treba vrlo mala sila, a kontakti preskoče uz tihi klik. Ima tri nožice:
- COM (od engleskog common, zajednički) je nožica koja se uvijek koristi,
- NO (normally open, inače otvoren) je spojen s COM dok je poluga pritisnuta,
- NC (normally closed, inače zatvoren) je spojen s COM dok poluga nije pritisnuta.
- Sklopka s kuglicom (senzor nagiba) je mali metalni valjak s kuglicom unutra. Dok stoji uspravno, kuglica leži na dnu i spaja kontakte. Kad je nagneš ili protreseš, kuglica se otkotrlja i kontakti se razdvoje.
- Reed sklopka ima dvije tanke metalne pločice u staklenoj cjevčici. Kad joj približiš magnet, pločice se privuku i dodirnu. Staklo je tanko: nožice ne savijaj tik uz cjevčicu, nego malo dalje.
Ispod svakog dijela je njegov simbol. Na simbolu tipkala crtica s tipkom na vrhu kaže da kontakt drži ruka. Reed sklopka ima obris staklene cjevčice.
Što je u tipkalu?

- Tipka je plastični gumb koji pritišćeš prstom.
- Metalni poklopac drži sve dijelove zajedno.
- Metalna kupola je tanka savijena pločica. Kad je pritisneš, naglo se udubi uz klik, a kad je pustiš, sama skoči natrag. Ona je ujedno i opruga.
- Kontakti: rub kupole uvijek leži na vanjskim kontaktima, a srednji kontakt kupola dodirne samo dok je pritisnuta.
- Nožice su spojene s kontaktima. Vanjski kontakt ide na jedan par nožica, srednji na drugi.
Na desnoj slici tipkalo je pritisnuto. Kupola se udubila i dodiruje srednji kontakt, pa struja teče od jednog para nožica preko kupole do drugog.
Gdje ih koristimo?
- Na micro:bit radionici tipkalo zatvara strujni krug u lekciji Breadboard laboratorij. U lekciji Prekidači i branik isprobavamo tipkalo, mikroprekidač i sklopku s kuglicom, a mikroprekidač postaje branik robota Maqueen.
- Na Arduino radionici tipkala čitamo u lekciji Tipkala kako treba, a mnogo njih na malo pinova u lekciji Mnogo prekidača na malo pinova. U lekciji Prepoznavanje kuglice mikroprekidač broji udarce kuglice, a sklopka s kuglicom pazi da igrač ne gura aparat.
- U našem fliperu tipke pokreću palice i igru, mikroprekidači su ispod meta, a četiri sklopke s kuglicom čine tilt.
Tipkala i sklopke na Arduino radionici
Od ovog mjesta stranica je za Arduino radionicu.
Pin ne smije biti u zraku
Dok tipkalo nije pritisnuto, pin na koji je spojeno nije spojen ni s čim. Takav pin u zraku čita nasumično 0 ili 1 (zabluda 10). Zato pin uvijek spajamo i preko otpornika, koji ga drži u poznatom stanju dok tipkalo miruje.

- Pull-up otpornik (lijevo) spaja pin s 5 V. Otpušteno tipkalo daje
HIGH, a pritisnuto spaja pin s GND i dajeLOW. Arduino Uno takav otpornik ima ugrađen, od 20 do 50 kΩ. Uključuje gapinMode(pin, INPUT_PULLUP), pa na breadboard ne stavljamo ništa osim tipkala. - Pull-down otpornik (desno) spaja pin s GND, a tipkalo je prema 5 V. Pritisnuto tipkalo daje
HIGH. Uno ugrađene pull-down otpornike nema, pa stavljamo vanjski od 10 kΩ, kao u lekciji Dva semafora na križanju.
Mi tipkala spajamo s pull-up otpornikom: treba manje dijelova, a na breadboard ne moramo dovesti 5 V. Dok je tipkalo pritisnuto, kroz ugrađeni otpornik teče samo oko 0,14 mA. Kako se tipkalo čita u programu, piše u Vježbi 1 lekcije o tipkalima.
Poskakivanje kontakata
Kad se metalni kontakti udare jedan o drugi, odskoče, kao lopta koja padne na pod, i tek se nakon nekoliko milisekundi smire. Isto se događa kad ih pustiš. Čovjek to ne može primijetiti, ali Arduino tipkalo pročita mnogo puta u svakoj milisekundi i vidi svaki skok:

Smirivanje kondenzatorom
Kontakte možemo smiriti i bez programa: kondenzatorom od 100 nF (oznaka 104) izravno preko nožica tipkala. Graf pokazuje napon na pinu D2 pri jednom pritisku i otpuštanju, s ugrađenim pull-up otpornikom. Skokovi kontakata su primjer. U žutom dijelu tipkalo je pritisnuto, a crtkane crte su granice od 3 V i 1,5 V: iznad 3 V Uno sigurno čita 1, a ispod 1,5 V sigurno čita 0.

- Pritisak: prvi dodir kontakata isprazni kondenzator u trenu. Dok kontakti poskakuju, pull-up otpornik ga puni, ali sporo: u razmaku od 0,3 ms napon naraste samo do 0,4 V, daleko ispod 1,5 V. Arduino vidi jedan čist pritisak.
- Otpuštanje: svaki ponovni dodir kondenzator opet isprazni. Napon počne rasti tek kad se kontakti smire i 3 V prijeđe 3,2 ms poslije zadnjeg skoka.
Brzinu punjenja određuje vremenska konstanta τ = R · C = 35 kΩ · 100 nF = 3,5 ms (kako se kondenzator puni, objašnjava stranica Kondenzator). Ugrađeni otpornik može biti od 20 do 50 kΩ, pa je τ od 2 do 5 ms. To je dovoljno za tipke, ali otpuštanje uvijek kasni nekoliko milisekundi. Na radionici zato smirujemo programom, u kojem vrijeme sami biramo.
NO ili NC?
Mikroprekidač možemo spojiti nožicama COM i NO ili COM i NC. Program može čitati oba spoja, ali oni se razlikuju kad nešto pođe po zlu. Ako se žica do mikroprekidača spojenog na NO prekine, Arduino misli da prekidač nitko ne pritišće, i to nitko ne primijeti. Kod spoja na NC prekinuta žica izgleda kao stalni pritisak, pa je odmah vidljiva. Tilt u lekciji Prepoznavanje kuglice zato prekinutu žicu prepoznaje kao predugo otvorenu sklopku.
Sklopke koje čuvaju nešto važno, kao one na vratima perilice rublja ili na kraju puta nekog stroja, uvijek spajamo tako da prekid žice zaustavi stroj.
Mnogo tipkala na malo pinova
Uno ima samo 18 slobodnih pinova, a u fliperu ih osim prekidača trebaju i zaslon, lampice i zvuk. Tipkala zato spajamo u matricu: redove i stupce, tako da 12 tipki treba samo 7 pinova. Kako matrica radi i zašto joj trebaju diode, objašnjava lekcija Mnogo prekidača na malo pinova.
Koliku struju podnose kontakti?
Kontakti se troše, a jača struja ih brže uništi: pri razdvajanju između njih preskoči mala iskra. Okvirne vrijednosti za dijelove kakve koristimo:
| Dio | Najveća struja kontakata |
|---|---|
| tipkalo 6 × 6 mm | oko 50 mA na 12 V |
| reed sklopka | oko 0,5 A, ali manje kad je teret zavojnica |
| mikroprekidač s polugom | nekoliko ampera |
Prave vrijednosti navedene su u tehničkoj dokumentaciji (datasheetu) svakog dijela. Tipkalo i reed sklopka zato samo javljaju Arduinu da je nešto pritisnuto. Motor, zavojnicu ili jaku žaruljicu pali tranzistor, a ne kontakt tipkala.
Što smo naučili?
- Tipkalo spaja kontakte samo dok ga držiš, a sklopka ostaje kako si je namjestio.
- Malo tipkalo ima četiri nožice: 1 i 2 te 3 i 4 su spojene unutra. Mikroprekidač ima COM, NO i NC.
- Pin s tipkalom treba pull-up ili pull-down otpornik. S
INPUT_PULLUPpritisnuto tipkalo dajeLOW. - Kontakti poskakuju nekoliko milisekundi. Smirujemo ih programom ili kondenzatorom.
- Kontakt spojen na NC javlja i prekinutu žicu. Tipkalo samo javlja, a jake struje uključuje tranzistor.
Mali kviz
1. Koja je razlika između tipkala i sklopke?
2. Malo tipkalo ima četiri nožice. Zašto ga stavljamo preko srednjeg utora breadboarda?
3. Mikroprekidač je spojen nožicama COM i NC. Kada su kontakti spojeni?
4. Tipkalo je spojeno između D2 i GND, s INPUT_PULLUP. Što pročita digitalRead(2) dok je pritisnuto?
LOW. Pritisnuto tipkalo spaja pin s GND, a dok je otpušteno, ugrađeni pull-up otpornik drži pin na HIGH.5. Zašto program bez smirivanja jedan pritisak broji kao nekoliko?
6. Zašto motor ne palimo izravno tipkalom 6 × 6 mm?