Folosind un întrerupător de butoane de apăsare cu Raspberry Pi

Using a Push Button Switch with the Raspberry Pi

 

Un comutator de butoane de apăsare este un dispozitiv de intrare simplu, dar eficient, adesea utilizat în proiecte precum pornirea sau oprirea proceselor, controlul LED -urilor sau declanșarea evenimentelor. Acest tutorial vă va parcurge prin conectarea unui comutator de butoane de apăsare la Raspberry Pi, configurarea cablului și scrierea unui script Python pentru a detecta apăsarea butonului.


Ce vei avea nevoie

  1. Zmeură pi (Orice model cu suport GPIO, de exemplu, PI 3, PI 4)
  2. Întrerupător de butoane
  3. Tablă de pâine și jumper
  4. Rezistență (10kΩ pentru derulare)
  5. Python instalat Pe zmeura ta PI
  6. Biblioteca GPIO pentru controlul pinilor GPIO de zmeură PI

Pasul 1: Cablarea butonului de apăsare către Raspberry Pi

Un întrerupător de butoane de apăsare funcționează fie conectând pinul GPIO la o stare mare (3.3V) atunci când este apăsat, fie trageți -l la scăzut (0V) atunci când nu este apăsat. Vom folosi un rezistor de derulare pentru a ne asigura că pinul GPIO se citește scăzut atunci când butonul nu este apăsat.

Cablarea butonului de apăsare

Apăsați pinul cu buton Pin de zmeură PI GPIO
Un știft GPIO17 (pinul 11)
Alt pin Sol (pinul 6)
Un știft Rezistență de 10kΩ la sol

Iată configurarea cablurilor:

  • Conectați un terminal al butonului de apăsare la GPIO17 (Pinul 11).
  • Conectați celălalt terminal al butonului de apăsare la Sol (Pin 6).
  • Conectați o rezistență de 10kΩ între GPIO17 şi Sol să acționeze ca un rezistor de derulare.

Acest lucru asigură că atunci când este apăsat butonul, GPIO17 citește ridicat (3.3V), iar atunci când nu este apăsat, GPIO17 este tras la scădere (0V) de către rezistor.


Pasul 2: Activați ace GPIO în Python

  1. În primul rând, actualizați -vă lista de pachete Raspberry Pi:

    sudo apt update
    sudo apt upgrade -y
    
  2. Instalați biblioteca Python GPIO necesară (dacă nu este deja instalată):

    sudo apt install python3-rpi.gpio
    
  3. Importați biblioteca în scriptul dvs. Python:

    import RPi.GPIO as GPIO
    import time
    

Pasul 3: Scrierea codului Python

Acum, să scriem un script Python pentru a detecta când este apăsat butonul și să luăm măsuri în consecință.

Exemplu de cod 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ție cod:

  • Gpio.setMode (gpio.bcm): Setează numerotarea pinului GPIO în modul BCM (Broadcom).
  • Gpio.setup (buton_pin, gpio.in, pull_up_down = gpio.pud_down): Configurează pinul butonului ca o intrare cu un rezistor de derulare, ceea ce înseamnă că va citi scăzut atunci când nu este apăsat.
  • Gpio.add_event_detect (): Detectează marginea în creștere (apăsarea butonului) a pinului GPIO și declanșează funcția de apel de apel button_callback Când este apăsat butonul.
  • timp.sleep (0.1): Mențineți scriptul să funcționeze, permițându -i să aștepte un buton apăsat.
  • Gpio.cleanup (): Curăță setările GPIO la ieșirea scriptului.

Pasul 4: Testarea butonului

  1. Rulați scriptul Python:

    python3 button.py
    
  2. Apăsați butonul de apăsare și observați mesajul „Butonul a fost apăsat!” în terminal.


Pasul 5: Aplicații

Iată câteva idei pentru utilizarea butonului de apăsare în proiectele dvs .:

  1. Controlează un LED: Utilizați butonul Push pentru a comuta și opri un LED.
  2. Declanșează un eveniment: Porniți sau opriți un proces (de exemplu, porniți un motor, porniți un ventilator sau inițiați un script).
  3. Smart Smart Smorgel: Folosiți butonul ca o ușă pentru a trimite o notificare pe telefon.
  4. Intrare utilizator: Obțineți o intrare simplă a utilizatorului pentru proiectele dvs. (cum ar fi un răspuns „da/nu”).

Depanare

  • Butonul nu este detectat:

    • Asigurați-vă că butonul este conectat corect cu rezistența derulantă.
    • Verificați dublu configurarea pinului GPIO în cod.
  • Eroare GPIO:

    • Asigurați -vă că biblioteca GPIO este instalată corect și că numerele PIN din scriptul dvs. sunt corecte.
  • Butoane de buton:

    • Dacă observați mai multe apăsări de butoane, puteți adăuga un timp de debit (bouncetime=300 în script) pentru a evita detecțiile false.

Concluzie

Utilizarea unui comutator de butoane împingătoare cu Raspberry Pi este o modalitate ușoară de a adăuga funcționalitate de intrare la proiectele dvs. Fie că este vorba de comutarea LED -urilor, de a declanșa evenimente sau de interacțiunea cu alte hardware, această configurație simplă poate fi fundamentul pentru multe aplicații interesante. Experimentați cu diferite pini GPIO și setări de debutare pentru a se potrivi nevoilor dvs.!

Lasă un comentariu

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.