Aula 7: Acionando LEDs com um botão

Como dito anteriormente, os pinos de GPIO também podem ser utilizados como entrada. Na aula anterior aprendemos e a ligar e desligar um LED através da GPIO. Nesta aula vamos utilizar um botão para fazer o acionamento de três LEDs.

Material Necessário

Na montagem do circuito, vamos precisar de:

Como funciona um push-button?

O dispositivo que utilizaremos como entrada na Raspberry Pi é um botão, do tipo push-button.

Push-button

Uma chave push-button funciona como um contato que abre e fecha, sendo assim, uma chave possui dois valores, 0 ou 1, aberto ou fechado. Conectando uma chave a uma porta da placa podemos ler o valor 0 ou 1 da chave e assim tomar uma ação, que no caso do nosso exemplo será acionar o LED. 

Funcionamento do push-button

Percebemos na imagem que quando o botão não está pressionado o circuito está aberto e não flui corrente por ele. Quando o botão é pressionado, esse contato é fechado permitindo que a corrente flua no circuito. O fluxo, ou não, de corrente é um dado que poderemos trabalhar posteriormente por meio da programação.

Circuito para acionar LEDs com um botão

No exemplo da aula anterior, usamos apenas uma porta do Raspberry para acionar um LED, que piscava a intervalos de 0,5 segundos. Dessa vez, vamos utilizar 4 portas, sendo que 3 serão de saída, onde estarão ligados os LEDs, e 1 de entrada, onde vamos ligar um push-button.

Montando o circuito abaixo, teremos um esquema com 3 LEDS e 1 botão sendo que a cada toque no botão um LED é aceso:

Circuito para acionar LEDs com um botão

O resistores de 150Ω devem estar ligados junto ao LEDs enquanto que o resistor de 6.8kΩ deve estar ligado junto ao push-button, como mostra a imagem acima.

Código para acionar LEDs com um botão

No programa temos uma variável contador, que é incrementada a cada toque no botão. O valor 1 aciona o led vermelho (porta 11 – GPIO17), o valor 2 aciona o led amarelo (porta 12 – GPIO18) e o valor 3 aciona o led verde (porta 13 – GPIO27). Quando o contador chega ao valor 4, todos os leds são apagados, a variável contador é zerada e o processo é reiniciado:

#Programa : Raspberry push button e leds
#Autor : FILIPEFLOP
 
contador = 0
 
import RPi.GPIO as GPIO
import time
 
GPIO.setmode(GPIO.BOARD)
 
#Define os pinos dos leds como saida
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(13, GPIO.OUT)
 
#Define o pino do botao como entrada
GPIO.setup(18, GPIO.IN)
 
#Apaga todos os leds
GPIO.output(11,0)
GPIO.output(12,0)
GPIO.output(13,0)
 
while(1):
    #Verifica se o botao foi pressionado
    if GPIO.input(18) == True:
        #Incrementa a variavel contador
        contador = contador +1
        time.sleep(0.5)
    #Caso contador = 1, acende o led vermelho
    if contador == 1:
        GPIO.output(11, 1)
         
    #Caso contador = 2, acende o led verde
    if contador == 2:
        GPIO.output(12, 1)
 
    #Caso contador = 3, acende o led amarelo
    if contador == 3:
        GPIO.output(13, 1)
 
    #Caso contador = 4, apaga todos os leds e
    #zera a variavel contador
    if contador == 4:
        GPIO.output( 11, 0)
        GPIO.output( 12, 0)
        GPIO.output( 13, 0)
        contador = 0

Agora que aprendemos a usar os botões em projetos eletrônicos podemos seguir para a próxima aula, onde iremos aprender a utilizar os botões para desligar e reiniciar a Raspberry Pi.