Uploaded by Štěpán Brabenec

Tlačítko a různá délka stisku

advertisement
Tlačítko a různá délka stisku
Jak tlačítko funguje?
• Tlačítko je elektromechanický prvek
• Druhy tlačítek
• Normálně otevřené
• Normálně uzavřené
• Složení: kontakt, obal, pohyblivá část, (pružina)
• 2 stavy tlačítka:
• Rozpojený kontakt
• Sepnutý kontakt
Zapojení tlačítka
Aby mohl počítač reagovat na stisknutí
tlačítka, tlačítko připojíme na pin Arduina,
který nastavíme jako digitální vstup.
Tlačítko musíme zapojit tak, aby byla v
klidu na daném vstupu logická 0 a když je
sepnuté logická 1.
Zapojení tlačítka
Musíme zajistit, aby v klidovém stavu bylo na
vstup připojeno 0V, aby nedošlo k falešnému
měření hodnot. Kdybychom to neřešili, na
vstupu by nám skákaly náhodně velké hodnoty.
To se řeší použitím pull-down rezistoru, či
použitím interního rezistoru Arduina a funkce
INPUT_PULLUP.
Pull-down rezistor
• Je rezistor, který zapojíme mezi vstupní pin a zem.
• Tlačítko je připojeno mezi kladnou svorku zdroje (5V) a vstup.
• Pokud je tlačítko v klidovém stavu, je vstup mikrokontroleru přes
rezistor spojen se zemí (je na něm 0V).
• Pokud je tlačítko stisknuté, tak je na vstup připojeno 5V zdroje. To je
ovšem připojeno i na pull-down rezistor, přes který tak prochází proud
do země.
• A to nám zajišťuje konzistentní vypisování logické 0 v klidovém stavu
tlačítka.
Zapojení tlačítka s pulldown rezistorem
• Potřebujeme 3 vodiče
• První dva vodiče připojíme do dvou
vertikálních řad po straně
nepájivého pole. Tím si
zpřístupníme GND a +5V napájení.
• Třetí vodič na jednom konci
zapojíme do digitálního pinu 2,
druhý konec patří do jednoho z pinů
tlačítka.
• Stejný pin tlačítka bude propojen
přes pull-down rezistor ke GND
• Zbývající pin je připojen k +5V.
Kód pro čtení hodnot na
tlačítku s pull-down rezistorem
• Při stisku nám počítač vypisuje
logickou 1
• V klidovém stavu tlačítka se
vypisuje logická 0
Funkce INPUT_PULLUP
• Díky této funkci lze zapojit tlačítko bez pull-down rezistoru.
• Využívá se pull-up rezistoru, což je interní rezistor, který se nachází v
pinu Arduina uvnitř čipu. Ten je připojen na VCC (PULL-UP).
• Arduinu sdělíme, že hodláme využít právě tohoto rezistoru pomocí:
• Při použití funkce INPUT_PULLUP se vypisují hodnoty naopak – stisknutí
tlačítka připojí pin ke GND - vypisuje se logická 0, v klidovém stavu
tlačítku se vypisuje logická 1.
Zapojení tlačítka bez pulldown rezistoru
• Potřebujeme 2 vodiče
• Prvním vodičem připojíme tlačítko
na GND.
• Druhým vodičem připojíme tlačítko
k Arduinu na digitální pin 2.
• Když je tlačítko nestlačené, mezi
nohami tlačítka neexistuje žádné
spojení.
• Jelikož je interní pull-up rezistor na
pinu 2 aktivní, při otevření
(nestlačení) tlačítka čteme HIGH (1).
Když je tlačítko zavřené, spojení se
zemí je úplné a čteme LOW (0).
Kód pro čtení hodnot na tlačítku
bez pull-down rezistoru
• Při stisku nám počítač vypisuje
logickou 0
• V klidovém stavu tlačítka se
vypisuje logická 1
Měření doby stisku tlačítka
K měření doby stisku tlačítka využijeme funkce pulseIn();
pulseIn();
pulseIn(pin, value, timeout);
pin – číslo pinu (v
našem případě číslo
pinu, na kterém je
zapojeno tlačítko).
Parametry funkce:
value – na jakou
hodnotu má reagovat
(HIGH/LOW).
timeout – (volitelná)
max.doba čekání na
konec pulzu (ms).
pulseIn();
• Jak funguje funkce:
• Čte „pulz“ na pinu.
• Kdyby byla zadaná hodnota v pulseIn() „HIGH“, pulseIn()
čeká, než se na pinu změní hodnota z „LOW“ na „HIGH“,
poté spustí časovač a čeká, než se hodnota změní opět na
„LOW“.
• Funkce nám vrací délku pulzu v milisekundách.
• Pokud funkce nepřečte žádný „pulz“ v námi zadaném
„timeoutu“, vrátí nám 0.
• Funkce měří „pulzy“ mezi 10 milisekundami a 3 minutami.
Kód pro čtení délky stisku
tlačítka
• Po stisku a následném puštění
tlačítka nám počítač vypíše
dobu, po kterou bylo tlačítko
stisknuté v milisekundách.
Díky za pozornost!
Download