Além das funcionalidades já conhecidas deste pequeno PC, o Raspberry Pi disponibiliza também a interface GPIO, que nos permite interligá-lo com outros dispositivos (ex. LEDs, sensores, actuadores, etc). Hoje vamos aprender como podem facilmente ligar/desligar um LED.
Neste tutorial vamos aprender a ligar/desligar um LED. Para isso vamos precisar do seguinte material:
Material Necessário
- Breadboard
- 1 LED
- 1 Resistência (para este tutorial usamos de 1kΩ)
- 2 cabos macho/fêmea
Pins no GPIO
O GPIO (General Purpose Input/Output) é basicamente uma interface que nos permite ligar ao PI a outros dispositivos e controlar os mesmos. Por exemplo, podemos ligar e visualizar o output do sensor de humidade, de temperatura, gás, ligar/desligar um LED ou uma lâmpada, por exemplo.
O diagrama seguinte mostra o layout de pinos para os vários modelos do Raspberry Pi. Para este tutorial usamos o Pi 2.
Construir o Circuito
Como referido, o objectivo deste tutorial é simplesmente conseguir controlar um LED. Basicamente o LED irá acender quando receber energia e a resistência tem apenas como função a limitação de corrente no circuito.
Vamos então ligar o primeiro fio ao pino 3 (GND) e vamos usar o pino 18 para ligar o segundo fio (ver layout de pinos do Pi 2). É a partir do pino 18 que vamos controlar e definir se o LED está aceso ou apagado.
Ligações físicas
De acordo com o diagrama lógico, as ligações devem ficar desta forma.
Código
Além da simplicidade da montagem do circuito, a programação é também simples. Para isso basta que criem um ficheiro (ex. LED.py)
nano LED.py |
e insiram o seguinte código:
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(18,GPIO.OUT) print "LED on" GPIO.output(18,GPIO.HIGH) time.sleep(1) print "LED off" GPIO.output(18,GPIO.LOW) |
Depois é só gravar e executar o código usando o seguinte comando:
sudo python LED.py |
Breve explicação do código
GPIO.setmode(GPIO.BCM)
- Primeiro temos de definir qual a nomenclatura de numeração usada (isto porque existem vários nomes para cada pino). Neste caso vamos usar BMC – Broadcom SOC channel (numeração apresentada nos rectângulos no esquema seguinte).
GPIO.setup(18,GPIO.OUT)
- Definimos depois que o pino 18 como saída, ou seja, podemos definir o seu estado para “on” ou “off”.
GPIO.output(18,GPIO.HIGH)
- Mudar o estado do pino para ON e assim acender o LED
GPIO.output(18,GPIO.LOW)
- Mudar o estado do pino para OFF e assim apagar o LED