Programový vstup čili tlačítka

Doposud jsme z arduina pouze blikali LED diodami. Lze tak říci, že jsme používali piny arduina pouze pro programový výstup. Piny arduina samozřejmě můžeme použít i jako programový vstup. Co je ale myšleno slovy programový vstup?

>>Programový vstup je myšlen jako možnost lidského uživatele přímo vstupovat do činnosti programu. V našem případě například stiskem tlačítka.<<

Nejčastěji se vyskytující tlačítka ve světě arduina

Tlačítko samo o sobě není nijak složitý elektronický prvek. Funguje tak, že stiskem propojuje dvě části obvodu a tím (je-li program správně poskládán) aktivuje část programu v desce arduina. Jestliže tlačítko pustíme, vrátí se do původního stavu s tím, že na tento návrat může, ale také nemusí, program reagovat.

V případě desky arduina stiskem tlačítka vždy přivádíme -/GND na digitální piny desky. Tyto piny jsou samozřejmě v programu definovány jako vstup, aby deska věděla, jak k nim přistupovat. Než ale postoupíme dále a zkusíme si zapojit obvod s tlačítky je třeba si trochu popovídat o příkazech, které použijeme dále v programu. Některé z nich později probereme podrobněji.

INPUT_PULLUP

Tento příkaz nalezneme ve voidu „setup“ jako jeden z parametrů ve funkci pinMode. Znamená to, že pin ve kterém je tento příkaz použit je programovým vstupem a připojuje se na něj tlačítko.

Popis funkce pinMode

Proměnná

Proměnná je vyhrazené místo v paměti, které má jméno. Programujeme-li arduino musíme v programu i říci, jaký typ proměnné si přejeme (jaký typ dat do něj budeme vkládat). Pro různý typ dat totiž arduino vyhrazuje různou velikost paměti. V našem programu deklaruji proměnnou, kterou jsem pojmenoval tlacitko. Klíčovým slovem int programu říkám, že obsahem proměnné bude číslo – integer a rovnou do proměnné pomocí rovnítka vkládám stav, který arduino načte na pinu 7 – čili na tlačítku. Tento stav může nabýt hodnot 1, nebo 0. Proměnná tlacitko bude mít stav „0“, pokud bude tlačítko stisknuté a 1, pokud stisknuté nebude.

Deklarace proměnné tlacitko

Podmínkový příkaz

Podmínkové příkazy jsou soustavou příkazů, které nám umožňují upravovat chování programu v reakci na nějaký stav. Díky podmínkovému příkazu může program zareagovat na stisknutí tlačítka a provést činnost, která je požadována jak v reakci na stisk tlačítka, tak v reakci na to, když tlačítko stisknuté není.

Klíčovými slovy pro podmínkové příkazy jsou příkazy if = jestliže, else if = nebo jestli, else = nebo.

Podmínkové příkazy mají dvě části. Hlavičku (začátek a ta část co je v kulatých závorkách) – ve které se řeší co je podmínkou proto, aby se mohla provést činnost popsaná v kódu za hlavičkou a tělo (část podmínky která je vložená mezi složené závorky) podmínkového příkazu ve kterém je vloženo co se má provést, pokud je splněna podmínka. Podmínka v hlavičce je řešena porovnáváním proměnné a hodnoty v ní vložené. Pokud hodnota vložená v podmínce odpovídá stavu, který je v závorce, provede se část programu, který je zapsán v těle podmínky.

Podmínkový příkaz

Zapojení

Zapojte si desku arduina do následující sestavy. Sběrnice na kontaktním poli by měla být propojena s GND (černé kablíky). Tlačítko by mělo být zapojené tak, aby stisknutím přivádělo GND na pin 7 na desku. Piny 2 a 3 by měly být propojené s anodou LED diody (delší vývod).

Zapojení soustavy dvou LED, ochranných odporů, tlačítka a desky arduino UNO R3

I pro toto zapojení můžeme sestavit pravdivostní tabulku.

Programový krokStav tlačítkastav pinu 2stav pinu 3
Programový krok 10 – stisknuto01
Programový krok 21 – rozpojeno10
Pravdivostní tabulka pro program „Tlačítko“

/*
Program pro obsluhu stisku tlačítka
*/

//Nastavení desky – inicializace pinů
//Piny 2 a 3 jsou výstupy na LED, pin 7 je určen pro vstup z tlačítka

void setup() {
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(7,INPUT_PULLUP);
}


//Provedení programu – spuštění v nekonečné smyčce

void loop() {

//program inicializuje proměnnou tlacitko a vkládá do ní hodnotu, kterou načte na vstupu z pinu 7

int tlacitko = digitalRead(7);


//v podmínkovém příkazu program reaguje na na hodnotu, která je aktuálně obsahem proměnné tlacitko
//je-li stav 0 je splněna první část podmínky a rozsvítí se LED na pinu 2, není li stav 0 uplatní se druhá část podmínky – rozsvítí se LED na pinu 3

if (tlacitko==0)
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
}
else
{
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
}

}
Program tlacitko

Úkoly:

1, sestav si zapojení popsané v lekci a přeprogramuj ho tak, aby se v případe stisku tlačítka rozsvěcela LED na pinu 3 a v případě, že tlačítko nebude stisknuté zase LED na pinu 2.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *