Obsah:
- Krok 1: Co budete potřebovat
- Krok 2: Vybudujte si obvod
- Krok 3: Vytvořte skript pro ovládání a testování kontrolek LED
- Krok 4: Přidání flexibility pomocí parametrů a podmíněných prohlášení
Video: Ovládání více LED diod pomocí GPIO pinů Pythonu a Raspberry Pi: 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
Tento Instructable ukazuje, jak ovládat více GPIO pinů na vašem RaspberryPi pro napájení 4 LED. Také vás seznámí s parametry a podmíněnými příkazy v Pythonu.
Náš předchozí návod k použití pinů GPIO vašeho Raspberry Pi k ovládání LED ukazuje, jak pomocí příkazu GPIO.output zapnout a vypnout jednu LED. Tento instruktáž staví na těchto znalostech a naučí vás, jak získat větší kontrolu nad svým obvodem.
Krok 1: Co budete potřebovat
- RaspberryPi s již nainstalovaným Raspbianem. Budete také muset mít přístup k Pi pomocí monitoru, myši a klávesnice nebo prostřednictvím vzdálené plochy. Můžete použít jakýkoli model Raspberry Pi. Pokud máte jeden z modelů Pi Zero, možná budete chtít připájet některé kolíkové kolíky k portu GPIO.
- Červené, modré, žluté a zelené LED diody
- Bezpájecí prototypovací prkénko
- Rezistory 4 x 330 ohmů
- Některé propojovací vodiče mezi muži a ženami
Krok 2: Vybudujte si obvod
Vybudujte výše uvedený obvod na prkénku a ujistěte se, že se žádný z vodičů komponent nedotýká a že diody LED jsou zapojeny správným způsobem.
Jak rozeznáte kladné a záporné vodiče (polaritu) na vašich LED diodách? Když se podíváte pozorně na LED, uvidíte, že má uvnitř barevného pouzdra dva malé kousky kovu. Říká se jim Anoda a Katoda. Katoda je největší ze dvou a je také připojena k zápornému vodiči LED.
Jakmile zkontrolujete svůj obvod, připojte propojovací kabely ke svým pinům GPIO Raspberry Pi podle výše uvedeného schématu.
Krok 3: Vytvořte skript pro ovládání a testování kontrolek LED
Na svém Raspberry Pi otevřete IDLE (Nabídka> Programování> Python 2 (IDLE)).
Otevřete nový projekt, přejděte na Soubor> Nový soubor. Poté zadejte (nebo zkopírujte a vložte) následující kód:
importujte RPi. GPIO jako GPIO
doba importu GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. OUT) GPIO.setup (18, GPIO. OUT) GPIO.setup (22, GPIO. OUT) GPIO.setup (23, GPIO. OUT) GPIO.output (17, True) time.sleep (3) GPIO.output (17, False) time.sleep (1) GPIO.output (18, True) time.sleep (3) GPIO.output (18, False) time.sleep (1) GPIO.output (22, True) time.sleep (3) GPIO.output (22, False) time.sleep (1) GPIO.output (23, True) time.sleep (3) GPIO. výstup (23, False)
Uložte svůj projekt jako multilights.py (Soubor> Uložit jako) do složky Dokumenty Raspberry Pis.
Na svém Raspberry Pi otevřete Terminál (Nabídka> Příslušenství> Terminál) a přejděte do složky Dokumenty zadáním následujícího:
cd/home/pi/Dokumenty
Nyní můžete spustit nový skript zadáním následujícího:
python multilights.py
Světla se budou střídavě zapínat a vypínat. Výše uvedený skript používá příkaz time.sleep k vytvoření pauzy mezi každým krokem, takže každé světlo zůstane zapnuté 3 sekundy a čeká 1 sekundu, než zapne další světlo.
Krok 4: Přidání flexibility pomocí parametrů a podmíněných prohlášení
Použitím parametrů a podmíněných příkazů můžeme výše uvedený skript učinit mnohem flexibilnějším.
Parametr vám umožňuje uložit hodnotu, kterou můžete použít později ve skriptu. Nejběžnějším typem hodnot jsou řetězce (text), celá čísla (celá čísla) nebo plovoucí čísla (desetinná čísla).
Podmíněný příkaz určí, zda by měl být proveden segment kódu kontrolou, zda je splněna určitá podmínka. Podmínka může také zahrnovat parametry.
Otevřete IDLE na svém Raspberry Pi a otevřete nový projekt (Soubor> Nový soubor). Potom zadejte následující. Dávejte pozor, abyste zajistili, že jsou zahrnuty všechny odsazení (záložky) pomocí klávesy tab:
importujte RPi. GPIO jako GPIO
doba importu ze sys import argv whichled = argv [1] provedení = argv [2] LEDa = 17 LEDb = 18 LEDc = 22 LEDd = 23 GPIO.setmode (GPIO. BCM) GPIO.setup (LEDa, GPIO. OUT) GPIO. setmode (GPIO. BCM) GPIO.setup (LEDb, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDc, GPIO. OUT) GPIO.setmode (GPIO. BCM) GPIO.setup (LEDd, GPIO. OUT) if ledaction == "off": if whichled == "a": GPIO.output (LEDa, False) if whichled == "b": GPIO.output (LEDb, False) if whichled == "c": GPIO.output (LEDc, False) if whichled == "d": GPIO.output (LEDd, False) if whichled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. výstup (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) if whichled == "b": GPIO.output (LEDb, True) if whichled == "c": GPIO.output (LEDc, True) if whichled == "d": GPIO.output (LEDd, True) if whichled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)
Uložte svůj projekt jako controllight.py (Soubor> Uložit jako) do složky Dokumenty. Nyní otevřete Terminál (Nabídka> Příslušenství> Terminál) a zadejte následující příkaz:
python controllight.py b on
Druhá LED by se měla rozsvítit. Nyní zadejte následující:
python controllight.py b vypnuto
Druhá LED by měla zhasnout.
V řádcích 5, 6, 7 a 8 vytvoříme parametry LEDa, LEDb, LEDc a LEDd pro uložení, který GPIO pin jsme připojili ke které LED. To nám umožňuje používat alternativní piny GPIO, aniž bychom museli ve skriptu provádět podstatné změny.
Pokud bychom například místo toho připojili první LED diody ke kolíku 3 (GPIO 2), stačilo by změnit řádek 5 na následující:
LEDa = 2
Řádek 4 ukládá hodnoty, které jste zadali po controllight.py do parametrů, které zadávaly (c) a ledaction (on). Skript poté použije tyto parametry spolu s řadou podmíněných příkazů k rozhodnutí, kterou diodu LED ovládat a zda ji zapnout nebo vypnout.
Řádek 16 (pokud ledaction == "on":) je podmíněné prohlášení. Odsazené řádky, které následují za tímto příkazem, se spustí, pouze pokud je splněna podmínka příkazu. V tomto scénáři je podmínkou, aby akce obsahovala text.
Můžete si po přečtení dalších podmíněných prohlášení skriptu předvídat, co se stane, když do terminálu napíšete následující příkaz?
python controllight.py vše zapnuto
Proč to nezkusit a svou odpověď zveřejnit v sekci komentáře níže.
Doporučuje:
Jak číst více analogových hodnot pomocí jednoho analogového pinu: 6 kroků (s obrázky)
Jak číst více analogových hodnot pomocí jednoho analogového pinu: V tomto tutoriálu vám ukážu, jak číst více analogových hodnot pomocí pouze jednoho analogového vstupního pinu
Ovládání jasu Ovládání LED na základě PWM pomocí tlačítek, Raspberry Pi a Scratch: 8 kroků (s obrázky)
Ovládání jasu Ovládání LED na základě PWM pomocí tlačítek, Raspberry Pi a Scratch: Zkoušel jsem najít způsob, jak vysvětlit, jak PWM funguje u mých studentů, a tak jsem si dal za úkol zkusit ovládat jas LED pomocí 2 tlačítek - jedno tlačítko zvyšuje jas LED a druhé jej stmívá. Programovat
Rádiové ovládání RF 433MHZ pomocí HT12D HT12E - Vytvoření dálkového ovládání RF pomocí HT12E a HT12D s 433 MHz: 5 kroků
Rádiové ovládání RF 433MHZ pomocí HT12D HT12E | Výroba dálkového ovládání RF pomocí HT12E a HT12D s 433 MHz: V tomto návodu vám ukážu, jak vytvořit RADIO dálkové ovládání pomocí přijímače přijímače 433 MHz s kódováním HT12E a IC dekodér HT12D. V tomto instruktážním programu budete moci odesílat a přijímat data pomocí velmi levných KOMPONENTŮ LIKE: HT
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: 7 kroků (s obrázky)
Ovládání zařízení pomocí hlasového ovládání pomocí NodeMCU: Chci jen pozdravit všechny, toto je poprvé, co píšu instruktážní projekt. Angličtina není můj rodný jazyk, takže se pokusím udělat co nejkratší a nejsrozumitelnější. Ovládání zařízení hlasovým příkazem není nic zvláštního
Vývoj aplikací pomocí GPIO pinů na DragonBoard 410c s operačními systémy Android a Linux: 6 kroků
Vývoj aplikací pomocí GPIO pinů na DragonBoard 410c s operačními systémy Android a Linux: Účelem tohoto tutoriálu je ukázat informace potřebné k vývoji aplikací pomocí GPIO pinu na nízkorýchlostní expanzi DragonBoard 410c. Tento tutoriál přináší informace pro vývoj aplikací pomocí GPIO pinů s SYS na Andr