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.

../_images/2.1.1_Button_list.png

È decisamente conveniente acquistare un kit completo, ecco il link:

Nome

COMPONENTI NEL KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK D’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Pulsante

ACQUISTA

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.

../_images/2.1.1_Button_schematic_1.png ../_images/2.1.1_Button_schematic_2.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/2.1.1_Button_circuit.png

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

  1. Lo script è scritto in Python3 e importa le classi LED e Button dalla libreria gpiozero, e pause dal modulo signal.

    #!/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
    
  2. Inizializza un oggetto LED sul pin GPIO 17 e un oggetto Button sul 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)
    
  3. 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
    
  4. 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()