Kazalo:
- Korak: Kaj boste potrebovali
- 2. korak: Zgradite svoje vezje
- 3. korak: Ustvarite skript za nadzor in preizkus LED
- 4. korak: Dodajanje prilagodljivosti z uporabo parametrov in pogojnih stavkov
Video: Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi: 4 koraki (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ta Instructable prikazuje, kako upravljati več zatičev GPIO na vašem RaspberryPi za napajanje 4 LED. Predstavil vas bo tudi s parametri in pogojnimi stavki v Pythonu.
Naša prejšnja navodila, ki uporabljajo uporabo GPIO zatičev vašega Raspberry Pi za nadzor LED, prikazuje, kako vklopiti in izklopiti eno LED z ukazom GPIO.output. Ta navodila temeljijo na tem znanju in vas naučijo, kako pridobiti večji nadzor nad svojim vezjem.
Korak: Kaj boste potrebovali
- RaspberryPi z že nameščenim Raspbian. Do Pi boste morali dostopati tudi z monitorjem, miško in tipkovnico ali prek oddaljenega namizja. Uporabite lahko kateri koli model Raspberry Pi. Če imate enega od modelov Pi Zero, boste morda želeli spajkati nekaj zatičev glave na vrata GPIO.
- Rdeča, modra, rumena in zelena LED
- Brezplačna prototipna plošča
- 4 x 330 ohmski upori
- Nekaj moških in ženskih mostičkov
2. korak: Zgradite svoje vezje
Zgradite zgornji tokokrog na svoji plošči in se prepričajte, da se noben od komponentnih kablov ne dotika in da so LED diode pravilno povezane.
Kako prepoznate pozitivne in negativne vodi (polarnost) na LED diodah? Če natančno pogledate LED, boste videli, da ima v barvnem ohišju dva majhna kosa kovine. Te se imenujejo anoda in katoda. Katoda je največja od obeh in je povezana tudi z negativnim kablom LED.
Ko preverite vezje, priključite mostične kable na GPIO zatiče Raspberry Pi po zgornjem diagramu.
3. korak: Ustvarite skript za nadzor in preizkus LED
Na vašem Raspberry Pi odprite IDLE (Meni> Programiranje> Python 2 (IDLE)).
Odprite nov projekt in pojdite na Datoteka> Nova datoteka. Nato vnesite (ali kopirajte in prilepite) naslednjo kodo:
uvozite RPi. GPIO kot GPIO
čas uvoza 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. izhod (23, napačno)
Shranite svoj projekt kot multilights.py (Datoteka> Shrani kot) v mapo Dokumenti Raspberry Pis.
Na svojem Raspberry Pi odprite terminal (Meni> Pripomočki> Terminal) in se pomaknite do mape Dokumenti tako, da vnesete naslednje:
cd/home/pi/Dokumenti
Zdaj lahko zaženete nov skript tako, da vnesete naslednje:
python multilights.py
Luči se po vrsti vklopijo in izklopijo. Zgornji skript uporablja ukaz time.sleep za ustvarjanje premora med vsakim korakom, pri čemer vsaka lučka ostane prižgana 3 sekunde in počaka 1 sekundo, preden vklopi naslednjo luč.
4. korak: Dodajanje prilagodljivosti z uporabo parametrov in pogojnih stavkov
Z uporabo parametrov in pogojnih stavkov lahko zgornji skript naredimo veliko bolj prilagodljiv.
Parameter vam omogoča shranjevanje vrednosti, ki jo lahko kasneje uporabite v skriptu. Najpogostejše vrste vrednosti so nizi (besedilo), cela števila (cela števila) ali plavajoča (decimalna števila).
Pogojna izjava bo določila, ali je treba segment kode izvesti s preverjanjem, ali je določen pogoj izpolnjen. Pogoj lahko vključuje tudi parametre.
Odprite IDLE na svojem Raspberry Pi in odprite nov projekt (Datoteka> Nova datoteka). Nato vnesite naslednje. Pazite, da s tipko tabulatorka vključite vse alineje (zavihke):
uvozite RPi. GPIO kot GPIO
čas uvoza iz sys uvoz argv whichled = argv [1] ledaction = 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 ifledled == "b": GPIO.output (LEDb, False) ifledled == "c": GPIO.output (LEDc, False) če je = = "d": GPIO.output (LEDd, False) if ifled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. izhod (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) if ifled == "b": GPIO.output (LEDb, True) if whichled == "c": GPIO.output (LEDc, True) if ifled == "d": GPIO.output (LEDd, True) if ifled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)
Shranite svoj projekt kot controllight.py (Datoteka> Shrani kot) v mapo Dokumenti. Zdaj odprite Terminal (Meni> Pripomočki> Terminal) in vnesite naslednji ukaz:
python controllight.py b vklopljeno
Druga LED mora vklopiti. Zdaj vnesite naslednje:
python controllight.py b izklopljen
Druga LED dioda bi se morala izklopiti.
V vrsticah 5, 6, 7 in 8 ustvarimo parametre LEDa, LEDb, LEDc in LEDd, da shranimo, kateri pin GPIO smo priključili na katero LED. To nam omogoča uporabo alternativnih zatičev GPIO, ne da bi morali bistveno spremeniti skript.
Na primer, če bi namesto tega prvi LED vodnik priključili na pin 3 (GPIO 2), bi morali vrstico 5 spremeniti na naslednje:
LEDa = 2
4. vrstica shranjuje vrednosti, ki ste jih vnesli po controllight.py v parametreledled (c) in ledaction (on). Skript nato uporabi te parametre skupaj s številnimi pogojnimi izjavami, da se odloči, katero LED bo nadzoroval in ali jo vklopi ali izklopi.
Vrstica 16 (če je ledaction == "on":) je pogojna izjava. Vrstice z zamikom, ki sledijo temu stavku, se bodo izvajale le, če je izpolnjen pogoj stavka. V tem scenariju je pogoj, da ledakcija vsebuje besedilo.
Ali lahko z branjem drugih pogojnih izjav skripta predvidite, kaj se bo zgodilo, ko v Terminal vnesete naslednji ukaz?
python controllight.py vse vklopljeno
Zakaj ne bi poskusili in odgovor objavili v spodnjem razdelku za komentarje.
Priporočena:
Gojenje več solate v manj prostora ali gojenje solate v vesolju, (več ali manj) .: 10 korakov
Gojenje več solate na manj prostora ali … Gojenje solate v vesolju, (več ali manj) .: To je profesionalna oddaja natečaja Growing Beyond Earth, Maker, poslanega prek Instructables. Ne bi mogel biti bolj navdušen nad oblikovanjem za pridelavo vesoljskih pridelkov in objavo prvega Instructable -a. Za začetek nas je natečaj prosil, da
Uporaba več kot 4 motorjev - zlaganje več motornih ščitov: 3 koraki
Uporaba več kot 4 motorjev - zlaganje več motornih ščitov: Naprava za vibrotaktilno senzorično zamenjavo in povečanje (https: //www.instructables.com/id/Vibrotactile-Sens …) prikazuje način, kako zgraditi napravo, ki prevaja senzorično vnos v vibracijske dražljaje. Ti vibracijski dražljaji so p
Več kot 8 milj prvi univerzalni magnetni prenosni zatiči!: 5 korakov
Več kot 8 milj prvi univerzalni magnetni prenosni zatiči!: Pozdravljeni! Moje ime je Georgina Yeboah in pred kratkim sem ustvarila te magnetne zatiče, ki temeljijo na likih iz moje spletne komike Over 8 Miles! Povezavo do glavne strani spletnega portala najdete pod tem uvodom in povezavo Tapas. Te zatiče sem naredil kot
ESP8266 -NODEMCU 3 $ WiFi modul #2 - brezžični zatiči za krmiljenje prek spletne strani: 9 korakov (s slikami)
ESP8266 -NODEMCU 3 $ WiFi modul #2 - Brezžični zatiči za krmiljenje prek spletne strani: Prišel je nov svet teh mikroračunalnikov in to je ESP8266 NODEMCU. To je prvi del, ki prikazuje, kako lahko namestite okolje esp8266 v svoj arduino IDE prek videoposnetka o začetku in kot dele v
Headless Pi - Zagon vašega Raspberry Pi brez dodatne strojne opreme: 4 koraki (s slikami)
Headless Pi - Začetek vašega Raspberry Pi brez dodatne strojne opreme: Pozdravljeni, razlog, da ste pristali tukaj, je verjetno v tem, da ste zelo podobni meni! Ne želite si preprosto olajšati svojega Pi - priključite Pi na monitor, priključite tipkovnico in miško in voila! &Hellip; Pfft, kdo to počne ?! Konec koncev je Pi &