Indholdsfortegnelse:

Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins: 4 trin (med billeder)
Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins: 4 trin (med billeder)

Video: Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins: 4 trin (med billeder)

Video: Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins: 4 trin (med billeder)
Video: ESP32 Turorial 1 - Introduction to SunFounder's ESP32 IoT Learnig kit Software and Arduino IDE 2024, November
Anonim
Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins
Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins

Denne instruktionsbog viser, hvordan du styrer flere GPIO -ben på din RaspberryPi for at drive 4 lysdioder. Det vil også introducere dig til parametre og betingede udsagn i Python.

Vores tidligere instruerbare brug af din Raspberry Pi's GPIO -pins til at styre en LED viser, hvordan du tænder og slukker en enkelt LED ved hjælp af kommandoen GPIO.output. Denne instruks bygger på denne viden for at lære dig, hvordan du får mere kontrol over dit kredsløb.

Trin 1: Hvad du får brug for

Hvad du får brug for
Hvad du får brug for
Hvad du får brug for
Hvad du får brug for

- En RaspberryPi med Raspbian allerede installeret. Du skal også have adgang til Pi ved hjælp af en skærm, mus og tastatur eller via fjernskrivebord. Du kan bruge enhver model af Raspberry Pi. Hvis du har en af Pi Zero -modellerne, vil du måske lodde nogle headerpinde til GPIO -porten.

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

- Et loddefrit prototypebrødbræt

- 4 x 330 ohm modstande

- Nogle tråde fra mand til kvinde

Trin 2: Byg dit kredsløb

Byg dit kredsløb
Byg dit kredsløb
Byg dit kredsløb
Byg dit kredsløb

Byg ovenstående kredsløb på dit brødbræt, og sørg for, at ingen af komponenternes ledninger rører, og at lysdioderne er tilsluttet korrekt.

Hvordan identificerer du de positive og negative afledninger (polariteten) på dine lysdioder? Hvis du ser nærmere på en LED, vil du se, at den har to små stykker metal inde i det farvede hus. Disse kaldes anoden og katoden. Katoden er den største af de to og er også forbundet med LED'ernes negative ledning.

Når du har kontrolleret dit kredsløb, skal du slutte jumperkablerne til din Raspberry Pi's GPIO -ben ved at følge ovenstående diagram.

Trin 3: Opret et script til kontrol og test af lysdioderne

Opret et script til kontrol og test af lysdioderne
Opret et script til kontrol og test af lysdioderne

Åbn IDLE på din Raspberry Pi (Menu> Programmering> Python 2 (IDLE)).

Åbn et nyt projekt, gå til Filer> Ny fil. Indtast derefter (eller kopier og indsæt) 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. output (23, Falsk)

Gem dit projekt som multilights.py (Fil> Gem som) i mappen Raspberry Pis Documents.

Åbn Terminal på din Raspberry Pi (Menu> Tilbehør> Terminal), og naviger til mappen Dokumenter ved at skrive følgende:

cd/home/pi/Documents

Du kan nu køre dit nye script ved at skrive følgende:

python multilights.py

Lysene vil skiftes til at tænde og slukke. Ovenstående script bruger kommandoen time.sleep til at oprette en pause mellem hvert trin, hvilket får hvert lys til at være tændt i 3 sekunder og til at vente i 1 sekund, før det næste lys tændes.

Trin 4: Tilføjelse af fleksibilitet ved hjælp af parametre og betingede erklæringer

Ved at bruge parametre og betingede udsagn kan vi gøre ovenstående script meget mere fleksibelt.

Et parameter giver dig mulighed for at gemme en værdi, som du kan bruge senere i scriptet. De mest almindelige værdityper er strenge (tekst), heltal (hele tal) eller floats (decimaltal).

En betinget erklæring afgør, om et kodesegment skal udføres eller ej, ved at kontrollere, om en bestemt betingelse er opfyldt. Tilstanden kan også involvere parametre.

Åbn IDLE på din Raspberry Pi, og åbn et nyt projekt (Fil> Ny fil). Indtast derefter følgende. Vær omhyggelig med at sikre, at alle indrykninger (faner) er inkluderet ved hjælp af 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) if whled == "c": GPIO.output (LEDc, True) if whichled == "d": GPIO.output (LEDd, True) if whled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)

Gem dit projekt som controllight.py (Fil> Gem som) i mappen Dokumenter. Åbn nu Terminal (Menu> Tilbehør> Terminal), og skriv følgende kommando:

python controllight.py b on

Den anden LED skulle tænde. Indtast nu følgende:

python controllight.py b off

Den anden LED skulle slukke.

I linje 5, 6, 7 & 8 opretter vi parametrene LEDa, LEDb, LEDc og LEDd for at gemme hvilken GPIO -pin vi har forbundet til hvilken LED. Dette gør det muligt for os at bruge alternative GPIO -pins uden at skulle foretage væsentlige ændringer i scriptet.

For eksempel, hvis vi i stedet skulle forbinde de første LED'er til Pin 3 (GPIO 2), skulle vi bare ændre linje 5 til følgende:

LEDa = 2

Linje 4 gemmer de værdier, du skrev efter controllight.py, i parametrene som (c) og ledaction (on). Scriptet bruger derefter disse parametre sammen med en række betingede erklæringer til at beslutte, hvilken LED der skal kontrolleres, og om den skal tændes eller slukkes.

Linje 16 (hvis ledaction == "on":) er en betinget erklæring. De indrykkede linjer, der følger denne erklæring, kører kun, hvis erklæringens betingelse er opfyldt. I dette scenario er betingelsen, at ledaction indeholder teksten på.

Ved at læse scriptets andre betingede udsagn igennem, kan du forudsige, hvad der vil ske, når du skriver følgende kommando i Terminal?

python controllight.py alt sammen

Hvorfor ikke prøve det og skrive dit svar i kommentarfeltet herunder.

Anbefalede: