Stiskněte "Enter" pro přeskočení obsahu

Začínáme s ESP32 a Micropython IDE – 3 Čtení digitálních vstupů

0

Ahoj! Dnes se podíváme na to, jak použít ESP32 a programovací jazyk MicroPython k ovládání LED diody pomocí digitálních vstupů. ESP32 je chytrá deska, která umí komunikovat s různými věcmi, jako jsou světla a senzory.

Princip práce s digitálními piny

Digitální piny mohou být nastaveny buď jako vstup (čtení signálů) nebo výstup (odesílání signálů). V tomto tutoriálu využijeme obě funkce.

Pin jako vstup v MicroPythonu

  • Nastavení Pinu jako vstup: Pin(pin_number, Pin.IN)

Pull-Up a Pull-Down Rezistory

Když používáme pin jako vstup, často chceme zajistit, aby měl vždy definovaný stav (vysoký nebo nízký). K tomu slouží interní pull-up a pull-down rezistory, když nastavujeme PIN jako vstup můžeme si zvolit jestli chceme aktivovat pull-up nebo pull-down rezistor na daném pinu. Díky tomu můžeme PIN nastavit do požadované logické úrovně a její změnu můžeme poté kontrolovat programem.

Pull-Up Rezistor: Udržuje pin ve vysokém stavu (logická 1) při nepřipojeném signálu. Používá se, když chceme, aby byl výchozí stav vstupu vysoký a změnil se na nízký při aktivaci (například stisknutí tlačítka).

Pull-Down Rezistor: Udržuje pin v nízkém stavu (logická 0) při nepřipojeném signálu. Používá se, když chceme, aby byl výchozí stav vstupu nízký a změnil se na vysoký při aktivaci.

Externí Pull-Up a Pull-Down odpory: Pokud procesor nemá interní Pull-Up a Pull-Down odpory vždy máte možnost si je do zapojení doplnit. Příklady takového zapojení jsou zde:

Příklad

Představme si, že máme tlačítko připojené k pinu 25. Chceme, aby byl pin ve vysokém stavu, když není tlačítko stisknuto a přešel do nízkého stavu při stisku tlačítka. Stejně tak nastavíme i tlačítko připojené k pinu 26. Jedno bude sloužit pro zapnutí diody LED a druhé pro její vypnutí.

Příklad: Ovládání LED Dvěma Tlačítky

V tomto příkladu je pin 25 nastaven jako vstup s aktivním pull-up rezistorem. To znamená, že výchozí stav pinu je vysoký (1) a když je tlačítko stisknuto a spojí pin se zemí (GND), stav pinu se změní na nízký (0). Stejné nastavení bude mít i pin 26.

Příklad v jazyce Blockly

V tomto příkladu jsme použili několik nových bloků. První nový blok je nastavit digitální vstup který nastaví pin do příslušného stavu, také umožňuje zvolit, jestli chcete použít Pull-up nebo Pull-down odpor na daném Pinu. Další nový blok je podmínka když. Tu najdeme v sekci Logika. Pomocí podmínky když můžeme porovnávat stav digitálního pinu a pokud je podmínka splněna, tak se vykoná kód uvnitř podmínky.

Použití Pull-Up a Pull-Down v MicroPythonu

Nastavení Pull-Up: Pin(pin_number, Pin.IN, Pin.PULL_UP)

Nastavení Pull-Down: Pin(pin_number, Pin.IN, Pin.PULL_DOWN)

from machine import Pin
tlacitko = Pin(0, Pin.IN, Pin.PULL_UP)

A tady už máme celý funkční příklad

from machine import Pin
import time

# Nastavení pinů
led = Pin(22, Pin.OUT)
button_on = Pin(25, Pin.IN, Pin.PULL_UP)
button_off = Pin(26, Pin.IN, Pin.PULL_UP)

# Hlavní smyčka
while True:
    if button_on.value() == 0:  # Tlačítko pro zapnutí stisknuto
        led.value(1)
    if button_off.value() == 0:  # Tlačítko pro vypnutí stisknuto
        led.value(0)

    time.sleep(0.1)  # Krátká pauza během které procesor může obsloužit WiFi a další periferie

Napsat komentář

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