Een drukknopschakelaar gebruiken met de Raspberry Pi

Using a Push Button Switch with the Raspberry Pi

 

Een drukknopschakelaar is een eenvoudig maar effectief invoerapparaat dat vaak wordt gebruikt in projecten zoals start- of stopprocessen, het besturen van LED's of het activeren van gebeurtenissen. Deze tutorial zal u doorlopen door een drukknopschakelaar aan te sluiten op de Raspberry Pi, het instellen van de bedrading en het schrijven van een Python -script om knopdrukken te detecteren.


Wat u nodig hebt

  1. Raspberry Pi (Elk model met GPIO -ondersteuning, bijvoorbeeld PI 3, PI 4)
  2. Druk op de knopschakelaar
  3. Breadboard en jumper draden
  4. Weerstand (10kΩ voor pull-down)
  5. Python geïnstalleerd Op uw Raspberry Pi
  6. GPIO -bibliotheek Voor het beheersen van de GPIO -pinnen van de Raspberry Pi

Stap 1: De drukknop bedraden naar de Raspberry Pi

Een drukknopschakelaar werkt door de GPIO -pin aan te sluiten op een hoge (3,3 V) toestand wanneer het wordt ingedrukt of deze op laag (0V) trekken wanneer deze niet wordt ingedrukt. We zullen een pull-down weerstand gebruiken om ervoor te zorgen dat de GPIO-pin laag leest wanneer de knop niet wordt ingedrukt.

De drukknop bedraden

Druk op de knoppen Frambozen pi gpio pin
Eén pin Gpio17 (pin 11)
Andere pin Grond (pin 6)
Eén pin Weerstand van 10kΩ naar de grond

Hier is de bedrading:

  • Sluit een terminal van de drukknop aan op GPIO17 (Pin 11).
  • Sluit de andere terminal van de drukknop aan op Grond (Pin 6).
  • Sluit een weerstand van 10 kΩ aan tussen GPIO17 En Grond om te fungeren als een pull-down weerstand.

Dit zorgt ervoor dat wanneer de knop wordt ingedrukt, GPIO17 hoog leest (3.3V), en wanneer het niet wordt ingedrukt, wordt GPIO17 door de weerstand laag (0V) getrokken.


Stap 2: GPIO -pins inschakelen in Python

  1. Werk eerst bij de pakketlijst van uw Raspberry Pi:

    sudo apt update
    sudo apt upgrade -y
    
  2. Installeer de vereiste Python GPIO -bibliotheek (indien niet al geïnstalleerd):

    sudo apt install python3-rpi.gpio
    
  3. Importeer de bibliotheek in uw Python -script:

    import RPi.GPIO as GPIO
    import time
    

Stap 3: het schrijven van de Python -code

Laten we nu een Python -script schrijven om te detecteren wanneer de knop wordt ingedrukt en dienovereenkomstig actie ondernemen.

Python Code Voorbeeld

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

Code Verklaring:

  • Gpio.setMode (gpio.bcm): Stelt de GPIO -pin -nummering in op de BCM (Broadcom) -modus.
  • Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): Configureert de knoppen als een invoer met een pull-down weerstand, wat betekent dat deze laag wordt gelezen wanneer niet wordt ingedrukt.
  • Gpio.add_event_detect (): Detecteert de stijgende rand (knopdruk) van de GPIO -pin en activeert de callback -functie button_callback Wanneer de knop wordt ingedrukt.
  • Time.Sleep (0.1): Houdt het script actief, waardoor het kan wachten tot een knop drukt.
  • Gpio.cleanup (): Ruimt de GPIO -instellingen op wanneer het script wordt verlaten.

Stap 4: De knop testen

  1. Voer uw Python -script uit:

    python3 button.py
    
  2. Druk op de drukknop en observeer het bericht "Knop is ingedrukt!" in de terminal.


Stap 5: Toepassingen

Hier zijn een paar ideeën om de drukknop in uw projecten te gebruiken:

  1. Controle een LED: Gebruik de drukknop om een ​​LED in en uit te schakelen.
  2. Activeren een evenement: Start of stop een proces (stareer bijvoorbeeld een motor, schakel een ventilator in of start een script).
  3. Slimme deurbel: Gebruik de knop als een deurbel om een ​​melding naar uw telefoon te verzenden.
  4. Gebruikersinvoer: Krijg eenvoudige gebruikersinvoer voor uw projecten (zoals een "ja/nee" antwoord).

Problemen oplossen

  • Knop niet gedetecteerd:

    • Zorg ervoor dat de knop correct is bedraad met de pull-down weerstand.
    • Controleer uw GPIO PIN-instelling in de code dubbel.
  • GPIO -fout:

    • Zorg ervoor dat de GPIO -bibliotheek correct is geïnstalleerd en dat de pincode in uw script correct is.
  • Knop stuiteren:

    • Als u merkt dat meerdere knopdrukken worden gedetecteerd, kunt u een debounce -tijd toevoegen (bouncetime=300 in het script) om valse detecties te voorkomen.

Conclusie

Het gebruik van een drukknopschakelaar met de Raspberry Pi is een eenvoudige manier om invoerfunctionaliteit aan uw projecten toe te voegen. Of het nu gaat om LED's, het activeren van evenementen of interactie met andere hardware, deze eenvoudige installatie kan de basis vormen voor veel interessante applicaties. Experimenteer met verschillende GPIO -pins en debounding -instellingen die aan uw behoeften voldoen!

Laat een reactie achter

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.