Encendre un LED amb el GPIO de Raspberry Pi

A principis d'aquest any heu visitat el GPIO de Raspberry Pi i també us ha recomanat unes taules de fuga realment útils per identificar els números de pin. Avui continuem aquest tema i comencem a utilitzar aquests pins combinats amb codi i maquinari.

El GPIO és com el Raspberry Pi parla amb el món exterior: "coses reals": utilitza codi per programar els senyals i les tensions cap ai des del encapçalament de 40 pins.

La codificació amb el GPIO és raonablement senzill per començar, especialment per a projectes de principiants com LEDs i timbals. Amb només un parell de components i algunes línies de codi, podeu encendre o flashejar un LED com a part del vostre projecte.

Aquest article us mostrarà el que necessiteu per encendre un LED amb codi Python a la vostra Raspberry Pi, utilitzant el mètode tradicional 'RPi.GPIO'.

01 de 04

Què necessites

Només calen algunes peces simples i barates per a aquest projecte. Richard Saville

Aquí teniu una llista de tot el que necessiteu per a aquest petit projecte inicial. Heu de poder trobar aquests elements a la vostra botiga de fabricants favorits o als llocs de subhastes en línia.

02 de 04

Crea el circuit: pas 1

Connecteu cada pin al panell amb cables de pont. Richard Saville

Anem a utilitzar 2 pins GPIO per a aquest projecte, un pin de fons (pin física 39) per a la cama de terra del LED, i un pin GPG genèric (GPIO 21, pin físic 40) per encendre el LED, però només quan Decidim: on és on entra el codi.

En primer lloc, apagueu el Raspberry Pi. Ara, utilitzant els cables del pont, connecteu el pin de terra a un carril de la vostra taula. A continuació, feu el mateix per al pin GPIO, que es connecta a un carril diferent.

03 de 04

Crea el circuit - Pas 2

El LED i la resistència completen el circuit. Richard Saville

A continuació, afegim el LED i la resistència al circuit.

Els LED tenen polaritat, és a dir, s'han de connectar d'una manera determinada. En general, tenen una cama més gran que és l'ànode (positiu) de la cama, i normalment una vora plana al capçal de plàstic LED que denota la cata (negativa) de la cama.

Una resistència s'utilitza per protegir tant el LED de rebre massa corrent, com el pin GPIO de "donar" massa - el que podria danyar tant.

Hi ha una mica d'un valor de resistència genèrica per a LED estàndard: 330ohm. Hi ha algunes matemàtiques darrere d'això, però de moment anem a centrar-nos en el projecte: sempre podeu mirar la llei d'honor i els temes relacionats després.

Connecteu una cama de la resistència al carril GND a la vostra taula i la resta de la cama de resistència al carril connectat a la cama més curta del LED.

La part més llarga del LED ara necessita unir-se al carril connectat al pin GPIO.

04 de 04

Codi Python GPIO (RPi.GPIO)

RPi.GPIO és una excel·lent biblioteca per utilitzar els pins GPIO. Richard Saville

En aquests moments tenim un circuit connectat i llest per anar, però no hem dit el nostre pin GPIO per enviar cap poder encara, de manera que el vostre LED no s'ha de encendre.

Anem a fer un fitxer de Python per dir-li al nostre pin GPIO que envieu una potència durant 5 segons i després s'atura. L'última versió de Raspbian tindrà ja instal·lades les biblioteques GPIO insegures.

Obriu una finestra de terminal i creeu un nou script de Python introduint el següent comandament:

sudo nano led1.py

Això obrirà un fitxer en blanc per introduir el nostre codi. Introduïu les línies següents:

#! / usr / bin / python # Importa les biblioteques que necessitem importar RPi.GPIO com temps d'importació de GPIO # Estableix el mode GPIO GPIO.setmode (GPIO.BCM) # Estableix el LED GPIO número LED = 21 # Estableix el pin GPIO LED com a sortida GPIO.setup (LED, GPIO.OUT) # Gireu el pin GPIO a GPIO.output (LED, True) # Espera 5 segons time.sleep (5) # Gireu el pin GPIO a GPIO.output (LED, False)

Premeu Ctrl + X per desar el fitxer. Per executar el fitxer, introduïu l'ordre següent al terminal i premeu Intro:

sudo python led1.py

El LED s'ha d'il·luminar durant 5 segons, després es desactiva i finalitza el programa.

Per què no proveu de canviar el número "time.sleep" per encendre el LED per diferents hores o proveu de canviar el "GPIO.output (LED, True)" a "GPIO.output (LED, False)" i veure què passa?