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 problemi post-vendita e 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.1 Pulsante
Introduzione
In questo progetto, impareremo come accendere o spegnere il LED utilizzando un pulsante.
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
Utilizza un pulsante normalmente aperto come input per Raspberry Pi, la connessione è mostrata nello schema elettrico qui sotto. Quando il pulsante viene premuto, il GPIO18 passerà ad un livello alto (3,3V). Possiamo rilevare lo stato del GPIO18 tramite la programmazione. Cioè, se il GPIO18 passa ad un livello alto, significa che il pulsante è stato premuto. Puoi eseguire il codice corrispondente quando il pulsante viene premuto e poi il LED si accenderà.
Nota
Il pin più lungo del LED è l’anodo e quello più corto è il catodo.
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Apri il file del codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui il codice.
sudo python3 2.1.1_Button_zero.py
Ora, premi il pulsante e il LED si accenderà; rilascia il pulsante e il LED si spegnerà.
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 andare nella 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 da gpiozero
from signal import pause # Importa la funzione pause dal modulo signal
# Inizializza un oggetto LED sul pin GPIO 17
led = LED(17)
# Inizializza un oggetto Button sul pin GPIO 18
button = Button(18)
# Collega l'evento "when_pressed" del pulsante al metodo on() del LED
button.when_pressed = led.on
# Collega l'evento "when_released" del pulsante al metodo off() del LED
button.when_released = led.off
# Esegui un ciclo di eventi che attende eventi del pulsante e mantiene attivo lo script
pause()
Spiegazione del Codice
Lo script è scritto in Python3 e importa le classi
LEDeButtondalla libreriagpiozero, epausedal modulosignal.#!/usr/bin/env python3 from gpiozero import LED, Button # Importa le classi LED e Button da gpiozero from signal import pause # Importa la funzione pause dal modulo signal
Inizializza un oggetto
LEDsul pin GPIO 17 e un oggettoButtonsul pin GPIO 18.# Inizializza un oggetto LED sul pin GPIO 17 led = LED(17) # Inizializza un oggetto Button sul pin GPIO 18 button = Button(18)
Configura i gestori di eventi in modo che il LED si accenda quando il pulsante viene premuto e si spenga quando viene rilasciato.
# Collega l'evento "when_pressed" del pulsante al metodo on() del LED button.when_pressed = led.on # Collega l'evento "when_released" del pulsante al metodo off() del LED button.when_released = led.off
Questo mantiene lo script attivo in un ciclo di eventi, in attesa degli eventi di pressione e rilascio del pulsante.
# Esegui un ciclo di eventi che attende eventi del pulsante e mantiene attivo lo script pause()