Kroky pro vytvoření jednoduchého LED semaforu
1
Otevřete OmniBoard Studio a vytvořte nový projekt.
2
Přetáhněte tři bloky LED na plátno, které budou představovat červenou, žlutou a zelenou světelnou kontrolku. Budete potřebovat alespoň tři bloky LED, způsob řízení časování a způsob opakování sekvence.
Zkuste si přijít na zapojení bloků sami! Pokud potřebujete nápovědu, klikněte sem. ▼
- ● Použijte bloky Start a While True k vytvoření nekonečně se opakující smyčky.
- ● Ve smyčce zapněte červenou LED, počkejte blokem Timer (např. 3000 ms) a poté červenou LED vypněte.
- ● Poté zapněte žlutou LED, počkejte (např. 1000 ms) a žlutou LED vypněte.
- ● Nakonec zapněte zelenou LED, počkejte (např. 3000 ms) a zelenou LED vypněte. Smyčka se pak opakuje od začátku.
3
Sestavte správný obvod se třemi LED připojenými k mikrokontroléru.
- ● Připojte anodu (dlouhou nožičku) červené LED přes rezistor ke GPIO pinu pro červenou (např. pin 2) a katodu (krátkou nožičku) k zemi.
- ● Zopakujte stejné zapojení pro žlutou LED na druhém GPIO pinu (např. pin 3).
- ● Zopakujte stejné zapojení pro zelenou LED na třetím GPIO pinu (např. pin 4).
4
Zkompilujte kód a nahrajte jej do svého mikrokontroléru.
5
Sledujte, jak váš semafor cykluje přes červenou → žlutou → zelenou a znovu se opakuje!
Bonusové informace
- Zde je příklad zjednodušeného kódu v MicroPythonu pro projekt s LED semaforem:
import machine # Needed for controlling the GPIO pins
import time # Needed for creating delays
red = machine.Pin(2, machine.Pin.OUT) # Red LED on GPIO 2
yellow = machine.Pin(3, machine.Pin.OUT) # Yellow LED on GPIO 3
green = machine.Pin(4, machine.Pin.OUT) # Green LED on GPIO 4
while True: # Create an infinite loop
red.on() # Turn Red ON
time.sleep(3) # Wait 3 seconds
red.off() # Turn Red OFF
yellow.on() # Turn Yellow ON
time.sleep(1) # Wait 1 second
yellow.off() # Turn Yellow OFF
green.on() # Turn Green ON
time.sleep(3) # Wait 3 seconds
green.off() # Turn Green OFF
import RPi.GPIO as GPIO # Needed for controlling the GPIO pins
import time # Needed for creating delays
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.OUT) # Red LED
GPIO.setup(3, GPIO.OUT) # Yellow LED
GPIO.setup(4, GPIO.OUT) # Green LED
while True:
GPIO.output(2, GPIO.HIGH) # Red ON
time.sleep(3)
GPIO.output(2, GPIO.LOW) # Red OFF
GPIO.output(3, GPIO.HIGH) # Yellow ON
time.sleep(1)
GPIO.output(3, GPIO.LOW) # Yellow OFF
GPIO.output(4, GPIO.HIGH) # Green ON
time.sleep(3)
GPIO.output(4, GPIO.LOW) # Green OFF