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:
-
Installare la libreria Python GPIO richiesta (se non già installata):
-
Importa la libreria nel tuo script Python:
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
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:
-
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!