Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirti a noi?
Supporto Tecnico Esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.
👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
2.1.4 Interruttore a Slitta
Introduzione
In questo progetto, impareremo come utilizzare un interruttore a slitta. Solitamente, l’interruttore a slitta è saldato su PCB come interruttore di alimentazione, ma qui dobbiamo inserirlo nella breadboard, quindi potrebbe non essere fissato. Lo utilizziamo sulla breadboard per mostrare la sua funzione.
Componenti Necessari
Per questo progetto, avremo bisogno dei seguenti componenti.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK D’ACQUISTO |
|---|---|
Schema Elettrico
Collega il pin centrale dell’interruttore a slitta a GPIO17 e due LED rispettivamente ai pin GPIO22 e GPIO27. Quindi, quando sposti l’interruttore, vedrai i due LED accendersi alternativamente.
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Accedi alla cartella del codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui.
sudo python3 2.1.4_Slider_zero.py
Mentre il codice è in esecuzione, sposta l’interruttore verso sinistra e si accenderà il LED giallo; sposta l’interruttore verso destra e si accenderà la luce rossa.
Avvertimento
Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..
Code
Nota
Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima, devi accedere alla directory del codice come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/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 a slitta sul pin GPIO 17 con la resistenza pull-up disabilitata
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 dell'interruttore a slitta
while True:
if micro_switch.is_pressed: # Verifica se l'interruttore è premuto
print(' LED1 ON ') # Stampa un messaggio di stato
led1.on() # Accendi LED1
led2.off() # Spegni LED2
else: # Se l'interruttore non è premuto
print(' LED2 ON ') # Stampa un messaggio di stato
led1.off() # Spegni LED1
led2.on() # Accendi LED2
sleep(0.5) # Attendi 0,5 secondi prima di verificare nuovamente lo stato dell'interruttore
except KeyboardInterrupt:
# Gestisci un'interruzione da tastiera (Ctrl+C) per una chiusura pulita dal ciclo
pass
Spiegazione del Codice
Questa linea imposta lo script per essere eseguito 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 interruttore a slitta collegato al pin GPIO 17 con la resistenza pull-up disabilitata, e due LED collegati ai pin GPIO 22 e 27.
# Inizializza l'interruttore a slitta sul pin GPIO 17 con la resistenza pull-up disabilitata 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 controlla lo stato dell’interruttore a slitta. Se premuto, LED1 si accende e LED2 si spegne; se non premuto, LED1 si spegne e LED2 si accende. Il ciclo si ripete ogni 0,5 secondi. Gestisce un’interruzione da tastiera (come Ctrl+C) per permettere una chiusura corretta dello script.
try: # Ciclo principale per controllare lo stato dei LED in base allo stato dell'interruttore a slitta while True: if micro_switch.is_pressed: # Verifica se l'interruttore è premuto print(' LED1 ON ') # Stampa un messaggio di stato led1.on() # Accendi LED1 led2.off() # Spegni LED2 else: # Se l'interruttore non è premuto print(' LED2 ON ') # Stampa un messaggio di stato led1.off() # Spegni LED1 led2.on() # Accendi LED2 sleep(0.5) # Attendi 0,5 secondi prima di verificare nuovamente lo stato dell'interruttore except KeyboardInterrupt: # Gestisci un'interruzione da tastiera (Ctrl+C) per una chiusura pulita dal ciclo pass