Elettronica E Hardware

Il Pulsante

Utilizzare il pulsante tattile di Arduino per accendere un led con arduino

Arduino | Il Pulsante

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

pinMode(2, INPUT_PULLUP);
. Questo imposta la seguente logica:

  • 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 int PIN_PULSANTE = 12;

  // Imposta il pin come ingresso e attiva la resistenza interna
  pinMode(PIN_PULSANTE, INPUT_PULLUP);
}

void loop() {
  int stato = digitalRead(PIN_PULSANTE);

  // Il pulsante è premuto solo quando il segnale è LOW
  if (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

millis()
) o un piccolo filtro hardware per ignorare questi falsi segnali.



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.


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.