Nyomógomb -kapcsoló használata a Raspberry PI -vel

Using a Push Button Switch with the Raspberry Pi

 

A nyomógomb -kapcsoló egy egyszerű, mégis hatékony bemeneti eszköz, amelyet gyakran használnak olyan projektekben, mint a kezdő vagy leállítási folyamatok, a LED -ek vezérlése vagy az események kiváltása. Ez az oktatóanyag végigvezeti a nyomógomb -kapcsoló csatlakoztatását a Raspberry Pi -hez, beállítja a vezetéket, és írjon egy Python szkriptet a gombnyomások észlelésére.


Mire lesz szüksége

  1. Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
  2. Nyomógomb kapcsoló
  3. Kenyérlemez és jumper vezetékek
  4. Ellenállás (10KΩ a lehúzáshoz)
  5. Python telepítve a málna pi -jén
  6. GPIO könyvtár A Raspberry PI GPIO -csapok vezérléséhez

1. lépés: A nyomógombot a Raspberry PI -hez vezetni

A nyomógomb -kapcsoló úgy működik, hogy vagy a GPIO csapot egy magas (3,3 V) állapothoz csatlakoztatja, amikor megnyomja, vagy alacsonyra húzza (0v), ha nem nyomja meg. Használunk egy legördülő ellenállást annak biztosítása érdekében, hogy a GPIO PIN-kódja alacsony legyen, amikor a gombot nem nyomják meg.

A nyomógomb bekötése

Nyomógomb Raspberry Pi GPIO PIN
Egy csap GPIO17 (11. érintkező)
Egyéb csap Föld (6. érintkező)
Egy csap 10kΩ ellenállás a földre

Itt van a kábelezés beállítása:

  • Csatlakozzon a nyomógomb egyik termináljának csatlakoztatásához GPIO17 (11. érintkező).
  • Csatlakoztassa a nyomógomb másik terminálját Föld (6. érintkező).
  • Csatlakoztasson egy 10KΩ -os ellenállást GPIO17 és Föld hogy legfelsőbb ellenállásként működjön.

Ez biztosítja, hogy a gomb megnyomásakor a GPIO17 magasan olvassa el (3,3 V), és ha nem nyomja meg, a GPIO17 -et alacsonyra (0V -re) húzza az ellenállás.


2. lépés: Engedélyezze a GPIO -csapokat a Python -ban

  1. Először frissítse a Raspberry Pi csomaglistáját:

    sudo apt update
    sudo apt upgrade -y
    
  2. Telepítse a szükséges Python GPIO könyvtárat (ha még nem telepítve):

    sudo apt install python3-rpi.gpio
    
  3. Importálja a könyvtárat a Python szkriptbe:

    import RPi.GPIO as GPIO
    import time
    

3. lépés: A Python kód írása

Írjunk be egy Python szkriptet, hogy észleljük a gombot, és ennek megfelelően cselekedjünk.

Python kód példa

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

Kód magyarázat:

  • Gpio.setmode (gpio.bcm): Állítsa be a GPIO PIN -kódot a BCM (Broadcom) módba.
  • Gpio.setup (button_pin, gpio.in, pull_up_down = gpio.pud_down): Konfigurálja a gombos tűt egy bemenetként egy legördülő ellenállással, azaz alacsonyan fog olvasni, ha nem nyomja meg.
  • Gpio.add_event_detect (): Detektálja a GPIO PIN emelkedő élét (gombnyomását), és kiváltja a visszahívási funkciót button_callback Amikor a gombot megnyomják.
  • idő.Sleep (0,1): Futtatja a szkriptet, lehetővé téve, hogy várjon egy gombnyomásra.
  • Gpio.cleanup (): Tisztítsa meg a GPIO beállításait, amikor a szkript kilép.

4. lépés: A gomb tesztelése

  1. Futtassa a Python szkriptet:

    python3 button.py
    
  2. Nyomja meg a nyomógombot, és figyelje meg a „gomb megnyomása” üzenetet! a terminálon.


5. lépés: Alkalmazások

Íme néhány ötlet a projektekben lévő nyomógomb használatához:

  1. Irányítson egy LED -t: Használja a nyomógombot egy LED be- és kikapcsolásához.
  2. Eseményindítást indít: Indítsa el vagy állítsa le a folyamatot (például indítsa el a motort, kapcsolja be a ventilátort, vagy kezdeményezzen egy szkriptet).
  3. Intelligens ajtócsengő: Használja a gombot ajtócsengőként, hogy értesítést küldjön a telefonjára.
  4. Felhasználói bemenet: Szerezzen egyszerű felhasználói bemenetet a projektjeihez (például egy "igen/nem" válasz).

Hibaelhárítás

  • A gombot nem észlelték:

    • Győződjön meg arról, hogy a gomb helyesen van-e huzalozva a lefelé irányuló ellenállással.
    • Ellenőrizze duplán a GPIO PIN beállítását a kódban.
  • GPIO hiba:

    • Győződjön meg arról, hogy a GPIO könyvtár megfelelően van telepítve, és hogy a szkriptben lévő PIN -kódok helyesek -e.
  • Gombbal ugrál:

    • Ha észreveszi több gombnyomás észlelését, akkor hozzáadhat egy lefoglalási időt (bouncetime=300 a szkriptben) a hamis érzékelések elkerülése érdekében.

Következtetés

A nyomógomb -kapcsoló használata a Raspberry PI -vel egyszerű módja annak, hogy a bemeneti funkciókat hozzáadja a projektekhez. Legyen a LED -ek váltása, események kiváltása vagy más hardverekkel való interakció, ez az egyszerű beállítás számos érdekes alkalmazás alapja lehet. Kísérletezzen különböző GPIO -csapokkal és elszámolási beállításokkal, hogy megfeleljen az Ön igényeinek!

Hagyj egy megjegyzést

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.