Innholdsfortegnelse:

Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner: 4 trinn (med bilder)
Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner: 4 trinn (med bilder)

Video: Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner: 4 trinn (med bilder)

Video: Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner: 4 trinn (med bilder)
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, November
Anonim
Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner
Kontrollere flere lysdioder med Python og Raspberry Pi's GPIO -pinner

Denne instruksen viser hvordan du kan kontrollere flere GPIO -pinner på RaspberryPi for å drive 4 lysdioder. Det vil også introdusere deg for parametere og betingede utsagn i Python.

Vår tidligere instruerbare bruk av din Raspberry Pi's GPIO -pins for å kontrollere en LED viser hvordan du slår en enkelt LED på og av ved hjelp av kommandoen GPIO.output. Denne instruksen bygger på denne kunnskapen for å lære deg hvordan du får mer kontroll over kretsen din.

Trinn 1: Det du trenger

Hva du trenger
Hva du trenger
Hva du trenger
Hva du trenger

- En RaspberryPi med Raspbian allerede installert. Du må også ha tilgang til Pi ved hjelp av en skjerm, mus og tastatur eller via eksternt skrivebord. Du kan bruke hvilken som helst modell av Raspberry Pi. Hvis du har en av Pi Zero -modellene, kan det være lurt å lodde noen toppnål til GPIO -porten.

- Røde, blå, gule og grønne lysdioder

- Et loddfritt prototypebrødbrett

- 4 x 330 ohm motstander

- Noen mannlige til kvinnelige hoppetråder

Trinn 2: Bygg kretsen din

Bygg kretsen din
Bygg kretsen din
Bygg kretsen din
Bygg kretsen din

Bygg kretsen ovenfor på brødbrettet og sørg for at ingen av komponentledningene berører hverandre og at lysdiodene er koblet riktig vei.

Hvordan identifiserer du de positive og negative ledningene (polariteten) på lysdiodene dine? Hvis du ser nøye på en LED, vil du se at den har to små metallbiter inne i det fargede huset. Disse kalles anoden og katoden. Katoden er den største av de to og er også koblet til LEDs negative ledning.

Når du har sjekket kretsen din, kobler du til jumperkablene til Raspberry Pi's GPIO -pinner ved å følge diagrammet ovenfor.

Trinn 3: Lag et skript for å kontrollere og teste lysdiodene

Lag et skript for å kontrollere og teste lysdiodene
Lag et skript for å kontrollere og teste lysdiodene

Åpne IDLE på Raspberry Pi (Meny> Programmering> Python 2 (IDLE)).

Åpne et nytt prosjekt, gå til Fil> Ny fil. Skriv deretter inn (eller kopier og lim inn) følgende kode:

importer RPi. GPIO som GPIO

importtid 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. utgang (23, usann)

Lagre prosjektet som multilights.py (Fil> Lagre som) i mappen Raspberry Pis Documents.

Åpne Terminal på Raspberry Pi (Meny> Tilbehør> Terminal) og naviger til Dokumenter -mappen ved å skrive følgende:

cd/home/pi/Documents

Du kan nå kjøre det nye skriptet ditt ved å skrive følgende:

python multilights.py

Lysene vil ta det igjen for å slå på og av. Skriptet ovenfor bruker kommandoen time.sleep til å lage en pause mellom hvert trinn, slik at hvert lys forblir på i 3 sekunder og venter i 1 sekund før det neste lyset slås på.

Trinn 4: Legge til fleksibilitet ved å bruke parametere og betingede utsagn

Ved å bruke parametere og betingede utsagn kan vi gjøre skriptet ovenfor mye mer fleksibelt.

En parameter lar deg lagre en verdi som du kan bruke senere i skriptet. De vanligste typene verdier er strenger (tekst), heltall (hele tall) eller flyter (desimaltall).

En betinget erklæring vil avgjøre om et kodesegment skal kjøres eller ikke ved å kontrollere om en bestemt betingelse er oppfylt. Tilstanden kan også involvere parametere.

Åpne IDLE på Raspberry Pi og åpne et nytt prosjekt (Fil> Ny fil). Skriv deretter inn følgende. Vær forsiktig med å sikre at alle innrykkene (fanene) er inkludert ved å bruke tabulatortasten:

importer RPi. GPIO som GPIO

importtid fra 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 whled == "b": GPIO.output (LEDb, False) if whled == "c": GPIO.output (LEDc, False) if whled == "d": GPIO.output (LEDd, False) if whled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. output (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whled == "a": GPIO.output (LEDa, True) if whled == "b": GPIO.output (LEDb, True) ifwhled == "c": GPIO.output (LEDc, True) ifwhled == "d": GPIO.output (LEDd, True) if whled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Lagre prosjektet som controllight.py (Fil> Lagre som) i Dokumenter -mappen. Åpne nå Terminal (Meny> Tilbehør> Terminal) og skriv inn følgende kommando:

python controllight.py b på

Den andre lysdioden skal slås på. Skriv nå følgende:

python controllight.py b off

Den andre lysdioden skal slås av.

I linje 5, 6, 7 og 8 lager vi parameterne LEDa, LEDb, LEDc og LEDd for å lagre hvilken GPIO -pin vi har koblet til hvilken LED. Dette gjør at vi kan bruke alternative GPIO -pinner uten å måtte gjøre vesentlige endringer i skriptet.

For eksempel, hvis vi skulle koble de første LED -ledningene til Pin 3 (GPIO 2) i stedet, trenger vi bare å endre linje 5 til følgende:

LEDa = 2

Linje 4 lagrer verdiene du skrev etter controllight.py i parameterne som (c) og ledaction (på). Skriptet bruker deretter disse parametrene, sammen med en rekke betingede utsagn for å bestemme hvilken LED som skal kontrolleres og om den skal slås på eller av.

Linje 16 (hvis ledaction == "på":) er en betinget uttalelse. De innrykkede linjene som følger denne setningen vil bare kjøres hvis uttalelsens betingelse er oppfylt. I dette scenariet er betingelsen at ledaction inneholder teksten på.

Ved å lese gjennom skriptets andre betingede utsagn, kan du forutsi hva som vil skje når du skriver følgende kommando i Terminal?

python controllight.py alt på

Hvorfor ikke prøve det og legg inn svaret ditt i kommentarfeltet nedenfor.

Anbefalt: