Sadržaj:
- Korak 1: Ono što će vam trebati
- Korak 2: Izgradite svoj krug
- Korak 3: Izradite skriptu za kontrolu i testiranje LED dioda
- Korak 4: Dodavanje fleksibilnosti pomoću parametara i uvjetnih izjava
Video: Upravljanje više LED dioda s Pythonom i GPIO pinovima vašeg Raspberry Pi: 4 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:34
Ovaj Instructable pokazuje kako kontrolirati više GPIO pinova na vašem RaspberryPi za napajanje 4 LED diode. Također će vas upoznati s parametrima i uvjetnim izrazima u Pythonu.
Naši prethodni instruktivi pomoću GPIO pinova vašeg Raspberry Pi -a za upravljanje LED -om pokazuju kako uključiti i isključiti jednu LED -u pomoću naredbe GPIO.output. Ovaj Instructable nadograđuje to znanje kako bi vas naučio kako postići veću kontrolu nad svojim krugom.
Korak 1: Ono što će vam trebati
- RaspberryPi s već instaliranim Raspbian -om. Također ćete morati pristupiti Pi -u pomoću monitora, miša i tipkovnice ili putem udaljene radne površine. Možete koristiti bilo koji model Raspberry Pi. Ako imate jedan od modela Pi Zero, možda ćete htjeti lemiti neke igle zaglavlja na GPIO port.
- Crvene, plave, žute i zelene LED diode
- Tlocrt za izradu prototipa bez lemljenja
- 4 x 330 ohm otpornici
- Neke žice kratkospojnika muško - žensko
Korak 2: Izgradite svoj krug
Izgradite gornji krug na svojoj ploči pazeći da se niti jedan od dijelova komponenti ne dodiruje i da su LED diode ispravno spojene.
Kako prepoznajete pozitivne i negativne vodiče (polaritet) na LED diodama? Ako pomno pogledate LED diodu, vidjet ćete da ima dva mala komada metala unutar obojenog kućišta. Zovu se anoda i katoda. Katoda je najveća od ove dvije i također je spojena na negativni vod LED -a.
Nakon što provjerite svoj krug, spojite kratkospojne kabele svojih GPIO pinova Raspberry Pi -a slijedeći gornji dijagram.
Korak 3: Izradite skriptu za kontrolu i testiranje LED dioda
Na svom Raspberry Pi otvorite IDLE (Izbornik> Programiranje> Python 2 (IDLE)).
Otvorite novi projekt idite na Datoteka> Nova datoteka. Zatim upišite (ili kopirajte i zalijepite) sljedeći kod:
uvezite RPi. GPIO kao GPIO
vrijeme 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.izlaz (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. izlaz (23, lažno)
Spremite svoj projekt kao multilights.py (Datoteka> Spremi kao) u mapu Raspberry Pis Documents.
Na vašem Raspberry Pi otvorite Terminal (Izbornik> Pribor> Terminal) i idite do mape Dokumenti upisivanjem sljedećeg:
cd/home/pi/Dokumenti
Sada možete pokrenuti novu skriptu upisivanjem sljedećeg:
python multilights.py
Svjetla će se redom uključivati i isključivati. Gornja skripta koristi naredbu time.sleep za stvaranje pauze između svakog koraka, pri čemu svako svjetlo ostaje uključeno 3 sekunde i čeka 1 sekundu prije nego uključi sljedeće svjetlo.
Korak 4: Dodavanje fleksibilnosti pomoću parametara i uvjetnih izjava
Korištenjem parametara i uvjetnih izjava možemo učiniti gornju skriptu mnogo fleksibilnijom.
Parametar vam omogućuje spremanje vrijednosti koju kasnije možete koristiti u skripti. Najčešći tipovi vrijednosti su nizovi (tekst), cijeli brojevi (cijeli brojevi) ili float (decimalni brojevi).
Uvjetna izjava će odrediti treba li segment koda biti izveden provjerom je li ispunjen određeni uvjet. Uvjet također može uključivati parametre.
Otvorite IDLE na svom Raspberry Pi i otvorite novi projekt (Datoteka> Nova datoteka). Zatim upišite sljedeće. Budite sigurni da ste uključili sve uvlake (kartice) pomoću tipke tab:
uvezite RPi. GPIO kao GPIO
vrijeme uvoza iz sys import 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 whichled == "b": GPIO.output (LEDb, False) ifledled == "c": GPIO.izlaz (LEDc, Netačno) ako je = = "d": GPIO.izlaz (LEDd, Netačno) ako je bio == "sve": GPIO.izlaz (LEDa, Netačno) GPIO.izlaz (LEDb, Netačno) GPIO. izlaz (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) ifledled == "b": GPIO.output (LEDb, Tačno) ako je ispisano == "c": GPIO.izlaz (LEDc, Tačno) ako je ispisano == "d": Izlaz GPIO (LEDd, Istina) ako je ispisano == "sve": GPIO.izlaz (LEDa, Tačno) GPIO.izlaz (LEDb, Tačno) GPIO.izlaz (LEDc, Tačno) GPIO.izlaz (LEDd, Tačno)
Spremite svoj projekt kao controllight.py (Datoteka> Spremi kao) u mapu Dokumenti. Sada otvorite Terminal (Izbornik> Pribor> Terminal) i upišite sljedeću naredbu:
python controllight.py b uključeno
Druga LED dioda bi se trebala uključiti. Sada upišite sljedeće:
python controllight.py b isključeno
Druga LED dioda bi se trebala isključiti.
U retcima 5, 6, 7 i 8 stvaramo parametre LEDa, LEDb, LEDc i LEDd za spremanje GPIO pina na koji smo spojili LED. To nam omogućuje korištenje alternativnih GPIO pinova bez potrebe za značajnim promjenama u skripti.
Na primjer, ako bismo umjesto toga prvi LED diode priključili na Pin 3 (GPIO 2), samo bismo trebali promijeniti redak 5 na sljedeće:
LEDa = 2
Redak 4 sprema vrijednosti koje ste unijeli nakon controllight.py u parametreledled (c) i ledaction (on). Skripta zatim koristi ove parametre, zajedno s brojnim uvjetnim izjavama, kako bi odlučila koju LED diodu kontrolirati i hoće li je uključiti ili isključiti.
Redak 16 (ako je ledaction == "on":) uvjetna je naredba. Uvučeni redovi koji slijede ovu naredbu izvodit će se samo ako je uvjet izraza ispunjen. U ovom scenariju uvjet je da lekcija sadrži tekst na.
Čitajući ostale uvjetne izjave skripte, možete li predvidjeti što će se dogoditi kada u Terminal unesete sljedeću naredbu?
python controllight.py sve uključeno
Zašto ne biste pokušali i objavili svoj odgovor u donjem odjeljku komentara.
Preporučeni:
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na natječaj Growing Beyond Earth, Maker, predana putem Instructables. Ne mogu biti više uzbuđen što ću dizajnirati za proizvodnju svemirskih usjeva i objaviti svoj prvi Instructable. Za početak, natječaj nas je zamolio da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje više štitnika motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način izgradnje uređaja koji prevodi senzorni unos u vibracijske podražaje. Ti vibracijski podražaji su p
Glasovno upravljanje Svjetla Elektronika RGB LED trake i više s Cortanom i Arduino kućnom automatizacijom: 3 koraka
Glasovna kontrola Svjetla Elektronika RGB LED trake i više s Cortanom i Arduino kućnom automatizacijom: Sviđa vam se ideja da kontrolirate stvari svojim glasom? Ili ne volite ustati iz kreveta kako biste ugasili svjetlo? No, sva postojeća rješenja poput google homea su preskupa? Sada ga možete napraviti sami za manje od 10 USD. A još bolje, vrlo je jednostavno
Korištenje vašeg Sony Ericsson telefona s omogućenim Bluetooth -om za upravljanje računalom: 6 koraka
Korištenje vašeg Sony Ericsson telefona s omogućenim Bluetooth -om za upravljanje vašim računalom: Već neko vrijeme čitam o instrukcijama i uvijek sam želio učiniti neke stvari o kojima su ljudi pisali, ali našao sam se gledajući stvari koje ih je teško izvesti jer ih je zaista teško izvesti, ili
Recikliranje vašeg starog prekidača za prigušivanje zraka kao promjenjive kontrole temperature vašeg lemilice: 7 koraka
Recikliranje vašeg starog prekidača za prigušivanje zraka kao varijabilna kontrola temperature vašeg lemilice: Vidio sam mnogo profesionalnih kontrola promjenjive temperature lemilice, ali preskupih. Tako sam napravio jedan od starog prekidača za prigušivanje, utičnice, ploče i utikača koji su već bili bezvrijedni i neke stare PVC kutije s prekidačima koja je došla s njim i tako