Introdução ao Raspberry Pi – Lendo a Porta GPIO

359 views

Primeiros Passos com Raspberry: Neste Projeto Você Verá Como Escrever um Dado Na Porta GPIO da Raspberry Pi 3. Confira

Olá pessoal! Hoje iremos tirar do nosso baú um tutorial sobre como ler um dado na porta GPIO do Raspberry Pi 3 através de um botão.

Primeiramente é importante lembrar que para instalar na Raspberry o sistema operacional Linux, você pode consultar nosso post: “Primeiros Passos com Raspberry Pi 3“.

Após seguir passo a passo a instalação do sistema operacional na Raspberry Pi, vamos elaborar um programa para ler a informação que a chave está enviando para o pino GPIO da Raspberry.

Para este post vamos utilizar um resistor pull-up, conforme é visto abaixo:

resistor pull-up

Quando o botão não está pressionado é enviado nível lógico 1 para a porta GPIO da Raspberry, quando o botão está pressionado é enviado nível lógico 0.

Segue abaixo o circuito do botão ligado ao pino 12 da Raspberry:

 

Material Utilizado

circuito do botão ligado ao pino 12 da Raspberry

O código abaixo tem a seguinte finalidade: quando o botão não estiver pressionado, o LED permanecerá apagado e quando o botão estiver pressionado o LED acenderá, ou seja, a Raspberry lerá o dado enviado e tomará uma decisão.

Programa

Explicando o programa

 

Primeiramente foram importadas as bibliotecas da GPIO import RPi.GPIO as GPIO e de tempo import time, em seguida foi configurado o modo de definição dos pinos GPIO.

Ao pino 37 foi atribuído à variável led e o pino 15 a variável bot. A variável led foi configurada como saída GPIO.setup (led,GPIO.OUT) e a variável bot como entrada GPIO.setup (bot,GPIO.IN), lembrando que a variável led se refere ao pino onde está ligado o LED e a variável bot é referente ao pino onde está ligado o botão.

 

Acima o programa principal é iniciado a partir de while(1)  e se o botão estiver pressionado, ou seja, enviando nível lógico 0 para o pino 15 GPIO if GPIO.input(bot)==0:

o LED acenderá, pois será enviado nível lógico 1 para o pino 37 GPIO.output(led,1).

Se o botão não estiver pressionado, ou seja, enviando nível lógico 1 para o pino 15

if GPIO.input(bot) ==1 o LED permanecerá apagado uma vez que será enviado nível lógico baixo para o pino 37 GPIO.output(led,0).

 Obs: A função while (1) quer dizer ‘’entrar no loop’’, ou seja, o 1 significa verdadeiro, então sempre que a condição for testada ele será verdadeira ocasionando num loop infinito.

Utilizando o Resistor Pull-Up Interno

O Raspberry Pi possui resistores pull up interno não sendo mais necessário utilizar resistores externos que podem ser implementados conforme o exemplo abaixo.

Circuito

Circuito Utilizando o Resistor de Pull Up Interno
Figura 3 – Circuito Utilizando o Resistor de Pull Up Interno

Programa

Explicando o Programa

A diferença deste programa para o anterior é que o pino do botão foi configurado como entrada em pull-up GPIO.setup (bot,GPIO.IN, pull_up_down=GPIO.PUD_UP).

Também foi utilizando a função else (caso contrário), onde se o botão for pressionado

if GPIO.input(bot)==0 será enviado nível lógico 1 para o botão, assim acendendo o LED caso contrário else (botão não pressionado) o LED permanecerá apagado.

 

Esperamos que tenham gostado deste tutorial. Para dúvidas e sugestões, deixe um comentário abaixo! Aproveite e confira outros produtos em nossa loja!

 

(Visited 303 times, 1 visits today)