Il pulsante che usiamo tipicamente nei circuiti Arduino (spesso chiamato *tactile switch*) è un componente che funge da interruttore momentaneo. Quando lo premi, chiude temporaneamente un circuito elettrico; quando lo rilasci, il circuito si riapre. È lo strumento base per permettere all'utente di dare un input digitale al tuo sketch, ad esempio per accendere una luce o avviare una funzione.
2. I Quattro Piedini: Collegamenti Interni
Nonostante abbia quattro piedini metallici, un pulsante tattile funziona come un semplice interruttore a due poli. La presenza di quattro piedini serve solo per garantire maggiore stabilità meccanica sulla breadboard e per offrire flessibilità di cablaggio.
| Stato | Piedini Collegati | Descrizione |
|---|---|---|
| A Riposo (Non Premuto) | I piedini sono divisi in due coppie: Piedino 1 è collegato al Piedino 2. Piedino 3 è collegato al Piedino 4. |
Il circuito tra i due lati è aperto (interrotto). |
| Premuto | Tutti e quattro i piedini sono collegati tra loro. | Il circuito tra i due lati è chiuso (c'è continuità elettrica). |
Per usarlo correttamente in un circuito, devi collegare l'alimentazione (o il pin di Arduino) a un piedino su un lato e la massa GND o l'altro capo del circuito a un piedino sul lato opposto (ad esempio, un piedino della coppia 1-2 e uno della coppia 3-4).
3. Cablaggio Consigliato con Arduino (INPUT_PULLUP)
Il modo più efficiente per usare un pulsante con Arduino è sfruttare la Resistenza di Pull-Up Interna della scheda. Questo evita l'uso di resistori esterni per stabilizzare il segnale.
| Passo | Cosa Collegare | Funzione Elettrica |
|---|---|---|
| Lato 1 del Pulsante | Collega un piedino sul lato sinistro al Pin Digitale 2 (o qualsiasi altro pin digitale) di Arduino. | Questo pin viene impostato come ingresso nel codice. |
| Lato 2 del Pulsante | Collega un piedino sul lato opposto a **GND** (Terra) di Arduino. | Questo lato fornisce il riferimento a 0 Volt. |
Nel tuo sketch, dovrai usare la funzione . Questo imposta la seguente logica:pinMode(2, INPUT_PULLUP);
- Quando il pulsante NON è premuto: Il pin è tenuto a
HIGH(5V) dalla resistenza interna. - Quando il pulsante È premuto: Il pin viene collegato direttamente a GND, e il pin legge
LOW.
4. Esempio di Codice: La Logica di Lettura
Il tuo programma dovrà quindi reagire al segnale LOW per rilevare la pressione.
void setup() {const intPIN_PULSANTE = 12;// Imposta il pin come ingresso e attiva la resistenza internapinMode(PIN_PULSANTE, INPUT_PULLUP);}void loop() {intstato =digitalRead(PIN_PULSANTE);// Il pulsante è premuto solo quando il segnale è LOWif(stato == LOW) {// Esegui la tua azione (es. accendi un LED)// ...}// ...}
Importante: I pulsanti soffrono di un fenomeno chiamato rimbalzo (debouncing). Quando premi o rilasci, il contatto elettrico può aprirsi e chiudersi più volte in pochi millisecondi. Per progetti più avanzati, devi aggiungere una logica software (come spiegato in precedenza, usando ) o un piccolo filtro hardware per ignorare questi falsi segnali.millis()
LABORATORIO
Accendere un LED con un Pulsante
In questo laboratorio imparerai i concetti fondamentali di Input e Output digitale su Arduino, usando un pulsante per controllare l'accensione di un LED. Questo ti introdurrà all'uso dell'istruzione condizionale if e alla gestione del circuito di ingresso con la tecnica software INPUT_PULLUP.
- Scheda Arduino (es. Uno)
- Breadboard
- 1x LED (qualsiasi colore)
- 1x Resistore da 220 Ω (per il LED)
- 1x Pulsante (a 2 o 4 pin)
- Cavi Jumper (M/M)
1 Assemblaggio del Circuito: Output (LED)
Iniziamo cablando la sezione di Output, il LED.
- Collega il piedino lungo (anodo) del LED al Pin Digitale 13 di Arduino (o a qualsiasi altro pin digitale, es. 8).
- Collega il piedino corto (catodo) del LED a un Resistore da 220 Ω.
- Collega l'altro capo del Resistore al **GND** (Terra) di Arduino.
Spiegazione: Il resistore è cruciale per limitare la corrente ed evitare di bruciare il LED (e potenzialmente il pin di Arduino).
2 Assemblaggio del Circuito: Input (Pulsante)
Ora colleghiamo il pulsante utilizzando la configurazione **Pull-Up Interno** per semplificare il cablaggio.
- Collega un lato del pulsante al Pin Digitale 2 di Arduino.
- Collega l'altro lato del pulsante a una linea GND (Terra) sulla Breadboard, che a sua volta è collegata a GND di Arduino.
Spiegazione: Usando la resistenza di Pull-Up interna, stiamo dicendo ad Arduino di tenere il Pin 2 a HIGH. Premendo il pulsante, si collegherà il Pin 2 direttamente a GND, forzando la lettura a LOW. Il codice dovrà quindi reagire a LOW.
3 Scrittura dello Sketch di Controllo
Apri l'IDE di Arduino o Tinkercad e scrivi il seguente codice. Definiamo le costanti per i pin e implementiamo la logica di lettura e scrittura.
// Definisce i pin usati per chiarezza
const int pinPulsante = 2; // Pin Digitale per l'Input (Pulsante)
const int pinLed = 13; // Pin Digitale per l'Output (LED)
void setup() {
// Configura il pin del LED come OUTPUT
pinMode(pinLed, OUTPUT);
// Configura il pin del pulsante come INPUT_PULLUP.
// Questo attiva la resistenza interna e fa sì che il pin legga HIGH quando non premuto,
// e LOW quando premuto (collegato a GND).
pinMode(pinPulsante, INPUT_PULLUP);
// Avvia la comunicazione seriale per il debug (opzionale ma consigliato)
Serial.begin(9600);
Serial.println("Pronto. Premi il pulsante!");
}
void loop() {
// Legge lo stato attuale del pulsante
int statoPulsante = digitalRead(pinPulsante);
// Controlla lo stato del pulsante
if (statoPulsante == LOW) {
// Se il pulsante è premuto (legge LOW a causa del pull-up)
digitalWrite(pinLed, HIGH); // Accendi il LED
Serial.println("Pulsante PREMUTO: LED acceso");
} else {
// Se il pulsante NON è premuto (legge HIGH)
digitalWrite(pinLed, LOW); // Spegni il LED
Serial.println("Pulsante RILASCIATO: LED spento");
}
// Aggiungiamo un piccolo ritardo per non inondare il Monitor Seriale
delay(50);
}
Spiegazione: L'istruzione if (statoPulsante == LOW) è la logica centrale. Poiché usiamo INPUT_PULLUP, il pin legge LOW solo quando il pulsante crea un cortocircuito momentaneo verso terra (GND), ed è in quel momento che vogliamo accendere il LED.
4 Caricamento e Testing
- Collega Arduino al computer e seleziona la porta corretta nell'IDE.
- Clicca su "Carica" (Upload).
- Una volta caricato, premi il pulsante. Il LED dovrebbe accendersi immediatamente. Rilasciando il pulsante, il LED si spegnerà.
- Apri il Monitor Seriale per visualizzare i messaggi di debug e confermare che la logica del programma stia funzionando correttamente in base alle tue azioni.
Congratulazioni! Hai completato il tuo primo progetto Input/Output, un passo essenziale per comprendere come Arduino interagisce con il mondo esterno.