2 maneiras de adicionar um botão ao seu projeto Raspberry Pi

2 maneiras de adicionar um botão ao seu projeto Raspberry Pi

Aprender a usar os pinos GPIO em seu Raspberry Pi abre um mundo de possibilidades. Os princípios básicos aprendidos por meio de projetos iniciantes abrem o caminho para o conhecimento útil da eletrônica e da programação DIY.





Este tutorial mostrará duas maneiras de adicionar um botão ao seu projeto Raspberry Pi. O botão será usado para controlar um LED. Instruções escritas estão disponíveis abaixo do vídeo.





Você vai precisar

Para começar, certifique-se de ter os seguintes componentes:





  • 1 x Raspberry Pi (qualquer um serve, o modelo 3B é usado neste tutorial)
  • 1 x botão de pressão
  • 1 x LED
  • Resistor de 1 x 220 Ohm (valores mais altos são adequados, seu LED ficará mais escuro)
  • 1 x tábua de pão
  • Fios de conexão

Depois de reunidos, você deve ter componentes semelhantes a este:

Você também precisará de um cartão SD com o sistema operacional Raspbian instalado. A maneira mais rápida de fazer isso é com a imagem NOOBS (Novo Software Out Of the Box). As instruções sobre como fazer isso estão disponíveis neste vídeo:



Configurando o circuito

Você usará os pinos GPIO do Pi para fazer o circuito e, se não estiver familiarizado com eles, nosso guia para pinos GPIO Raspberry Pi vai ajudar. O circuito aqui é quase o mesmo do nosso anterior Projeto Raspberry Pi LED , com a adição do botão que você usará hoje.

Configure seu circuito de acordo com este diagrama:





  • o 5v e GND os pinos se conectam aos trilhos de alimentação da placa de ensaio.
  • Pino 12 (GPIO 18) conecta-se à perna positiva do LED.
  • Uma perna do resistor se conecta à perna negativa do LED e a outra perna se conecta ao trilho de aterramento da placa de ensaio.
  • Pino 16 (GPIO 23) se conecta a um lado do botão, o outro lado se conecta ao trilho de aterramento da placa de ensaio.

Depois de configurado, deve ser assim:

Verifique se o circuito está correto e ligue o Raspberry Pi.





Método 1: A Biblioteca RPi.GPIO

Depois que o Pi for inicializado, vá até o menu e selecione Programação> Thonny Python IDE . Um novo script Python será aberto. Se você é totalmente novo em Python, é uma ótima linguagem para iniciantes e há muitos lugares excelentes para aprender mais sobre Python depois de concluir este tutorial!

Comece importando a biblioteca RPi.GPIO e configurando o modo da placa.

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)

Agora declare as variáveis ​​para os números dos pinos do LED e do botão.

ledPin = 12
buttonPin = 16

Observe que, uma vez que temos o modo de placa definido para BORDA estamos usando os números dos pinos em vez dos números GPIO. Se isso é confuso para você, um gráfico de pinagem do Raspberry Pi pode ajudar a esclarecê-lo.

Configurando o botão

É hora de configurar os pinos GPIO. Defina o pino do LED para saída e o pino do botão para entrada com um resistor pull-up

GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

O texto após GPIO.IN refere-se ao resistor pull-up interno do Raspberry Pi. Você precisa habilitar isso para obter uma leitura limpa do botão. Como o botão vai para o pino de aterramento, precisamos de um resistor pull-up para manter o pino de entrada ALTO até que você o pressione.

Antes de prosseguirmos, vamos examinar os resistores pull-up e pull-down.

Intermissão: resistores de puxar para cima / para baixo

Quando você configura um pino GPIO para entrada, ele lê esse pino para determinar seu estado. Neste circuito, você precisa ler se um pino é ALTO ou BAIXO para acionar o LED quando o botão é pressionado. Isso seria simples se esses fossem os únicos estados que um alfinete pode ter, mas, infelizmente, há um terceiro estado: FLUTUANDO .

Um pino flutuante tem um valor entre alto e baixo, fazendo com que a entrada aja de maneira imprevisível. Resistores pull-up / pull-down resolvem isso.

A imagem acima é um diagrama simplificado de um botão e um Raspberry Pi. O pino GPIO se conecta ao aterramento por meio do botão. O resistor pull-up interno conecta o pino GPIO à fonte de alimentação Pi interna. Esta corrente flui e o pino é puxado com segurança para ALTO.

Quando você pressiona o botão, o pino GPIO se conecta diretamente ao pino de aterramento e a leitura do botão é baixa.

Os resistores pull-down são para quando o switch está conectado ao pino de alimentação. Desta vez, o resistor interno conecta o pino GPIO ao aterramento, segurando BAIXO até que você pressione o botão.

A teoria do resistor pull-up e pull-down é confusa à primeira vista, mas é um conhecimento importante quando se trabalha com microcontroladores. Por enquanto, se você não entendeu muito bem, não se preocupe!

Vamos continuar de onde paramos.

O Loop do Programa

Em seguida, configure o loop do programa:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

o enquanto verdadeiro loop executa continuamente o código dentro dele até terminarmos o programa. Cada vez que ele faz um loop, ele atualiza o buttonState lendo a entrada do buttonPin . Enquanto o botão não está sendo pressionado, ele permanece ALTO .

Assim que o botão for pressionado, buttonState torna-se BAIXO . Isso aciona o declaração if , Desde a Falso é o mesmo que BAIXO , e o LED acende. o outro declaração desliga o LED sempre que o buttonPin não é False.

Salve e execute seu script

Salve seu script clicando em Arquivo> Salvar como e escolher um nome de arquivo. Você pode executar o esboço clicando no botão verde Toque botão na barra de ferramentas Thonny.

Agora pressione o botão e seu LED deve acender! Pressione o vermelho Pare botão a qualquer momento para parar o programa

Se você estiver tendo dificuldades, verifique se há erros no código e na configuração do circuito e tente novamente.

Método 2: Biblioteca GPIO Zero

A biblioteca RPi.GPIO é fantástica, mas há um novo garoto no quarteirão. A Biblioteca GPIO Zero era criado pelo gerente da comunidade do Raspberry Pi, Ben Nuttall com a intenção de tornar o código mais simples e fácil de ler e escrever.

Para testar a nova biblioteca, abra um novo arquivo Thonny e importe a biblioteca.

from gpiozero import LED, Button
from signal import pause

Você notará que não importou a biblioteca inteira. Uma vez que você está usando apenas um LED e um botão, você precisa apenas desses módulos no script. Nós também importamos Pausa da biblioteca de sinais, que é uma biblioteca Python para gerenciamento de eventos.

Configurar os pinos é muito mais fácil com GPIO Zero:

led = LED(18)
button = Button(23)

Como a biblioteca GPIO Zero tem módulos para LED e botão, você não precisa configurar entradas e saídas como antes. Você notará que, embora os pinos não tenham mudado, os números aqui são diferentes dos acima. Isso ocorre porque o GPIO Zero usa apenas os números de pinos GPIO (também conhecidos como números Broadcom ou BCM).

protetor de tela iphone 11 pro privacidade

O resto do script tem apenas três linhas:

button.when_pressed = led.on
button.when_released = led.off
pause()

o pausa() chamar aqui simplesmente impede que o script saia quando chegar ao final. Os eventos de dois botões são acionados sempre que o botão é pressionado e solto. Salve e execute seu script e você verá o mesmo resultado de antes!

Duas maneiras de adicionar um botão ao Raspberry Pi

Das duas maneiras de configurar o botão, o método GPIO Zero parece ser o mais fácil. Ainda vale a pena conhecer a biblioteca RPi.GPIO como a maioria dos projetos iniciantes do Raspberry Pi use-o. Por mais simples que seja este projeto, o conhecimento pode ser usado para várias coisas.

Usar os pinos GPIO é uma ótima maneira de aprender e inventar seus próprios dispositivos, mas está longe de ser tudo o que você pode fazer com o Pi. Nosso guia não oficial do Raspberry Pi está repleto de ideias criativas e tutoriais que você pode experimentar! Para outro tutorial como este, verifique como fazer um botão de conexão Wi-Fi .

Compartilhado Compartilhado Tweet O email 5 dicas para turbinar suas máquinas Linux VirtualBox

Cansado do fraco desempenho oferecido pelas máquinas virtuais? Aqui está o que você deve fazer para aumentar o desempenho do VirtualBox.

Leia a seguir
Tópicos relacionados
  • faça você mesmo
  • Raspberry Pi
  • Pitão
  • GPIO
  • Tutoriais de projetos DIY
Sobre o autor Ian Buckley(216 artigos publicados)

Ian Buckley é jornalista freelance, músico, performer e produtor de vídeo que mora em Berlim, Alemanha. Quando não está escrevendo ou no palco, ele está mexendo em eletrônicos ou códigos DIY na esperança de se tornar um cientista maluco.

Mais de Ian Buckley

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever