La inceputul acestui an ati facut un tur al GPIO-ului Raspberry Pi si de asemenea ati recomandat cateva placi de breakout pentru identificarea numerelor de pin. Astăzi continuăm acea temă și începem să folosim acești coduri combinate cu cod și hardware.
GPIO este modul în care Raspberry Pi vorbește cu lumea exterioară - "lucruri reale" - folosind codul pentru a programa semnalele și tensiunile către și de la antetul cu 40 de pini.
Codificarea cu GPIO este destul de simplă pentru a începe, în special pentru proiectele începător, cum ar fi LED-urile și sonerii. Cu doar câteva componente și câteva linii de cod puteți lumina sau flash un LED ca parte a proiectului dumneavoastră.
Acest articol vă va arăta ce aveți nevoie pentru a aprinde un LED care utilizează codul Python pe Raspberry Pi, folosind metoda tradițională "RPi.GPIO".
01 din 04
De ce ai nevoie
Iată o listă cu tot ce ai nevoie pentru acest mic demaror. Ar trebui să puteți găsi aceste articole în magazinul preferat de producție sau în site-urile de licitații online.
- O statie de lucru Raspberry Pi ce ruleaza ultimul Raspbian (Pi, ecran, tastatura, mouse, power, card SD - toate conectate)
- Un panou mic
- Un LED de 5 mm
- Un rezistor de 330 ohmi
- 2 fire de la jumătatea de sex masculin la feminin
02 din 04
Creați circuitul - Pasul 1
Vom folosi 2 PIN-uri GPIO pentru acest proiect, un pin de bază (pini fizic 39) pentru piciorul de masă al LED-ului și un pin GPIO generic (GPIO 21, pinul fizic 40) pentru alimentarea LED-ului - noi decidem la - unde se află codul.
În primul rând, opriți-vă Zmeura Pi. Acum, folosiți firele de jumperi, conectați știftul de împământare la o bandă de pe panoul de paie. Apoi faceți același lucru pentru pinul GPIO, conectându-vă la o bandă diferită.
03 din 04
Creați circuitul - Pasul 2
Apoi adăugăm LED-ul și rezistorul la circuit.
LED-urile au polaritate - adică trebuie să fie cablate într-un anumit mod. Ei au de obicei un picior mai lung, care este piciorul anod (pozitiv) și, de obicei, o margine plană pe capul din plumb LED care denotă piciorul catod (negativ).
Un rezistor este folosit pentru a proteja atât LED-ul de a primi prea mult curent, cât și pinul GPIO de la "a da" prea mult - ceea ce ar putea deteriora ambele.
Există un pic de rezistor generic pentru LED-urile standard - 330ohm. Există câteva matematici în spatele acestui lucru, dar pentru moment, să ne concentrăm asupra proiectului - puteți întotdeauna să vă uitați în legea ohms și subiecte conexe după aceea.
Conectați un picior al rezistorului la banda GND de pe panoul dvs., iar celălalt picior de rezistență pe banda conectată la piciorul mai scurt al LED-ului.
Piciorul mai lung al LED-ului trebuie acum să se alăture benzii conectate la pinul GPIO.
04 din 04
Codul Python GPIO (RPi.GPIO)
În momentul de față avem un circuit conectat și pregătit pentru a merge, dar nu am spus că pinul GPIO nu trimite încă nicio putere, astfel încât LED-ul să nu fie aprins.
Să facem un fișier Python pentru a ne spune pinului GPIO să trimită o putere timp de 5 secunde și apoi să se oprească. Ultima versiune a Raspbian va avea deja instalate bibliotecile GPIO necasare.
Deschideți o fereastră terminal și creați un nou script Python introducând următoarea comandă:
sudo nano led1.pyAceasta va deschide un fișier gol pentru ca noi să introduceți codul nostru. Introduceți liniile de mai jos:
#! / usr / bin / python # Importul bibliotecilor avem nevoie de import RPi.GPIO ca timp de import GPIO # Setați modul GPIO GPIO.setmode (GPIO.BCM) # Setați numărul LED GPIO LED = 21 # Setați pinul GPIO LED ca un ieșiți GPIO.setup (LED, GPIO.OUT) # Rotiți pinul GPIO pe GPIO.output (LED, True) # Așteptați 5 secunde time.lear (5) # Rotiți pinul GPIO în afara GPIO.output (LED,Apăsați Ctrl + X pentru a salva fișierul. Pentru a rula fișierul, introduceți următoarea comandă în terminal și apăsați enter:
sudo python led1.pyLED-ul trebuie să lumineze timp de 5 secunde, apoi să se oprească, terminând programul.
De ce nu încercați să schimbați numărul "time.sleep" pentru a aprinde LED-ul pentru momente diferite sau încercați să schimbați "GPIO.output (LED, True)" în "GPIO.output (LED, Fals)" și să vedeți ce se întâmplă?