Nota

Ciao, benvenuto nella Community di SunFounder per appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti?

  • Supporto esperto: 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 di nuovi prodotti e anteprime speciali.

  • Sconti Speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e Omaggi Festivi: Partecipa a omaggi e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!

5.1 Lettura del Valore del Pulsante

In questo progetto interattivo, esploreremo il controllo dei pulsanti e la manipolazione degli LED.

Il concetto è semplice ma efficace. Leggeremo lo stato di un pulsante. Quando il pulsante viene premuto, registra un livello di tensione alto, o “stato alto”. Questa azione attiverà l’accensione di un LED.

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un intero kit, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit di Partenza ESP32

320+

ESP32 Starter Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK DI ACQUISTO

ESP32 Scheda

ACQUISTA

Estensione Fotocamera ESP32

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Pulsante

ACQUISTA

Pin Disponibili

  • Pin Disponibili

    Ecco un elenco di pin disponibili sulla scheda ESP32 per questo progetto.

    Per Input

    IO14, IO25, I35, I34, I39, I36, IO18, IO19, IO21, IO22, IO23

    Per Output

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

  • Pin ad Uso Condizionale (Input)

    I seguenti pin hanno resistori di pull-up o pull-down integrati, quindi non sono necessari resistori esterni quando vengono utilizzati come pin di ingresso:

    Pin ad Uso Condizionale

    Descrizione

    IO13, IO15, IO2, IO4

    Il pull-up con un resistore da 47K imposta il valore su alto di default.

    IO27, IO26, IO33

    Il pull-up con un resistore da 4.7K imposta il valore su alto di default.

    IO32

    Il pull-down con un resistore da 1K imposta il valore su basso di default.

  • Pin Strapping (Input)

    I pin Strapping sono un set speciale di pin utilizzati per determinare specifiche modalità di avvio durante l’accensione del dispositivo (ad es. reset all’accensione).

    Pin Strapping

    IO5, IO0, IO2, IO12, IO15

    In generale, non è consigliato utilizzarli come pin di ingresso. Se desideri utilizzare questi pin, considera il potenziale impatto sul processo di avvio. Per ulteriori dettagli, consulta la sezione Pin di Strapping.

Schema Elettrico

../../_images/circuit_5.1_button.png

Per garantire un funzionamento corretto, collega un lato del pin del pulsante a 3.3V e l’altro lato a IO14. Quando il pulsante viene premuto, IO14 verrà impostato su alto, facendo accendere il LED. Quando il pulsante viene rilasciato, IO14 tornerà al suo stato sospeso, che può essere alto o basso. Per garantire un livello basso stabile quando il pulsante non è premuto, IO14 dovrebbe essere collegato a GND tramite un resistore pull-down da 10K.

Cablaggio

../../_images/5.1_button_bb.png

Nota

Un pulsante a quattro pin è progettato a forma di H. Quando il pulsante non viene premuto, i pin sinistro e destro sono scollegati e la corrente non può fluire tra di essi. Tuttavia, quando il pulsante viene premuto, i pin sinistro e destro sono collegati, creando un percorso per il flusso di corrente.

Codice

Nota

  • Apri il file 5.1_read_button_value.py situato nel percorso esp32-starter-kit-main\micropython\codes, oppure copia e incolla il codice in Thonny. Poi, clicca su «Esegui Script Corrente» o premi F5 per eseguirlo.

  • Assicurati di selezionare l’interprete «MicroPython (ESP32).COMxx» nell’angolo in basso a destra.

import machine
import time

button = machine.Pin(14, machine.Pin.IN) # Pin del pulsante
led = machine.Pin(26, machine.Pin.OUT) # Pin del LED


while True:
    # Se il pulsante viene premuto leggendo il suo valore
    if button.value() == 1:
        # Accendi il LED impostando il suo valore a 1
        led.value(1)
#         time.sleep(0.5)
    else:
        # Spegni il LED
        led.value(0)

Durante l’esecuzione dello script, il LED si accende quando premi il pulsante e si spegne quando lo rilasci.