Kroky pro vytvoření projektu se stmíváním LED
1
Otevřete OmniBoard Studio a vytvořte nový projekt.
2
Sestavte blokový diagram pro plynulé rozsvěcování a zhasínání LED pomocí bloku PWM a proměnné pro jas.
Zkuste si diagram sestavit sami, nebo klikněte sem a prohlédněte si jedno z možných řešení. ▼
- ● Umístěte blok Start a propojte jej s blokem While True.
- ● Ve smyčce použijte blok For Loop počítající od 0 do 1023 (rozsvěcování). Uvnitř smyčky zapojte blok Set PWM Duty a nastavte střidu na hodnotu proměnné smyčky.
- ● Přidejte krátký blok Timer (např. 2 ms) uvnitř smyčky, aby bylo stmívání viditelné.
- ● Po smyčce rozsvěcování přidejte druhou smyčku For Loop počítající od 1023 dolů na 0 (zhasínání) se stejnými bloky Set PWM Duty a Timer.
3
Sestavte obvod — je stejný jako v projektu s blikající LED.
- ● Ujistěte se, že vybraný GPIO pin podporuje PWM výstup (zkontrolujte v dokumentaci vašeho mikrokontroléru).
- ● Připojte anodu LED (dlouhou nožičku) přes rezistor ke GPIO pinu s podporou PWM a katodu (krátkou nožičku) k zemi.
4
Zkompilujte kód a nahrajte jej do svého mikrokontroléru.
5
Sledujte, jak vaše LED plynule nabývá a ztrácí jas v nepřetržitém dýchacím vzoru!
Bonusové informace
- Zde je příklad zjednodušeného kódu v MicroPythonu pro projekt se stmíváním LED:
import machine # Needed for controlling the GPIO pins
import time # Needed for creating delays
pwm = machine.PWM(machine.Pin(2)) # Set GPIO pin 2 as a PWM output
pwm.freq(1000) # Set PWM frequency to 1000 Hz
while True:
for duty in range(0, 1024): # Fade in: 0 → full brightness
pwm.duty(duty)
time.sleep_ms(2)
for duty in range(1023, -1, -1): # Fade out: full brightness → 0
pwm.duty(duty)
time.sleep_ms(2)
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT)
pwm = GPIO.PWM(2, 1000) # Pin 2, 1000 Hz
pwm.start(0) # Start with 0% duty cycle
while True:
for dc in range(0, 101): # Fade in
pwm.ChangeDutyCycle(dc)
time.sleep(0.02)
for dc in range(100, -1, -1): # Fade out
pwm.ChangeDutyCycle(dc)
time.sleep(0.02)