Začíname s Arduinom #02 Riadenie LED tlačidlom

Publikoval Silvia Al Hafoudh

V predošlom príklade sme si ukázali prácu s digitálnym výstupom. Dnes sa budeme venovať digitálnemu vstupu.

Tlačidlo vieme použiť ako najjednoduchší snímač pevnej prekážky. Keď robot narazí na prekážku, stlačí sa tlačidlo. Tento náraz budeme signalizovať rozsvietením internej LEDky.

Zapojenie tlačidla

 

Zapojenie tlačidla
Zapojenie s pull down rezistorom

 

Zo schémy si vieme povedať že pri rozopnutom tlačidle je cez 10KΩ rezistor na náš vstupný pin privedená zem, teda logická 0. Cez zatlačené tlačidlo vznikne na rezistore rozdiel potenciálov a na vstup privedieme logickú 1 (5V).

Zdanlivo by to mohlo fungovať aj bez rezistora. Ten je však veľmi dôležitý. Bez neho by pri vypnutom tlačidle na vstup nebola privedená žiadna hodnota, respektíve hodnota náhodná. Celé by to občas mohlo ale aj nemuselo fungovať, prípadne by ti LEDka možno aj blikala. Takémuto zapujeniu rezistora hovoríme pull-down. Existuje samozrejme aj opačná možnosť pull-up rezistor kde bude v kľude privedená logická 1. 

Program

Aby si si nemusel pamätať čo máš na ktorom pine uložené zadefinujeme ich ako konstanty. Okrem toho použijeme ešte jednu premennú na uloženie aktuálneho stavu vstupu.

 

Const int ledPin=13;

Const int sensorPin = 2;

int sensorState = 0;

 

Rovnako, ako v predošlom príklade, vo void setup() inicializujeme digitálne piny. Pre LEDku výstup a pre tlačidlo vstup.

 

pinMode(ledPin, OUTPUT);

pinMode(sensorPin, INPUT);

 

A môžeme prejsť na samotný kód. V cykle najprv kontrolujeme aktuálny stav tlačidla. V podmienke if-else rozhodneme o tom že ak(if) ma sensorState hodnotu HIGH, teda tlačidlo je práve stlačené, LEDka má svietiť. Inak má byť zhasnutá.

Celý program bude vyzerať takto:


 

Program na stiahnutie: arduino_button.ino

Pri tomto programe si môžeš skúsiť aj opačné zapojenie s pull-up rezistorom. Cez tlačidlo privedieš zem a rezistor dáš na 5V. Celé to bude fungovať opačne a pri stlačenom tlačidle LEDka zhasne.

pull up zapojenie tlacidla

Zapojenie s pullup rezistorom

Interný pullup

A na záver si prezradíme ešte jeden trik. Niektoré vývojové platformy, patrí medzi ne aj Arduino od verzie 1.0.1, ponúkajú možnosť nastaviť interný pullup rezistor. Je to mód pinu, vďaka ktorému nepotrebuješ zapojiť hardvérový rezistor, na pin bude zaručene privedená log. 0 a tlačidlo môžeš zapojiť na priamo. Interný pullup nastavíš jednoducho pomocou príkazu:

pinMode(pin, mode);

Ako doteraz parameter pin označuje číslo pinu ktorý bude slúžiť ako výstup. Parameter mode, ktorý sme doteraz nastavovali ako INPUT (vstup) alebo OUTPUT (výstup) tentoraz nastavíme ako INPUT_PULLUP (výstup s pullup rezistorom). Pre naše tlačidlo to bude vyzerať nejako takto:

pinMode(2, INPUT_PULLUP); 

Pripojenie tlačidla k Arduinu s použitím interného pullup rezistora


Zdieľať tento článok



← Staršie príspevky Novšie príspevky →