Un interruttore a pulsante è un dispositivo di input semplice ma efficace spesso utilizzato in progetti come l'avvio o l'arresto di processi, il controllo dei LED o il attivazione di eventi. Questo tutorial ti guiderà attraverso il collegamento di un pulsante Push Switch a Raspberry Pi, impostando il cablaggio e scrivendo uno script Python per rilevare il pulsante.
Cosa avrai bisogno
- Raspberry Pi (Qualsiasi modello con supporto GPIO, ad esempio PI 3, PI 4)
- Interruttore del pulsante Push
- Breadboard e fili jumper
- Resistore (10kΩ per abbattimento)
- Python installato Sul tuo Raspberry Pi
- Biblioteca GPIO Per controllare i pin GPIO di Raspberry Pi
Passaggio 1: cablaggio Il pulsante per il Raspberry Pi
Un interruttore a pulsante funziona collegando il pin GPIO a uno stato alto (3.3V) quando viene premuto o tirandolo a basso (0 V) quando non pressato. Useremo una resistenza a discesa per garantire che il pin GPIO si legge in basso quando il pulsante non viene premuto.
Cablaggio del pulsante
Pin del pulsante | Pin gpiio di lampone |
---|---|
Un perno | GPIO17 (PIN 11) |
Altro pin | Terra (pin 6) |
Un perno | Resistore da 10kΩ a terra |
Ecco la configurazione del cablaggio:
- Collegare un terminale del pulsante a GPIO17 (PIN 11).
- Collegare l'altro terminale del pulsante a Terra (PIN 6).
- Collegare una resistenza da 10kΩ tra GPIO17 E Terra agire come resistenza a discesa.
Ciò garantisce che quando viene premuto il pulsante, GPIO17 legge in alto (3.3V) e quando non viene premuto, GPIO17 viene tirato a basso (0 V) dalla resistenza.
Passaggio 2: Abilita i pin GPIO in Python
-
Innanzitutto, aggiorna l'elenco dei pacchetti di Raspberry Pi:
sudo apt update sudo apt upgrade -y
-
Installare la libreria Python GPIO richiesta (se non già installata):
sudo apt install python3-rpi.gpio
-
Importa la libreria nel tuo script Python:
import RPi.GPIO as GPIO import time
Passaggio 3: scrivere il codice Python
Ora, scriviamo uno script Python per rilevare quando il pulsante viene premuto e agire di conseguenza.
Esempio di codice 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
Spiegazione del codice:
- GPIO.setMode (GPIO.BCM): Imposta la numerazione del pin GPIO in modalità BCM (Broadcom).
- Gpiio.setup (botton_pin, gpiio.in, pull_up_down = gpiio.pud_down): Configura il pin del pulsante come input con una resistenza a discesa, il che significa che leggerà basso quando non preme.
-
Gpiio.add_event_detect (): Rileva il bordo di salita (pressione del pulsante) del pin GPIO e innesca la funzione di callback
button_callback
Quando viene premuto il pulsante. - time.sleep (0.1): Mantieni lo script in esecuzione, permettendogli di attendere un pulsante Premere.
- GPIO.CLEANUP (): Pulisce le impostazioni GPIO quando lo script viene uscito.
Passaggio 4: testare il pulsante
-
Esegui il tuo script Python:
python3 button.py
-
Premere il pulsante e osservare il messaggio "È stato premuto il pulsante!" nel terminale.
Passaggio 5: applicazioni
Ecco alcune idee per l'utilizzo del pulsante nei tuoi progetti:
- Controlla un LED: Utilizzare il pulsante per attivare e disattivare un LED.
- Trigger un evento: Avviare o arrestare un processo (ad es. Avvia un motore, accendi una ventola o avvia uno script).
- Campanello intelligente: Usa il pulsante come campanello per inviare una notifica al telefono.
- Input dell'utente: Ottieni un semplice input utente per i tuoi progetti (come una risposta "Sì/No").
Risoluzione dei problemi
-
Pulsante non rilevato:
- Assicurarsi che il pulsante sia correttamente cablato con il resistore a discesa.
- Controllare due volte la configurazione del pin GPIO nel codice.
-
Errore GPIO:
- Assicurati che la libreria GPIO sia installata correttamente e che i numeri PIN nello script siano corretti.
-
Button Bounce:
- Se si noti che si rilevano più pulsanti, è possibile aggiungere un tempo di deboance (
bouncetime=300
Nello script) per evitare falsi rilevamenti.
- Se si noti che si rilevano più pulsanti, è possibile aggiungere un tempo di deboance (
Conclusione
L'uso di un pulsante pulsante con Raspberry Pi è un modo semplice per aggiungere funzionalità di input ai tuoi progetti. Che si tratti di attivare LED, attivare eventi o interagire con altri hardware, questa semplice configurazione può essere la base per molte applicazioni interessanti. Sperimenta diversi pin GPIO e le impostazioni di debounzione per soddisfare le tue esigenze!