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
- Málna PI (Bármely modell GPIO -támogatással, például PI 3, PI 4)
- Nyomógomb kapcsoló
- Kenyérlemez és jumper vezetékek
- Ellenállás (10KΩ a lehúzáshoz)
- Python telepítve a málna pi -jén
- 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
-
Először frissítse a Raspberry Pi csomaglistáját:
sudo apt update sudo apt upgrade -y
-
Telepítse a szükséges Python GPIO könyvtárat (ha még nem telepítve):
sudo apt install python3-rpi.gpio
-
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
-
Futtassa a Python szkriptet:
python3 button.py
-
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:
- Irányítson egy LED -t: Használja a nyomógombot egy LED be- és kikapcsolásához.
- 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).
- Intelligens ajtócsengő: Használja a gombot ajtócsengőként, hogy értesítést küldjön a telefonjára.
- 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.
- Ha észreveszi több gombnyomás észlelését, akkor hozzáadhat egy lefoglalási időt (
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!