Przełącznik przycisku jest prostym, ale skutecznym urządzeniem wejściowym często używanym w projektach, takich jak uruchamianie lub zatrzymywanie procesów, kontrolowanie diod LED lub zdarzenia wyzwalające. Ten samouczek poprowadzi Cię przez podłączenie przełącznika przycisku do Raspberry Pi, konfigurowanie okablowania i zapisanie skryptu Pythona w celu wykrycia naciśnięcia przycisku.
Czego będziesz potrzebować
- Raspberry Pi (Każdy model z obsługą GPIO, np. PI 3, PI 4)
- Przełącznik przycisku
- Druty chleba i skoczków
- Rezystor (10kΩ dla wyciągnięcia)
- Zainstalowany Python na twoim malinowym pi
- Biblioteka GPIO do kontrolowania pinów GPIO Raspberry Pi
Krok 1: Okablowanie przycisku do Raspberry Pi
Przełącznik przycisku działa albo podłączając pin GPIO do stanu wysokiego (3,3 V) po naciśnięciu lub pociągnięcie go do niskiego (0 V) po naciśnięciu. Użyjemy rezystora rozwijanego, aby upewnić się, że szpilka GPIO odczytuje nisko, gdy przycisk nie zostanie naciśnięty.
Okablowanie przycisku
Pin na przycisk | Raspberry Pi GPIO |
---|---|
Jeden szpilka | GPIO17 (PIN 11) |
Inny pin | Uziemienie (pin 6) |
Jeden szpilka | Rezystor 10kΩ na uziemienie |
Oto konfiguracja okablowania:
- Podłącz jeden terminal przycisku do GPIO17 (PIN 11).
- Podłącz drugi terminal przycisku do Grunt (PIN 6).
- Podłącz rezystor 10kΩ między GPIO17 I Grunt działać jak opornik rozciągnięty.
Zapewnia to, że po naciśnięciu przycisku GPIO17 odczytuje wysokie (3,3 V), a gdy nie jest naciśnięty, GPIO17 jest przyciągany do niskiego (0 V) przez rezystor.
Krok 2: Włącz szpilki GPIO w Python
-
Najpierw zaktualizuj listę pakietów Raspberry Pi:
sudo apt update sudo apt upgrade -y
-
Zainstaluj wymaganą bibliotekę Python GPIO (jeśli jeszcze nie zainstalowano):
sudo apt install python3-rpi.gpio
-
Zaimportuj bibliotekę w skrypcie Python:
import RPi.GPIO as GPIO import time
Krok 3: Pisanie kodu Pythona
Teraz napiszmy skrypt Pythona, aby wykryć, gdy przycisk zostanie naciśnięty i odpowiednio podejmij działania.
Przykład kodu Pythona
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
Objaśnienie kodu:
- Gpio.setMode (gpio.bcm): Ustawia numerowanie pinów GPIO w trybie BCM (Broadcom).
- Gpio.setUp (Button_pin, gpio.in, pull_up_down = gpio.pud_down): Konfiguruje pin przyciskowy jako wejście z rezystorem rozwijanym, co oznacza, że odczytuje on niski poziom, gdy nie zostanie naciśnięty.
-
Gpio.add_event_detect (): Wykrywa rosnącą krawędź (naciśnij przycisk) pin GPIO i wyzwala funkcję wywołania zwrotnego
button_callback
Po naciśnięciu przycisku. - czas.sleep (0,1): Uruchamia skrypt, pozwalając mu czekać na naciśnięcie przycisku.
- Gpio.cleanup (): Oczyszcza ustawienia GPIO po wychodzeniu skryptu.
Krok 4: Testowanie przycisku
-
Uruchom skrypt Python:
python3 button.py
-
Naciśnij przycisk i obserwuj komunikat „Przycisk został naciśnięty!” w terminalu.
Krok 5: Zastosowania
Oto kilka pomysłów na użycie przycisku w twoich projektach:
- Kontrolować diodę LED: Użyj przycisku, aby włączyć i wyłączyć diodę LED.
- Wywołaj wydarzenie: Uruchom lub zatrzymaj proces (np. Uruchom silnik, włącz wentylator lub zainicjuj skrypt).
- Inteligentny dzwonek do drzwi: Użyj przycisku jako dzwonka do drzwi, aby wysłać powiadomienie do telefonu.
- Wejście użytkownika: Uzyskaj proste dane wejściowe użytkownika dla swoich projektów (jak odpowiedź „tak/nie”).
Rozwiązywanie problemów
-
Przycisk nie został wykryty:
- Upewnij się, że przycisk jest prawidłowo podłączony do odpornego na rozkład.
- Dokładnie sprawdź konfigurację pinu GPIO w kodzie.
-
Błąd GPIO:
- Upewnij się, że biblioteka GPIO jest instalowana prawidłowo i że numery pin w skrypcie są prawidłowe.
-
Odbicie przycisku:
- Jeśli zauważysz, że wykrywane jest wiele przycisków, możesz dodać czas na zadłużenie (
bouncetime=300
w skrypcie), aby uniknąć fałszywych wykryć.
- Jeśli zauważysz, że wykrywane jest wiele przycisków, możesz dodać czas na zadłużenie (
Wniosek
Korzystanie z przełącznika przycisku z Raspberry Pi to łatwy sposób na dodanie funkcji wejściowych do swoich projektów. Niezależnie od tego, czy chodzi o przełączanie diod LED, wyzwalanie zdarzeń, czy w interakcji z innym sprzętem, ta prosta konfiguracja może być podstawą wielu interesujących aplikacji. Eksperymentuj z różnymi szpilkami GPIO i ustawieniami debunacji, aby pasowały do twoich potrzeb!