Raspberry Pi: Como acender um LED?
O Natal é sinónimo de presentes e certamente alguns dos nossos leitores receberam um Raspberry Pi. Quem não o recebeu pode sempre adquiri-lo aqui, a um preço especial.
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
Para quem nunca fez algo do tipo com o Raspberry, esperamos que este tutorial seja útil e sirva de incentivo. Provavelmente iremos ter no futuro outros tutoriais do tipo e, claro, contamos sempre com a vossa colaboração.
Este artigo tem mais de um ano
E que tal por uma pilha de 3 volts que e mais fácil
Também podes, mas convém usar um transistor tipo PN2222A por exemplo, quando queres usar o gpio para controlar qualquer coisa com alimentação externa ao RPI, é mais seguro. Porque é que há pessoas que fazem o jantar quando já o podem comprar feito?
Excelente tutorial! Venham mais destes! 🙂
+1
+1
+1
Resistência de 1kΩ? O led deve acender muito pouco se é que chega mesmo a acender…
Deve ser uma gralha, na figura mostra uma resistência de 330Ω, bem melhor que 1kΩ…
era isso que ia dizer. 330 é o normal. basta fazer os cálculos a voltagem desce bastante.
Boas Rui
Na verdade para este tutorial foi mesmo de 1k pois não tinha cá outra…e funcionou 🙂
Muito bem, e até se compreende porque são as mais comuns de se ter em casa, e quando não se consegue identificar o tipo de led, é jogar pelo seguro.
Compreendo Pedro, pensei que fosse mesmo uma gralha pois na figura dá para ver que é usada uma resistência de 330, pelo código de cores.
Mas fica aqui uma dica: se colocares 2 resistências de 1k em paralelo ficas com um total de 500Ω, vais ver que o led acende com outra cor…
Obrigado Rui 🙂 Confesso que esta nao é a minha área mas fico feliz quando se partilha este tipo de conhecimento. Assim aprendemos todos 🙂
Ofereci-me um raspberry pi neste natal 🙂
Assim que tiver o resto dos componentes vou experimentar. Fico a aguardar mais posts do género.
E possível ligar o LED diretamente ao gpio sem resistencia ou breadbard??
Queimas o raspberry ou o led senao colocares uma resistencia.
3.3v não deve haver problema. mas por precaução deves sempre colocar uma resistência para controlar a intensidade (imagina como fosse a pressão de um cano de água).
Se for um led de até 3.3v não deve haver problema, mas mais vale jogar pelo seguro.
Se o led for de iluminação que tem uma tensão de +- 3.5V não tem muito mal, mas mesmo assim não aconselho por causa da corrente elevada.
Se for um led comum vermelho, verde ou amarelo tens mesmo de colocar a resistência senão estragas o Raspberry.
Podiam explicar a funcionalidade da resistência?
Usa-se para limitar a corrent e a voltagem.
Se na escola deste fisica e electridade chega. Ou um cursozito de electridade.
Tal como o nome indica, cria uma resistência á passagem de corrente eléctrica. Quanto maior for a resistência = mais ohm’s , maior dificuldade terá. Neste caso é para baixar a tensão. Senão o Led ou o Raspberry queimavam 🙂
https://en.wikipedia.org/wiki/Ohm's_law
Significa que dado uma voltagem, quanto maior a resistência menor será a intensidade. Então o LED não irá “puxar” tanta corrente da board. Se não puseres resistência terás que contar com a própria resistencia dos fios (que será baixa). E pelos cáculos irá drenar muita corrente e pode queimar o LED (mesmo sendo a 3.3v) ou até a placa.
A resistência serve para limitar a corrente.
Imagina isto em água:
Corrente em Ampere: Litros de água.
Voltagem em volt: Pressão (diferença entre dois pontos)
Resistência: Impedância (diâmetro de um cano).
Maior a resistência menor o diâmetro do cano num certo ponto. Isto faz com que os Litros de água a passar por tempo seja menor. Mas o resto continua igual (voltagem – pressão).
Boa analogia com um sistema hidraulico.
Mas permite-me só uma adenda, na corrente a analogia que fizeste deve ser em função do tempo, ou seja por exemplo, litros de água por segundo.
A corrente ou fluxo é uma medida que só faz sentido em função do tempo.
O meu primeiro professor de electrotécnia obrigou a turma a decorar esta definição de corrente electrica.
Corrente Electrica: Movimento orientado de electões livres que passam por um determinido conductor por um periodo de tempo.
Eu quero é uma caneca dessas.
Bom tutorial.
PPLWARE, deveriam usar mais este bicho (RASP) com python que dá excelentes artigos!!!!!
Colocar o rasp numa caixa com um hdd e depois quando ligasse o rasp acendia o led! Ficava giro, não?
Se tiveres uma caixa transparente, isso já acontece “out of the box” 😉
Onde é que se pode comprar um kit de eletrónica para os iniciantes fazerem umas brincadeiras com o raspberry?
Oi, ótimo artigo. Sou totalmente inexperiente nesse assunto. Comprei uma RPI2 para fazer a montagem com o recalbox. Queria saber, nesse caso, se tem como ligar um led na placa com o recalbox funcionando. Se atrapalharia a rodar os emuladores, e se, nesse caso, posso usar a mesma programação que você mostrou. Obrigada!
Excelente tutorial! Deu certo, muito obrigado!
Da para colocar 2 leds?