Kazalo:

Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi: 4 koraki (s slikami)
Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi: 4 koraki (s slikami)

Video: Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi: 4 koraki (s slikami)

Video: Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi: 4 koraki (s slikami)
Video: 12V Bluetooth Relay to control AC or DC load using mobile Phone 2024, November
Anonim
Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi
Upravljanje več LED z Python in GPIO zatiči vašega Raspberry Pi

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

Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
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 svoje vezje
Zgradite svoje vezje
Zgradite svoje vezje
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

Ustvarite skript za nadzor in preizkušanje LED
Ustvarite skript za nadzor in preizkušanje 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: