Lig 'n LED met die Raspberry Pi se GPIO

Vroeër vanjaar het u ' n toer van die Raspberry Pi se GPIO gekry, en ook aanbeveel dat dit baie bruikbare breekborde is om pinnommers te identifiseer. Vandag gaan ons voort met die tema en begin met die gebruik van hierdie penne gekombineer met kode en hardeware.

Die GPIO is hoe die Framboos Pi met die buitewêreld praat - "regte dinge" - met behulp van die kode om die seine en spannings na en van die 40-punts kopkop te programmeer.

Kodering met die GPIO is redelik maklik om mee te begin, veral vir beginnerprojekte soos LED's en buzzers. Met net 'n paar komponente en 'n paar reëls kode kan jy 'n LED lig of flits as deel van jou projek.

Hierdie artikel sal jou wys wat jy nodig het om 'n LED te gebruik met die Python-kode op jou Raspberry Pi, met behulp van die tradisionele 'RPi.GPIO'-metode.

01 van 04

Wat jy nodig het

Slegs 'n paar eenvoudige en goedkoop onderdele word benodig vir hierdie projek. Richard Saville

Hier is 'n lys van alles wat jy nodig het vir hierdie klein voorgeregsprojek. U moet hierdie items kan vind in u gunstelingverkoperswinkel of aanlynveilingwebwerwe.

02 van 04

Skep die stroombaan - Stap 1

Koppel elke pen aan die broodbord met trui. Richard Saville

Ons gaan 2 GPIO-penne vir hierdie projek gebruik, 'n grondpen (fisiese pen 39) vir die grondbeen van die LED en 'n generiese GPIO-pen (GPIO 21, fisiese pen 40) om die LED aan te dryf - maar net wanneer ons besluit om - waar kom die kode in.

Eerstens, skakel jou Framboos Pi af. Nou, met behulp van die jumperdrade, koppel die grondpen by 'n baan op jou broodbord. Volgende doen dieselfde vir die GPIO-pen, wat aansluit by 'n ander laan.

03 van 04

Skep die stroombaan - Stap 2

Die LED en die resistor voltooi die stroombaan. Richard Saville

Vervolgens voeg ons die LED en weerstand by die kring.

LED's het polariteit - wat beteken dat hulle op 'n sekere manier bedraad moet wees. Hulle het gewoonlik een langer been wat die anode (positiewe) been is, en gewoonlik 'n plat rand op die LED plastiekkop wat die katode (negatiewe) been aandui.

'N Resistor word gebruik om beide die LED te beskerm teen te veel stroom, en die GPIO-pen gee te veel te gee - wat beide kan beskadig.

Daar is 'n bietjie van 'n generiese weerstand aanslag vir standaard LED's - 330ohm. Daar is wiskunde daarvoor, maar laat ons nou fokus op die projek. U kan dan altyd na die ohm-wet en verwante onderwerpe kyk.

Koppel een been van die resistor aan die GND-baan op jou broodbord en die ander weerstandspoot na die baan wat aan die korter been van jou LED gekoppel is.

Die langer been van die LED moet nou by die laan aansluit wat aan die GPIO-pen gekoppel is.

04 van 04

Python GPIO-kode (RPi.GPIO)

RPi.GPIO is 'n uitstekende biblioteek vir die gebruik van die GPIO penne. Richard Saville

Op die oomblik het ons 'n stroombaan aangepak en gereed om te gaan, maar ons het nie ons GPIO-pen vertel om enige krag te stuur nie, dus moet u LED nie verlig word nie.

Kom ons maak 'n Python-lêer om ons GPIO-pen te vertel om krag vir 5 sekondes uit te stuur en stop dan. Die nuutste weergawe van Raspbian sal al die nodige GPIO-biblioteke hê.

Open 'n terminaal venster en skep 'n nuwe Python script deur die volgende opdrag in te voer:

sudo nano led1.py

Dit sal 'n leë lêer oopmaak om ons kode in te voer. Voer die onderstaande lyne in:

#! / usr / bin / python # Voer die biblioteke in wat ons nodig het om RPi.GPIO te invoer as GPIO invoer tyd. # Stel die GPIO-modus GPIO.setmode (GPIO.BCM) in. # Stel die LED GPIO nommer LED = 21 # Stel die LED GPIO pen as 'n Output GPIO.setup (LED, GPIO.OUT) # Draai die GPIO pin op GPIO.output (LED, True) # Wag 5 sekondes time.sleep (5) # Draai die GPIO pen uit GPIO.output (LED, False)

Druk Ctrl + X om die lêer te stoor. Om die lêer te hardloop, tik die volgende opdrag in die terminale en druk enter:

sudo python led1.py

Die LED moet 5 sekondes aansteek en dan afskakel, die program eindig.

Hoekom nie probeer om die 'time.sleep'-nommer te verander om die LED vir verskillende tye te verlig nie, of probeer om die' GPIO.output (LED, True) 'te verander na' GPIO.output (LED, False) 'en kyk wat gebeur?