Indholdsfortegnelse:
- Trin 1: Hvad du får brug for
- Trin 2: Byg dit kredsløb
- Trin 3: Opret et script til kontrol og test af lysdioderne
- Trin 4: Tilføjelse af fleksibilitet ved hjælp af parametre og betingede erklæringer
Video: Styring af flere lysdioder med Python og din Raspberry Pi's GPIO -pins: 4 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:27
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
- 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 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
Å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:
MCP23017 GPIO -styring via Ethernet: 5 trin
MCP23017 GPIO Control Via Ethernet: Styr MCP23017 IO-extender via ethernet ved hjælp af Sensor Bridge og MCP23017 breakout board. Kommandoer sendt af Python -scripts, browser -URL'er eller ethvert system, der er i stand til HTTP -kommunikation. Kan integreres i Home Assistant til hjemmeautomatisering. Ledninger er
Shadow Light Box - Styring med IR -fjernbetjening med Arduino: 8 trin (med billeder)
Shadow Light Box - Styring med IR -fjernbetjening med Arduino: Denne instruktion vil guide dig til, hvordan du laver skygge -lysboks til næste jul. Du kan lave det selv til at dekorere dit værelse eller gøre det til din ven som en gave. Denne skyggeæske kan lave forskellige slags farver ved at blande farve med rød, blå, grøn farve
Arduino -styring af flere P.I.R -sensorer på samme bord: 3 trin
Arduino -styring af flere PIR -sensorer på samme bord: I dag vil jeg fortælle dig, hvordan du forbinder flere PIR -sensorer med en enkelt Arduino Bord > her har jeg også brugt 4 -kanals relæmodul til ekstra funktionalitet. (ELLER Du kan bruge så mange pin din arduin
Hold din baby kølig denne sommer - Styring af stumme fans med smarte ting !: 6 trin (med billeder)
Holde din baby kølig denne sommer - Styring af stumme fans med smarte ting !: For to uger siden på tidspunktet for denne skrivning blev jeg far til en utrolig baby dreng! Da årstiderne skiftede, dagene blev længere og temperaturerne blev varmere, tænkte jeg, at det ville være godt at have en slags skærm i
Styring af din Arduino med HTML/Javascript på den nemme måde: 8 trin
Styring af din Arduino Med HTML/Javascript på den nemme måde: Denne vejledning viser dig, hvordan du styrer en arduino med et ajax -opkald fra en adafruit Huzzah ved hjælp af kun javascript -funktioner. Grundlæggende kan du bruge javascript på html -siden, der giver dig mulighed for let at skrive html -grænseflader med enkle j