Arduino základy – 8. tlačítko
Tlačítka či spínače slouží v obvodu k tomu, aby při stisknutí spojili, nebo rozpojili dva body obvodu. V tomto příkladu si ukážeme program, který při stlačení tlačítka rozsvítí vestavěnou LED na pinu 13.
Obsah článku:
Potřebný hardware
- Arduino
- tlačítko či spínač
- rezistor s odporem 10k ohm
- nepájivé kontaktní pole
- propojovací vodič
Obvod
První dvojici vodičů – červený a černý – připojte do dvou vertikálních řad po straně nepájivého kontaktního pole, čímž si zpřístupníte GND a +5V po obvodu. Třetí vodič na jednom konci zapojte do digitálního pinu 2, druhý konec k jednomu z pinů tlačítka. Stejný pin tlačítka bude také propojen s pull-down rezistorem (10k ohm) a GND. Zbývající pin je připojen k +5V. Když je tlačítko otevřené (nestlačené), tak mezi piny tlačítka neexistuje žádné spojení, takže digitální pin 2 je připojen k zemi (přes pull-down rezistor) a při čtení funkcí diitalRead() je na něm hodnota LOW. Když je tlačítko zavřené (stlačené), vytvoří se spojení mezi piny, čímž je digitální pin 2 připojen k +5V. V tomto případě na něm přečteme hodnotu HIGH. Tento obvod můžete rovněž zapojit opačným směrem, a to pomocí pull-up rezisoru, jež bude na vstupu udržovat úroveň HIGH. Při stlačení tlačítka se změní na LOW. Pokud tak učiníte, program se bude chovat opačným způsobem – LED bude v normálním stavu svítit a při stlačení tlačítka se vypne. Pokud odpojíte digitální pin od všech komponentů, může se stát, že LED začne chaoticky blikat. Důvodem je ten, že pin reaguje i na malé změny elektromagnetického šumu v jeho koloí – může tedy náhodně oznamovat buď HIGH nebo LOW. Právě kvůli tomu je v obvodu pull-down či pull-up rezistor nepostradatelný.
Schéma
Kód
/*Tlačítko Zapíná a vypíná LED připojenou k digitálnímu pinu 13 při stlačení tlačítka zapojeného do pinu 2. Obvod: * LED zapojená od pinu 13 k zemi * tlačítko zapojené do pinu 2 od +5V * 10k ohm rezistor zapojený mezi pinem 2 a GND * Poznámka: na většině Arduin je LED k pinu 13 již připojena. vytvořeno 2005 autorem DojoDave <http://www.0j0.org> upraveno 30. srpna 2011 Tom Igoe Příklad tohoto kódu je veřejnou doménou. http://www.arduino.cc/en/Tutorial/Button */ //konstanty použité k nastavení čísel pinů se během programu nezmění const int buttonPin = 2; // číslo pinu tlačítka const int ledPin = 13; // číslo pinu LED int buttonState = 0; // proměnná pro čtení stavu tlačítka void setup() { // inicializujte pin LED jako výstup: pinMode(ledPin, OUTPUT); // inicializujte pin tlačítka jako vstup: pinMode(buttonPin, INPUT); } void loop(){ // Přečte stav hodnoty tlačítka: buttonState = digitalRead(buttonPin); // zkontroluje, zda-li je tlačítko stlačené. // Je-li tomu tak, nastaví buttonState na HIGH: if (buttonState == HIGH) { // zapne LED: digitalWrite(ledPin, HIGH); } else { // vypne LED: digitalWrite(ledPin, LOW); } }
Přeloženo z https://arduino.cc/en/Tutorial/Button a mírně upraveno.
- Teleball: Arduino programování pro retro nadšence - 12.10.2015
- Arduino třídička barevných bonbonů - 30.9.2015
- Výškový meteorologický balon s čichem pro atmosféru - 18.9.2015