Close

Arduino základy – 8. tlačítko

Zapojení tlačítka k Arduinu pomocí breadboardu

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.

Potřebný hardware

  • Arduino
  • tlačítko či spínač
  • rezistor s odporem 10k ohm
  • nepájivé kontaktní pole
  • propojovací vodič

Obvod

button (1)

Zapojení tlačítka

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

button_schem

Schéma zapojení tlačítka

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.

Kamila Ježková

Napsat komentář