09.C Arduino – úplné základy: Tlačidlo – digitálny vstup (INPUT_PULLUP)

09.C Arduino – úplné základy: Tlačidlo – digitálny vstup (INPUT_PULLUP)

Cieľom tejto lekcie je:

  • naučiť sa používať tlačidlo ako digitálny vstup,
  • pochopiť rozdiel medzi vstupom a výstupom,
  • ovládať diódu pomocou tlačidla,
  • pochopiť, prečo používame režim INPUT_PULLUP.

Čo je digitálny vstup

Digitálny vstup:

  • číta iba dva stavy:
    • HIGH (1)
    • LOW (0)

Tlačidlo je typický digitálny vstup:

  • nestlačené → jeden stav
  • stlačené → druhý stav

Prečo nestačí „len tlačidlo“

Ak by bolo tlačidlo zapojené bez ďalších opatrení:

  • vstup by bol nestabilný,
  • Arduino by čítalo náhodné hodnoty.

➡️ Preto používame pull-up.


INPUT_PULLUP – čo to znamená

INPUT_PULLUP znamená:

  • Arduino si vnútri zapne rezistor,
  • vstup je v pokoji v stave HIGH,
  • po stlačení tlačidla sa vstup spojí s GND a má hodnotu LOW.

Dôležité pravidlo:
pri INPUT_PULLUP platí
stlačené tlačidlo = LOW


Zapojenie tlačidla (reálne Arduino)

Použijeme:

  • tlačidlo
  • Arduino Uno / Mega
  • breadboard
  • prepojovacie vodiče

Zapojenie

  • jedna noha tlačidla → GND
  • druhá noha tlačidla → port 2

Prvý program: tlačidlo ovláda diódu

V tomto programe:

  • tlačidlo zapne diódu,
  • po uvoľnení tlačidla dióda zhasne.

Použijeme:

  • tlačidlo na porte 2
  • diódu na porte 12 (externá LED s rezistorom)

Program: tlačidlo → dióda





void setup() {
  pinMode(12, OUTPUT);          // dióda (výstup)
  pinMode(2, INPUT_PULLUP);     // tlačidlo (vstup)
}

void loop() {
  if (digitalRead(2) == LOW) {  // tlačidlo stlačené
    digitalWrite(12, HIGH);     // dióda svieti
  } else {
    digitalWrite(12, LOW);      // dióda nesvieti
  }
}

Čo máš vidieť

  • po stlačení tlačidla sa dióda rozsvieti,
  • po uvoľnení tlačidla dióda zhasne.

Vysvetlenie programu krok po kroku

  • pinMode(2, INPUT_PULLUP);
    → port 2 je vstup, Arduino zapne vnútorný rezistor
  • digitalRead(2)
    → čítame stav tlačidla
  • LOW
    → tlačidlo je stlačené (lebo ide na GND)

Zapojenie a program v Tinkercade

V Tinkercade:

  • použi Arduino Uno,
  • zapoj tlačidlo rovnako ako v reále,
  • vlož ten istý program,
  • spusti Start Simulation.

Správanie musí byť rovnaké ako na reálnom Arduine.


Najčastejšie chyby študentov

  • tlačidlo nie je zapojené na GND,
  • tlačidlo je otočené nesprávne na breadboarde,
  • použitý INPUT namiesto INPUT_PULLUP,
  • očakávanie, že stlačené tlačidlo = HIGH.

Úlohy pre študentov

Úloha 1 (ľahká)

Zmeň port tlačidla na iný (napr. 3).

Úloha 2 (stredná)

Použi vstavanú diódu na porte 13 namiesto externej.

Úloha 3 (výzva)

Skús zapojiť dve tlačidlá – jedno zapína, druhé vypína diódu.


Poznámka

Táto lekcia je kľúčová:

  • študenti pochopia logiku vstupov,
  • naučia sa, že LOW nemusí znamenať „vypnuté“,
  • vzniká základ pre stavové programy (START / STOP).

Odporúčanie:

  • nechať študentov najprv len pozorovať správanie,
  • až potom vysvetľovať teóriu.

Čo bude nasledovať

V ďalšej lekcii:

  • spojíme tlačidlo a blikanie,
  • vytvoríme START / STOP multivibrátor,
  • urobíme prvý stavový program.

Odkazy na nadväzujúce lekcie: 09, 09.A, 09.B, 09.C, 09.D .

One thought on “09.C Arduino – úplné základy: Tlačidlo – digitálny vstup (INPUT_PULLUP)

Comments are closed.