Sadržaj:
- Korak 1: Šta će vam trebati
- Korak 2: Izgradite svoj krug
- Korak 3: Kreirajte 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 izmjena: 2024-01-30 08:05
Ovaj Instructable pokazuje kako kontrolirati više GPIO pinova na vašem RaspberryPi za napajanje 4 LED diode. Takođe će vas upoznati sa parametrima i uslovnim izrazima u Pythonu.
Naši prethodni instruktivi pomoću GPIO pinova vašeg Raspberry Pi -a za kontrolu LED -a pokazuju kako uključiti i isključiti jednu LED 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: Šta će vam trebati
- RaspberryPi sa već instaliranim Raspbian -om. Takođe ćete morati imati pristup Pi -u pomoću monitora, miša i tastature 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 pinove zaglavlja na GPIO port.
- Crvene, plave, žute i zelene LED diode
- Matična ploča za izradu prototipa bez lemljenja
- 4 x 330 ohm otpornici
- Neke muške do ženske kratkospojnice
Korak 2: Izgradite svoj krug
Izgradite gornji krug na svojoj ploči pazeći da se nijedan od dijelova komponenti ne dodiruje i da su LED diode pravilno spojene.
Kako prepoznajete pozitivne i negativne vodiče (polaritet) na LED diodama? Ako pažljivo 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 vodič LED dioda.
Nakon što provjerite svoj krug, spojite kratkospojne kabele na svoje GPIO pinove Raspberry Pi -a slijedeći gornji dijagram.
Korak 3: Kreirajte skriptu za kontrolu i testiranje LED dioda
Na vašem Raspberry Pi otvorite IDLE (Meni> 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.output (17, Tačno) 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)
Sačuvajte svoj projekat kao multilights.py (Datoteka> Sačuvaj kao) u fascikli Raspberry Pis Documents.
Na vašem Raspberry Pi otvorite Terminal (Meni> Pribor> Terminal) i idite do mape Dokumenti upisivanjem sljedećeg:
cd/home/pi/Documents
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, čineći da svako svjetlo ostane uključeno 3 sekunde i da čeka 1 sekundu prije nego što 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).
Uslovni iskaz će odrediti treba li segment koda izvršiti provjerom da li je određeni uvjet ispunjen. Uslov može uključivati i 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 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 whichled == "b": GPIO.output (LEDb, False) ifledled == "c": GPIO.izlaz (LEDc, Netačno) ako je isključeno == "d": Izlaz GPIO (LEDd, Netačno) ako je isključeno == "sve": GPIO.izlaz (LEDa, Netačno) GPIO.izlaz (LEDb, Netačno) GPIO. izlaz (LEDc, Netačno) GPIO.output (LEDd, False) ako je ledaction == "on": if whichled == "a": GPIO.output (LEDa, True) if whichled == "b": GPIO.output (LEDb, Tačno) ako je isključeno == "c": GPIO.izlaz (LEDc, Tačno) ako je ispisano == "d": Izlaz GPIO (LEDd, Tačno) 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 (Meni> 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 redovima 5, 6, 7 i 8 stvaramo parametre LEDa, LEDb, LEDc i LEDd za spremanje GPIO pina na koji smo povezali 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
Red 4 sprema vrijednosti koje ste unijeli nakon controllight.py u parametreledled (c) i ledaction (on). Skripta zatim koristi ove parametre, zajedno s nizom uvjetnih izjava, kako bi odlučila koju LED diodu kontrolirati i hoće li je uključiti ili isključiti.
Red 16 (ako je ledaction == "on":) uvjetna je naredba. Uvučene linije koje 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čuje se:
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 takmičenje Growing Beyond Earth, Maker, predano putem Instructables. Nisam mogao biti više uzbuđen što dizajniram za proizvodnju svemirskih biljaka i objavljujem svoj prvi Instructable. Za početak, takmičenje nas je zamolilo da
Korištenje više od 4 motora - slaganje više štitnika motora: 3 koraka
Korištenje više od 4 motora - slaganje višestrukih štitova motora: Vibrotaktilni senzorski uređaj za zamjenu i povećanje senzora (https: //www.instructables.com/id/Vibrotactile-Sens …) pokazuje način kako izgraditi uređaj koji prevodi senzorni unos u vibracione stimulanse. Ti vibracijski stimulansi su p
Svjetla za upravljanje glasom Elektronika RGB LED trake i više s Cortanom i Arduino kućnom automatizacijom: 3 koraka
Upravljanje glasom 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 da biste ugasili svjetlo? No, sva postojeća rješenja poput google home -a su preskupa? Sada možete sami napraviti za manje od 10 USD. A još bolje, vrlo je jednostavno
QuizzPi, trivijalna igra Raspberry Pi s Pythonom: 7 koraka (sa slikama)
QuizzPi, trivijalna igra Raspberry Pi s Pythonom: QuizzPi je igra s trivijalnim igrama arkadnog tipa. QuizzPi je rođen jer sam imao potrebu kćeri zabavljati. Ima 7 godina i već zahtijeva upotrebu novih tehnologija, ideja je bila stvoriti nešto što će biti i zabavno i poučno
Recikliranje vašeg starog prekidača za prigušivanje zraka kao varijabilne kontrole temperature vašeg lemilice: 7 koraka
Recikliranje vašeg starog prekidača za prigušivanje zraka kao promenljive kontrole temperature vašeg lemilice: Video sam mnogo profesionalnih kontrola promenljive 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 otpad i neke stare PVC kutije s prekidačima koja je došla s njim i tako