Usando uma chave de botão com o Raspberry Pi

Using a Push Button Switch with the Raspberry Pi

 

Uma chave de botão é um dispositivo de entrada simples, mas eficaz, frequentemente usado em projetos como processos de partida ou parada, LEDs controlando ou acionando eventos. Este tutorial o levará conectando uma chave de botão ao Raspberry Pi, configurando a fiação e escrevendo um script python para detectar pressionamentos de botão.


O que você precisará

  1. Raspberry Pi (Qualquer modelo com suporte GPIO, por exemplo, PI 3, PI 4)
  2. Interruptor de botão
  3. Fios de pão e jumper
  4. Resistor (10kΩ para puxar)
  5. Python instalado no seu Raspberry Pi
  6. Biblioteca GPIO Para controlar os pinos GPIO do Raspberry Pi

Etapa 1: Fiação do botão para o Raspberry Pi

Uma chave de botão funciona conectando o pino GPIO a um estado alto (3,3V) quando pressionado ou puxando -o para baixo (0V) quando não for pressionado. Usaremos um resistor pull-down para garantir que o pino GPIO lê baixo quando o botão não for pressionado.

Ligando o botão

Pino de botão Pino GPIO de Raspberry Pi
Um pino Gpio17 (pino 11)
Outro pino Terra (pino 6)
Um pino Resistor de 10kΩ ao solo

Aqui está a configuração da fiação:

  • Conecte um terminal do botão para Gpio17 (Pino 11).
  • Conecte o outro terminal do botão para Chão (Pino 6).
  • Conectar um resistor de 10kΩ entre Gpio17 e Chão Atuar como um resistor de puxar.

Isso garante que, quando o botão for pressionado, o GPIO17 lê alto (3,3V) e, quando não é pressionado, o GPIO17 é puxado para baixo (0V) pelo resistor.


Etapa 2: Ativar pinos GPio em Python

  1. Primeiro, atualize a lista de pacotes do Raspberry Pi:

    sudo apt update
    sudo apt upgrade -y
    
  2. Instale a biblioteca Python GPIO necessária (se ainda não estiver instalada):

    sudo apt install python3-rpi.gpio
    
  3. Importe a biblioteca em seu script Python:

    import RPi.GPIO as GPIO
    import time
    

Etapa 3: Escrevendo o código Python

Agora, vamos escrever um script python para detectar quando o botão é pressionado e agir de acordo.

Exemplo de código Python

import RPi.GPIO as GPIO
import time

# Set up the GPIO mode and pin
GPIO.setmode(GPIO.BCM)        # Use BCM numbering
button_pin = 17               # GPIO pin connected to the button
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)  # Set up pin with pull-down resistor

# Function to detect button press
def button_callback(channel):
    print("Button was pressed!")

# Set up an event on the button pin
GPIO.add_event_detect(button_pin, GPIO.RISING, callback=button_callback, bouncetime=300)

try:
    print("Press the button...")
    while True:
        # Keep the program running to wait for button press
        time.sleep(0.1)
except KeyboardInterrupt:
    print("Program exited")
finally:
    GPIO.cleanup()  # Clean up GPIO to ensure a clean exit

Explicação de código:

  • Gpio.setMode (gpio.bcm): Define a numeração do pino GPIO no modo BCM (Broadcom).
  • Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): Configura o pino do botão como uma entrada com um resistor pull-down, o que significa que ele lerá baixo quando não for pressionado.
  • Gpio.add_event_detect (): button_callback Quando o botão é pressionado.
  • time.sleep (0,1): Mantém o script funcionando, permitindo que ele aguarde uma pressão de botão.
  • Gpio.cleanup (): Limpe as configurações do GPIO quando o script é excitado.

Etapa 4: testando o botão

  1. Execute seu script python:

    python3 button.py
    
  2. Pressione o botão de pressão e observe a mensagem "O botão foi pressionado!" no terminal.


Etapa 5: Aplicações

Aqui estão algumas idéias para usar o botão em seus projetos:

  1. Controle um LED: Use o botão para atribuir e desativar um LED.
  2. Acionar um evento: Inicie ou pare um processo (por exemplo, inicie um motor, ligue um ventilador ou inicie um script).
  3. Campainha inteligente: Use o botão como campainha para enviar uma notificação ao seu telefone.
  4. Entrada do usuário: Obtenha entrada simples do usuário para seus projetos (como uma resposta "sim/não").

Solução de problemas

  • Botão não detectado:

    • Verifique se o botão está conectado corretamente com o resistor de pull-down.
    • Verifique duas vezes sua configuração de pino GPIO no código.
  • Erro gpio:

    • Verifique se a biblioteca GPIO está instalada corretamente e se os números de pinos no seu script estão corretos.
  • Salto de botão:

    • Se você notar que vários botões pressionam sendo detectados, poderá adicionar um tempo de debounce (bouncetime=300 no script) para evitar detecções falsas.

Conclusão

Usar uma chave de botão com o Raspberry Pi é uma maneira fácil de adicionar a funcionalidade de entrada aos seus projetos. Seja alternando LEDs, desencadeando eventos ou interagindo com outros hardware, essa configuração simples pode ser a base para muitas aplicações interessantes. Experimente diferentes pinos GPIO e configurações de Debounce para atender às suas necessidades!

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.