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_callbackQuando 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=300Nello 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!
 
            
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  