Nota

Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi, Arduino e ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino e ESP32 insieme ad altri appassionati.

Perché unirsi?

  • Supporto esperto: Risolvi i problemi post-vendita e affronta le 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: Accedi in anteprima agli annunci di nuovi prodotti e alle anteprime esclusive.

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

  • Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni durante le festività.

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

2.5 - Lettura del Valore di un Pulsante

Dal nome GPIO (General-purpose input/output), possiamo capire che questi pin hanno sia funzioni di input che di output. Nelle lezioni precedenti, abbiamo utilizzato la funzione di output; in questo capitolo utilizzeremo la funzione di input per leggere il valore di un pulsante.

Componenti Necessari

In questo progetto, ci servono i seguenti componenti.

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

Nome

ELEMENTI IN QUESTO KIT

LINK PER L’ACQUISTO

Kepler Kit

450+

Kepler Ultimate Kit

Puoi anche acquistarli separatamente dai link qui sotto.

SN

INTRODUZIONE COMPONENTE

QUANTITÀ

LINK PER L’ACQUISTO

1

Introduzione al Pico W

1

ACQUISTA

2

Cavo Micro USB

1

3

Breadboard

1

ACQUISTA

4

Cavi Jumper

Diversi

ACQUISTA

5

Resistenza

1(10KΩ)

ACQUISTA

6

Pulsante

1

ACQUISTA

Schema Elettrico

sch_button

Un lato del pin del pulsante è collegato a 3.3v, e l’altro lato è collegato a GP14, quindi quando il pulsante viene premuto, GP14 sarà alto. Tuttavia, quando il pulsante non è premuto, GP14 si trova in uno stato sospeso e può essere alto o basso. Per ottenere un livello basso stabile quando il pulsante non è premuto, GP14 deve essere ricollegato a GND tramite una resistenza pull-down da 10K.

Cablaggio

wiring_button

Nota

Possiamo pensare al pulsante a quattro piedini come a un pulsante a forma di «H». I due piedini di sinistra (o destra) sono collegati tra loro, il che significa che una volta che attraversa la linea di divisione centrale, collegherà insieme le due metà delle righe con lo stesso numero. (Ad esempio, nel mio circuito, E23 e F23 sono collegati, così come E25 e F25).

Prima che il pulsante venga premuto, i lati sinistro e destro sono indipendenti l’uno dall’altro, e la corrente non può fluire da un lato all’altro.

Codice

Nota

  • Puoi aprire il file 2.5_reading_button_value.ino nel percorso kepler-kit-main/arduino/2.5_reading_button_value.

  • Oppure copia questo codice nell”Arduino IDE.

  • Non dimenticare di selezionare la scheda (Raspberry Pi Pico) e la porta corretta prima di cliccare sul pulsante Upload.

Dopo l’esecuzione del codice, fai clic sull’icona della lente d’ingrandimento nell’angolo in alto a destra dell’IDE di Arduino (Serial Monitor).

../_images/open_serial_monitor.png

Ora, quando premi il pulsante, il Serial Monitor stamperà «Hai premuto il pulsante!».

Come funziona?

Per abilitare il Serial Monitor, è necessario avviare la comunicazione seriale in setup() e impostare la velocità di trasmissione a 9600.

Serial.begin(115200);

Per il pulsante, dobbiamo impostare la loro modalità su INPUT per poter ottenere i loro valori.

pinMode(buttonPin, INPUT);

Leggi lo stato del buttonPin in loop() e assegnalo alla variabile buttonState.

buttonState = digitalRead(buttonPin);

Se lo stato di buttonState è ALTO, il LED lampeggerà. stampa «Hai premuto il pulsante!» sul Serial Monitor.

if (buttonState == HIGH) {
    Serial.println("You pressed the button!");
}

Modalità di Lavoro Pull-up

Successivamente vediamo il cablaggio e il codice quando il pulsante è in modalità di lavoro pull-up, prova a eseguirlo.

wiring_button_pullup

L’unica differenza che vedrai rispetto alla modalità pull-down è che la resistenza da 10K è collegata a 3.3V e il pulsante è collegato a GND, in modo che quando il pulsante viene premuto, GP14 otterrà un livello basso, che è l’opposto del valore ottenuto in modalità pull-down. Quindi, basta cambiare questo codice in if (buttonState == LOW).