Cuprins:
- Pasul 1: De ce veți avea nevoie
- Pasul 2: Construiește-ți circuitul
- Pasul 3: Creați un script pentru a controla și testa LED-urile
- Pasul 4: Adăugarea flexibilității utilizând parametri și instrucțiuni condiționate
Video: Controlul mai multor LED-uri cu Python și pinii GPIO ai Raspberry Pi: 4 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Acest Instructable demonstrează cum să controlați mai mulți pini GPIO pe RaspberryPi pentru a alimenta 4 LED-uri. De asemenea, vă va introduce parametrii și declarațiile condiționale în Python.
Instrucțiunile noastre anterioare folosind pinii GPIO ai Raspberry Pi pentru a controla un LED demonstrează cum să porniți și să opriți un singur LED utilizând comanda GPIO.output. Acest instructable se bazează pe aceste cunoștințe pentru a vă învăța cum să obțineți mai mult control asupra circuitului dvs.
Pasul 1: De ce veți avea nevoie
- Un RaspberryPi cu Raspbian deja instalat. De asemenea, va trebui să puteți accesa Pi utilizând un monitor, mouse și tastatură sau prin Desktop la distanță. Puteți utiliza orice model de Raspberry Pi. Dacă aveți unul dintre modelele Pi Zero, poate doriți să lipiți niște pini de antet pe portul GPIO.
- LED-uri roșii, albastre, galbene și verzi
- O placă de pâine fără sudură
- Rezistențe de 4 x 330 ohmi
- Unele fire jumper de la bărbat la femeie
Pasul 2: Construiește-ți circuitul
Construiți circuitul de mai sus pe placa dvs., asigurându-vă că niciunul dintre cablurile componentelor nu se atinge și că LED-urile sunt conectate corect.
Cum identificați cablurile pozitive și negative (polaritatea) de pe LED-urile dvs.? Dacă vă uitați atent la un LED, veți vedea că are două bucăți mici de metal în interiorul carcasei colorate. Acestea se numesc Anod și Catod. Catodul este cel mai mare dintre cele două și este, de asemenea, conectat la LED-ul negativ.
După ce ați verificat circuitul, conectați cablurile jumper pinilor GPIO ai Raspberry Pi urmând diagrama de mai sus.
Pasul 3: Creați un script pentru a controla și testa LED-urile
Pe Raspberry Pi, deschideți IDLE (Meniu> Programare> Python 2 (IDLE)).
Deschideți un proiect nou accesați Fișier> Fișier nou. Apoi tastați (sau copiați și lipiți) următorul cod:
importați RPi. GPIO ca GPIO
timp de import 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. ieșire (23, fals)
Salvați-vă proiectul ca multilights.py (Fișier> Salvare ca) în folderul Raspberry Pis Documents.
Pe Raspberry Pi deschideți Terminal (Meniu> Accesorii> Terminal) și navigați la folderul Documente tastând următoarele:
cd / home / pi / Documents
Acum puteți rula noul dvs. script tastând următoarele:
python multilights.py
Luminile îl vor lua pe rând pentru a porni și opri. Scriptul de mai sus folosește comanda time.sleep pentru a crea o pauză între fiecare pas, făcând fiecare lumină să rămână aprinsă 3 secunde și să aștepte 1 secundă înainte de a aprinde următoarea lumină.
Pasul 4: Adăugarea flexibilității utilizând parametri și instrucțiuni condiționate
Prin utilizarea parametrilor și declarațiilor condiționale, putem face scriptul de mai sus mult mai flexibil.
Un parametru vă permite să stocați o valoare pe care o puteți utiliza ulterior în script. Cele mai frecvente tipuri de valori sunt șiruri (text), numere întregi (numere întregi) sau flotante (numere zecimale).
O declarație condițională va determina dacă un segment de cod trebuie executat sau nu, verificând dacă este îndeplinită o anumită condiție. Condiția poate implica și parametri.
Deschideți IDLE pe Raspberry Pi și deschideți un proiect nou (Fișier> Fișier nou). Apoi tastați următoarele. Aveți grijă să vă asigurați că toate indentările (filele) sunt incluse utilizând tasta tab:
importați RPi. GPIO ca GPIO
timp de import din 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 whatled == "a": GPIO.output (LEDa, False) if whichled == "b": GPIO.output (LEDb, False) if whatled == "c": GPIO.output (LEDc, False) if whatled == "d": GPIO.output (LEDd, False) if whatled == "all": GPIO.output (LEDa, False) GPIO.output (LEDb, False) GPIO. output (LEDc, False) GPIO.output (LEDd, False) if ledaction == "on": if whatled == "a": GPIO.output (LEDa, True) if whichled == "b": GPIO.output (LEDb, True) if whichled == "c": GPIO.output (LEDc, True) if whichled == "d": GPIO.output (LEDd, True) if whatled == "all": GPIO.output (LEDa, True) GPIO.output (LEDb, True) GPIO.output (LEDc, True) GPIO.output (LEDd, True)
Salvați proiectul ca controlight.py (Fișier> Salvare ca) în folderul Documente. Acum deschideți Terminal (Meniu> Accesorii> Terminal) și tastați următoarea comandă:
python controllight.py b on
Al doilea LED ar trebui să se aprindă. Acum introduceți următoarele:
python controllight.py b off
Al doilea LED ar trebui să se stingă.
În liniile 5, 6, 7 și 8, creăm parametrii LEDa, LEDb, LEDc și LEDd pentru a stoca ce pin GPIO am conectat la care LED. Acest lucru ne permite să folosim pini GPIO alternativi fără a fi nevoie să facem modificări substanțiale la script.
De exemplu, dacă ar fi să conectăm primele LED-uri la pinul 3 (GPIO 2), ar trebui doar să schimbăm linia 5 la următoarea:
LEDa = 2
Linia 4 stochează valorile pe care le-ați tastat după controlight.py în parametrii care au stârnit (c) și ledaction (pornit). Scriptul folosește apoi acești parametri, alături de o serie de declarații condiționale pentru a decide ce LED să controleze și dacă îl pornește sau se oprește.
Linia 16 (dacă ledaction == "on":) este o afirmație condițională. Liniile indentate care urmează acestei instrucțiuni vor rula numai dacă este îndeplinită condiția instrucțiunii. În acest scenariu, condiția este ca ledaction să conțină textul pe.
Citind alte declarații condiționale ale scriptului, puteți prezice ce se va întâmpla când tastați următoarea comandă în Terminal?
python controllight.py totul pornit
De ce să nu încerci și postează răspunsul tău în secțiunea de comentarii de mai jos.
Recomandat:
Eliminați fundalul mai multor imagini utilizând Photoshop 2020: 5 pași
Eliminați fundalul mai multor imagini folosind Photoshop 2020: Eliminarea fundalului unei imagini este foarte ușor acum! Acesta este modul în care se utilizează Adobe Photoshop 2020 pentru a elimina fundalul mai multor imagini (lot) utilizând un script simplu
Cum se utilizează pinii GPIO ai unui Raspberry Pi și Avrdude la programul Bit-bang DIMP 2 sau DA PIMP 2: 9 pași
Cum se utilizează pinii GPIO ai unui Raspberry Pi și programul Avrdude la Bit-bang DIMP 2 sau DA PIMP 2: Acestea sunt instrucțiuni pas cu pas despre cum să utilizați un Raspberry Pi și comanda gratuită open-source avrdude la bit-bang -programați un DIMP 2 sau DA PIMP 2. Presupun că sunteți familiarizat cu Raspberry Pi și linia de comandă LINUX. Nu trebuie să
Cultivarea mai multor salată în spațiu mai mic sau Cultivarea salatei în spațiu, (mai mult sau mai puțin) .: 10 pași
Cultivarea mai multor salată în spațiu mai mic sau … Cultivarea salată în spațiu, (mai mult sau mai puțin). Nu aș putea fi mai încântat să proiectez pentru producția de culturi spațiale și să postez primul meu Instructable. Pentru a începe, concursul ne-a cerut
Utilizarea a mai mult de 4 motoare - Stivuirea mai multor paravane: 3 pași
Utilizarea a mai mult de 4 motoare - Stivuirea mai multor ecrane de protecție: dispozitivul de înlocuire senzorială și augmentare senzorială vibrotactilă (https: //www.instructables.com/id/Vibrotactile-Sens …) arată o modalitate de a construi un dispozitiv care traduce un senzorial intrare în stimuli vibratori. Acei stimuli vibratori sunt p
Conectarea mai multor butoane la un singur pin pe Arduino: 4 pași
Conectarea mai multor butoane la un singur pin pe Arduino: Bună tuturor, când proiectele dvs. Arduino au depășit LED-urile intermitente, este posibil să aveți nevoie de niște pini suplimentari. Vă voi arăta un truc pe care îl puteți folosi acolo unde puteți avea mai multe butoane, toate conectate la același pin analogic