Raspberry Pi: Como acender um LED?

31 Comentários

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.

rpi_01

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.

gpio_00

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.

led_02

Ligações físicas

De acordo com o diagrama lógico, as ligações devem ficar desta forma.

rpi_03

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).

rpi_02

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.

Comentários

31

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de vaderstarlight
    vaderstarlight

    E que tal por uma pilha de 3 volts que e mais fácil

    1. Avatar de R o B
      R o B

      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?

  2. Avatar de Jorge Rosa
    Jorge Rosa

    Excelente tutorial! Venham mais destes! 🙂

  3. Avatar de Rui
    Rui

    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Ω…

    1. Avatar de int3
      int3

      era isso que ia dizer. 330 é o normal. basta fazer os cálculos a voltagem desce bastante.

    2. Avatar de Pedro Pinto

      Boas Rui

      Na verdade para este tutorial foi mesmo de 1k pois não tinha cá outra…e funcionou 🙂

      1. Avatar de R o B
        R o B

        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.

      2. Avatar de Rui
        Rui

        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…

        1. Avatar de Pedro Pinto

          Obrigado Rui 🙂 Confesso que esta nao é a minha área mas fico feliz quando se partilha este tipo de conhecimento. Assim aprendemos todos 🙂

  4. Avatar de Bruno
    Bruno

    Ofereci-me um raspberry pi neste natal 🙂
    Assim que tiver o resto dos componentes vou experimentar. Fico a aguardar mais posts do género.

  5. Avatar de joao
    joao

    E possível ligar o LED diretamente ao gpio sem resistencia ou breadbard??

    1. Avatar de Ruben F.
      Ruben F.

      Queimas o raspberry ou o led senao colocares uma resistencia.

    2. Avatar de int3
      int3

      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).

    3. Avatar de R o B
      R o B

      Se for um led de até 3.3v não deve haver problema, mas mais vale jogar pelo seguro.

      1. Avatar de Rui
        Rui

        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.

  6. Avatar de Joooo
    Joooo

    Podiam explicar a funcionalidade da resistência?

    1. Avatar de Alfie
      Alfie

      Usa-se para limitar a corrent e a voltagem.
      Se na escola deste fisica e electridade chega. Ou um cursozito de electridade.

    2. Avatar de Ruben F.
      Ruben F.

      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 🙂

    3. Avatar de int3
      int3

      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).

      1. Avatar de Daniel
        Daniel

        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.

  7. Avatar de Ui Ui
    Ui Ui

    Eu quero é uma caneca dessas.

  8. Avatar de M3mn0t
    M3mn0t

    Bom tutorial.

    PPLWARE, deveriam usar mais este bicho (RASP) com python que dá excelentes artigos!!!!!

  9. Avatar de Paulo F
    Paulo F

    Colocar o rasp numa caixa com um hdd e depois quando ligasse o rasp acendia o led! Ficava giro, não?

    1. Avatar de Bruno
      Bruno

      Se tiveres uma caixa transparente, isso já acontece “out of the box” 😉

  10. Avatar de Joaquim
    Joaquim

    Onde é que se pode comprar um kit de eletrónica para os iniciantes fazerem umas brincadeiras com o raspberry?

  11. Avatar de Natália
    Natália

    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!

  12. Avatar de Lucas
    Lucas

    Excelente tutorial! Deu certo, muito obrigado!

  13. Avatar de Felipe Breda
    Felipe Breda

    Da para colocar 2 leds?