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

Začínáme s ESP32 a Micropython IDE – 2 PWM Řízení jasu LED

0

PWM nebo Pulzně Šířková Modulace je způsob, jakým můžeme ovládat intenzitu svitu LED. Místo toho, abychom LED nechali svítit stále na plný výkon, PWM nám umožňuje rychle zapínat a vypínat LED tak rychle, že to lidské oko nepostřehne. Tímto způsobem můžeme „simulovat“ nižší jas.

Připojení LED k ESP32

Můžeme použít zapojení z prvního příkladu, ale pro úplnost si zapojení LED diody k procesoru popíšeme ještě jednou. Připojíme anodu LED (delší nožička) přes rezistor k jednomu z GPIO pinů na ESP32. V našem případě to bude GPIO 22. Katodu (kratší nožička) připojíme k zemi (GND pinu) na ESP32.

Jak funguje PWM

  1. Základní myšlenka: PWM řízení pracuje na principu vytváření digitálního signálu, který se rychle přepíná mezi zapnutým (vysokým) a vypnutým (nízkým) stavem.
  2. Střída (Duty Cycle): Klíčovým pojmem u PWM je střída, což je procentní poměr času, po který je signál ve vysokém stavu (zapnutý), vůči celkovému časovému cyklu signálu. Například střída 50% znamená, že signál je zapnutý polovinu času a vypnutý polovinu času.
  3. Frekvence PWM: Frekvence PWM signálu určuje, jak rychle se střídají jednotlivé cykly zapnutí a vypnutí. Vyšší frekvence znamená rychlejší přepínání, což může vést k hladší regulaci výkonu.

Příklad kódu pro řízení jasu LED pomocí PWM v jazyce Blockly

Pokud chcete použít digitální výstup v režimu PWM, v sekci Výstupy je na to blok analogový výstup PWM. Parametry bloku jsou Pin : kde zvolíme který pin chceme řídit. Frekvence : udává jak rychle se bude měnit logická úroveň na daném pinu. Hodnota : nám udává kolik energie chceme mít na výstupu. Hodnota je 10ti bitová čili může mít hodnotu 0 – 1023. Blokem analogový výstup PWM nastavíme pin do režimu PWM, dále v kódu můžeme měnit hodnotu na výstupu pomocí bloku analogový výstup ze skupiny bloků Výstupy. Dále v kódu použijeme blok počítat s i od 0 do 1023 po 1. Je to blok, který vykoná kód uvnitř bloku tolikrát kolik si nastavíte průchodů pomocí mezí od a do, při tom se bude měnit proměnná kterou si zvolíte. Jak velký bude přírůstek proměnné si můžete nastavit v posledním parametru po. V našem případě se kód vykoná 1024 krát a při každém průchodu se proměnná i změní o 1.

Příklad kódu pro řízení jasu LED pomocí PWM v jazyce Python

from machine import Pin, PWM
import time

led = PWM(Pin(22))  # pouzijeme GPIO pin 22 pro pripojeni LED
led.freq(5000)      # nastavzme frekvenci PWM na 5000 Hz

while True:
    for i in range(1024):
        led.duty(i)   # postupne zvysujeme jas LED
        time.sleep(0.001)
    for i in range(1023, -1, -1):
        led.duty(i)   # postupne snizujeme jas LED
        time.sleep(0.001)

Napsat komentář

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