Spínání diody a čtení hodnoty tlačítka

Popište použití funkcí pinMode, digitalWrite a digitalRead. Vysvětlete připojení tlačítka metodou PullUp, PullDown a co se bude dít při připojení bez rezistoru. Jaká je maximální proudová zátěž na digitálním výstupu?

Jan Bednář

pinMode()

Použití

Přiřadí danému pinu funkci vstupu (INPUT) nebo výstupu (OUTPUT).

Syntax

pinMode(pin, mód)

Parametry

pin

Číslo pinu, jejž chceme nastavit

mód

INPUT Nastaví pin jako vstup, tedy pro případ, že chceme, aby byl pin zdrojem informací.

OUTPUT Nastaví pin jako výstup, tedy pro případ, že chceme, aby pin poskytoval elektrický proud, pokud mu to přikážeme.

INPUT_PULLUP Používáme v případě, že na daný pin zapojujeme tlačítko. Nastaví pin jako vstup. Pokud není tlačítko sepnuté, proudí proud do pinu přes rezistor přímo z desky a na pinu čteme hodnotu HIGH. Ve chvíli, kdy tlačítko sepneme, přestane proud proudit do pinu a čteme hodnotu LOW.

INPUT_PULLDOWN

void loop(){

Příklad

void setup(){ pinMode(3, OUTPUT); // nastaví pin číslo 3 jako pin výstupní }

digitalWrite()

Použití

Pokud je pin nastaven jako výstup, můžeme touto funkcí měnit napětí na pinu. Napětí bude 0 V nebo 5 V (případně 3,3 V pro určitý typ desek).

Syntax

digitalWrite(pin, hodnota)

Parametry

pin

Číslo pinu, na němž chceme měnit napětí.

hodnota

HIGH Nastaví na daném pinu napětí na 5 V (příp. 3,3 V).

LOW Nastaví na daném pinu napětí na 0 V.

Příklad

void setup(){ pinMode(3, OUTPUT); // nastaví pin číslo 3 jako pin výstupní digitalWrite(3, HIGH); // nastaví napětí na pinu číslo 3 na hodnotu 5 V }

digitalRead()

Použití

Přečte hodnotu HIGH nebo LOW z daného pinu. Vrací tuto hodnotu.

Syntax

digitalRead(pin)

Parametry

pin

Číslo pinu, z něhož čteme hodnotu.

Příklad

int x = 0; void setup(){ pinMode(3, OUTPUT); // nastaví pin číslo 3 jako pin výstupní pinMode(4, INPUT); // nastaví pin číslo 4 jako pin vstupní } void loop(){ int x = digitalRead(4); // přečte hodnotu na pinu č. 4 a přiřadí ji proměnné x digitalWrite(3, x); // změní napětí na pinu č. 3 na hodnotu x }