Nota
Ciao e benvenuto nella Community di Appassionati di SunFounder per Raspberry Pi, Arduino ed ESP32 su Facebook! Esplora a fondo il mondo di Raspberry Pi, Arduino ed ESP32 insieme a tanti altri appassionati.
Perché Unirsi?
Supporto da Esperti: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci dei nuovi prodotti e a contenuti inediti.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
2.1.2 Interruttore a Scorrimento
Introduzione
In questo progetto impareremo a utilizzare un interruttore a scorrimento. Solitamente, l’interruttore a scorrimento viene saldato su una PCB come interruttore di alimentazione, ma qui lo inseriremo nella breadboard, anche se potrebbe non essere molto stabile. Lo useremo sulla breadboard per mostrare la sua funzione.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
Schema Elettrico
Collega il pin centrale dell’interruttore a scorrimento al GPIO17 e i due LED ai pin GPIO22 e GPIO27 rispettivamente. Quando si muove l’interruttore, i due LED si accenderanno alternativamente.
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Entra nella cartella del codice.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Passo 3: Esegui.
sudo python3 2.1.2_Slider.py
Mentre il codice è in esecuzione, sposta l’interruttore verso sinistra e il LED giallo si accenderà; spostalo a destra e si accenderà la luce rossa.
Avvertimento
Se compare l’errore RuntimeError: Cannot determine SOC peripheral base address, consulta Se gpiozero non funziona.
Codice
Nota
Puoi Modificare/Reimpostare/Copiare/Eseguire/Interrompere il codice qui sotto. Prima di farlo, però, vai al percorso del codice sorgente, come davinci-kit-for-raspberry-pi/python-pi5. Dopo aver modificato il codice, potrai eseguirlo direttamente per vedere il risultato.
#!/usr/bin/env python3
from gpiozero import LED, Button # Importa le classi LED e Button per il controllo dei GPIO
from time import sleep # Importa la funzione sleep per aggiungere ritardi
# Inizializza l'interruttore microscopico sul pin GPIO 17 con il pull-up disabilitato
micro_switch = Button(17, pull_up=False)
# Inizializza LED1 sul pin GPIO 22
led1 = LED(22)
# Inizializza LED2 sul pin GPIO 27
led2 = LED(27)
try:
# Ciclo principale per controllare lo stato dei LED in base allo stato del micro switch
while True:
if micro_switch.is_pressed: # Verifica se il micro switch è premuto
print(' LED1 ON ') # Stampa il messaggio di stato
led1.on() # Accende LED1
led2.off() # Spegne LED2
else: # Se il micro switch non è premuto
print(' LED2 ON ') # Stampa il messaggio di stato
led1.off() # Spegne LED1
led2.on() # Accende LED2
sleep(0.5) # Attende 0,5 secondi prima di controllare nuovamente lo stato dell'interruttore
except KeyboardInterrupt:
# Gestisce un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo pulito
pass
Spiegazione del Codice
Questa linea imposta lo script per l’esecuzione con Python 3. Importa
LEDeButtondagpiozeroper controllare i dispositivi GPIO, esleepdatimeper i ritardi.#!/usr/bin/env python3 from gpiozero import LED, Button # Importa le classi LED e Button per il controllo dei GPIO from time import sleep # Importa la funzione sleep per aggiungere ritardi
Inizializza un micro switch collegato al pin GPIO 17 con il pull-up disabilitato e due LED collegati ai pin GPIO 22 e 27.
# Inizializza l'interruttore microscopico sul pin GPIO 17 con il pull-up disabilitato micro_switch = Button(17, pull_up=False) # Inizializza LED1 sul pin GPIO 22 led1 = LED(22) # Inizializza LED2 sul pin GPIO 27 led2 = LED(27)
Il ciclo principale verifica lo stato del micro switch. Se premuto, accende LED1 e spegne LED2; se non premuto, spegne LED1 e accende LED2. Il ciclo si ripete ogni 0,5 secondi e rileva un’interruzione da tastiera (come Ctrl+C) per permettere una chiusura sicura dello script.
try: # Ciclo principale per controllare lo stato dei LED in base allo stato del micro switch while True: if micro_switch.is_pressed: # Verifica se il micro switch è premuto print(' LED1 ON ') # Stampa il messaggio di stato led1.on() # Accende LED1 led2.off() # Spegne LED2 else: # Se il micro switch non è premuto print(' LED2 ON ') # Stampa il messaggio di stato led1.off() # Spegne LED1 led2.on() # Accende LED2 sleep(0.5) # Attende 0,5 secondi prima di controllare nuovamente lo stato dell'interruttore except KeyboardInterrupt: # Gestisce un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo pulito pass