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.5 Interruttore di Inclinazione
Introduzione
Questo è un interruttore a sfera inclinabile con una pallina metallica all’interno. Viene utilizzato per rilevare piccole inclinazioni angolari.
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
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.5_Tilt_zero.py
Posiziona l’interruttore inclinabile in verticale e il LED verde si accenderà. Se lo inclini, verrà stampato «Tilt!» sullo schermo e il LED rosso si accenderà. Riposizionalo verticalmente e il LED verde si riaccenderà.
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
# Inizializza il sensore di inclinazione e i LED usando GPIO Zero
TiltPin = Button(17, pull_up=False) # Sensore di inclinazione collegato al pin GPIO 17, resistenza pull-up disabilitata
green_led = LED(27) # LED verde collegato al pin GPIO 27
red_led = LED(22) # LED rosso collegato al pin GPIO 22
def detect():
"""
Detect the tilt sensor state and control the LEDs.
Turns on the red LED and turns off the green LED when tilted.
Turns off the red LED and turns on the green LED when not tilted.
"""
if TiltPin.is_pressed: # Verifica se il sensore è inclinato
print(' *************')
print(' * Tilt! *')
print(' *************')
red_led.on() # Accendi LED rosso
green_led.off() # Spegni LED verde
else: # Se il sensore non è inclinato
red_led.off() # Spegni LED rosso
green_led.on() # Accendi LED verde
try:
while True:
# Controlla continuamente lo stato del sensore di inclinazione e aggiorna i LED
TiltPin.when_pressed = detect
TiltPin.when_released = detect
except KeyboardInterrupt:
# Gestisci un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo pulito
pass
Spiegazione del Codice
Questa linea imposta lo script per essere eseguito con Python 3 e importa
LEDeButtondagpiozeroper controllare i dispositivi GPIO.#!/usr/bin/env python3 from gpiozero import LED, Button
Inizializza il sensore di inclinazione collegato al pin GPIO 17 (con resistenza pull-up disabilitata) e due LED collegati ai pin GPIO 27 e 22.
# Inizializza il sensore di inclinazione e i LED usando GPIO Zero TiltPin = Button(17, pull_up=False) # Sensore di inclinazione collegato al pin GPIO 17, resistenza pull-up disabilitata green_led = LED(27) # LED verde collegato al pin GPIO 27 red_led = LED(22) # LED rosso collegato al pin GPIO 22
Definisce la funzione
detect, che controlla lo stato del sensore di inclinazione. Se inclinato, accende il LED rosso e spegne il LED verde. Se non inclinato, fa il contrario.def detect(): """ Detect the tilt sensor state and control the LEDs. Turns on the red LED and turns off the green LED when tilted. Turns off the red LED and turns on the green LED when not tilted. """ if TiltPin.is_pressed: # Verifica se il sensore è inclinato print(' *************') print(' * Tilt! *') print(' *************') red_led.on() # Accendi LED rosso green_led.off() # Spegni LED verde else: # Se il sensore non è inclinato red_led.off() # Spegni LED rosso green_led.on() # Accendi LED verde
Il ciclo principale assegna la funzione
detectsia agli eventiwhen_pressedchewhen_releaseddel sensore di inclinazione. Il bloccotry-exceptgestisce un’interruzione da tastiera per una chiusura pulita.try: while True: # Controlla continuamente lo stato del sensore di inclinazione e aggiorna i LED TiltPin.when_pressed = detect TiltPin.when_released = detect except KeyboardInterrupt: # Gestisci un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo in modo pulito pass