Encender un LED co GPIO da framboesa Pi

A principios deste ano tes un percorrido polo GPIO de Raspberry Pi e tamén recomendo algúns paneis útiles para identificar os números de pin. Hoxe seguimos ese tema e comezamos a usar estes pines combinados con código e hardware.

O GPIO é como o Raspberry Pi fala co mundo exterior: "cousas reais": usa o código para programar os sinais e as tensións desde e para o encabezado de 40 pinos.

Codificar co GPIO é razoablemente sinxelo de comezar, especialmente para iniciadores como LEDs e timbre. Con só un par de compoñentes e algunhas liñas de código pode acender ou acender un LED como parte do seu proxecto.

Este artigo mostraralle o que precisa para acender un LED usando o código Python no seu Raspberry Pi, usando o método tradicional 'RPi.GPIO'.

01 de 04

O que necesitas

Só se precisan algunhas pezas simples e baratas para este proxecto. Richard Saville

Aquí tes unha lista de todo o que precisas para este pequeno proxecto iniciador. Debe poder atopar estes elementos na súa tenda de fabricantes favoritas ou en sitios de poxas en liña.

02 de 04

Crear o circuíto - Paso 1

Conecte cada pasador á placa con cables de puente. Richard Saville

Usaremos 2 patillas GPIO para este proxecto, un pin de fondo (pin físico 39) para a perna de terra do LED, e un pin xenérico GPIO (GPIO 21, pin física 40) para encender o LED, pero só cando decidimos: onde vén o código.

En primeiro lugar, desactiva o Raspberry Pi. Agora, usando os cables do saltador, conecte o pin do chan a un carril na súa placa. A continuación faga o mesmo para o pin GPIO, que se conecta a outro.

03 de 04

Crear o circuíto - Paso 2

O LED e a resistencia completan o circuíto. Richard Saville

A continuación engádense o LED e a resistencia ao circuíto.

Os LED teñen polaridade, o que significa que deben estar conectados de certa forma. Normalmente teñen unha perna máis longa que é o ánodo (positivo) e normalmente un bordo plano na cabeza de plástico LED que denota a perna cátodo (negativa).

A resistencia úsase para protexer tanto o LED que recibe demasiado corrente, como o pin GPIO de "dar" demasiado - o que podería danar ambos.

Hai un pouco de clasificación de resistencia xenérica para LEDs estándar - 330ohm. Hai algunhas matemáticas detrás diso, pero por agora imos centrarnos no proxecto - sempre podes ollar a lei de ohms e temas relacionados despois.

Conecte unha perna da resistencia ao carril GND na súa placa e a outra perna de resistencia á pista conectada á perna máis curta do seu LED.

A perna máis longa do LED agora ten que unirse á pista conectada ao pin GPIO.

04 de 04

Código Python GPIO (RPi.GPIO)

RPi.GPIO é unha excelente biblioteca para usar os pinos GPIO. Richard Saville

Polo momento, temos un circuíto conectado e listo para percorrer, pero non dixemos o noso pin GPIO para enviar aínda ningunha potencia, polo que o LED non debe estar iluminado.

Fagamos un ficheiro Python para dicir ao noso pin GPIO que envíe algo de enerxía durante 5 segundos e despois pare. A última versión de Raspbian terá xa instaladas as bibliotecas GPIO necadas.

Abra unha fiestra de terminal e cree un novo script de Python escribindo o seguinte comando:

sudo nano led1.py

Isto abrirá un ficheiro en branco para que introduza o noso código. Introduce as liñas seguintes:

#! / usr / bin / python # Importar as bibliotecas que precisamos importar RPi.GPIO como tempo de importación GPIO # Configurar o modo GPIO GPIO.setmode (GPIO.BCM) # Configurar o LED GPIO número LED = 21 # Configure o pin LED GPIO como un GPIO.setup de saída (LED, GPIO.OUT) # Xire o pin GPIO en GPIO.output (LED, True) # Espere 5 segundos time.sleep (5) # Xire o PIN GPIO fóra de GPIO.output (LED, False)

Prema Ctrl + X para gardar o ficheiro. Para executar o ficheiro, introduza o seguinte comando no terminal e prema Intro:

sudo python led1.py

O LED debe iluminarse durante 5 segundos e logo desactível, finalizando o programa.

Por que non tentar cambiar o número "time.sleep" para acender o LED por diferentes momentos ou tentar cambiar o "GPIO.output (LED, True)" a "GPIO.output (LED, False)" e ver que pasa?