Elettronica E Hardware

Pin Digitali

I pin dell'Arduino Uno sono i punti di connessione che permettono di collegare la scheda a componenti esterni come LED, sensori, motori e altri circuiti. Imparare a usare correttamente questi pin è il primo passo per dare vita ai tuoi progetti, controllando il flusso di dati e di energia tra l'Arduino e il mondo esterno.

Arduino | Pin Digitali

I Pin di Arduino: Le Interfacce del Microcontrollore

Cosa sono: Terminali fisici di connessione | Funzione: Scambio di segnali elettrici tra software e hardware | Tipo: GPIO (General Purpose Input/Output)

I pin di Arduino sono i piccoli fori numerati presenti lungo i bordi della scheda. Immaginali come i "punti di contatto" attraverso i quali il microcontrollore può interagire con il mondo esterno.

Ogni pin può essere configurato via codice per svolgere un compito specifico, agendo principalmente in due modi:

  • Come Uscita (Output): Per inviare energia e comandare componenti come LED, motori o display.
  • Come Ingresso (Input): Per ricevere informazioni da sensori, pulsanti o interruttori.
Su una scheda Arduino Uno, i pin più utilizzati sono i Digitali (0-13) e i pin di alimentazione come GND (massa) e 5V.
[Image of Arduino Uno pinout diagram]

La Funzione pinMode()

Scopo: Definire il comportamento elettrico di un pin GPIO (GPIO sta per General Purpose Input/Output (Ingresso/Uscita per scopi generali) | Ambito: Si utilizza esclusivamente nel void setup()

La definizione del tipo di pin (ingresso o uscita) si effettua nella funzione setup():
void setup() {
  pinMode(pin, OUTPUT); // pin definito come uscita
  pinMode(pin, INPUT);  // pin definito come ingresso
}

Esempio di Codice:

void setup() {
  pinMode(13, OUTPUT); // Imposta il pin del LED come uscita
  pinMode(2, INPUT);   // Imposta il pin di un pulsante come ingresso
}

OUTPUT (Uscita)

Il pin eroga corrente elettrica.


Quando un pin è configurato come output quando un pin è configurato come uscita, può inviare una tensione esternamente. In questo modo, puoi accendere un LED, attivare un relè o controllare un motore.

Arduino LED / Motore

INPUT (Ingresso)

Il pin rileva la presenza di tensione.


Quando un pin è configurato come input può rilevare se la tensione è HIGH (alta, 5V) o LOW (bassa, 0V). Questa funzione è essenziale per collegare sensori, pulsanti o interruttori che inviano segnali ad Arduino.

Pulsante / Sensore Arduino

La Funzione digitalWrite()

Azione: Invia un segnale ON/OFF a un pin | Stati: HIGH (5V) / LOW (0V)

Lo stato dei pin di Arduino si riferisce al loro livello di tensione, che può essere alto (HIGH) o basso (LOW). Queste sono le due condizioni in cui un pin digitale può trovarsi. Per modificare lo stato di un pin, devi prima di tutto averlo configurato come uscita (OUTPUT) nella funzione setup(). Se il pin è un ingresso, la scheda non può cambiarne lo stato. La funzione per cambiare lo stato è digitalWrite() e accetta due argomenti:
  • Il numero del pin: L'identificativo del pin che vuoi modificare (es. 13, 12, 8).
  • Lo stato: HIGH (per impostare la tensione a 5V) o LOW (per impostare la tensione a 0V).
Esempio Pratico: Far lampeggiare un LED
void loop() {
  digitalWrite(13, HIGH); // Accende il LED (eroga 5V)
  delay(1000);            // Attende un secondo
  digitalWrite(13, LOW);  // Spegne il LED (porta a 0V)
  delay(1000);            // Attende un secondo
}

Esempi pratici
digitalWrite(13, HIGH);
Questo comando imposta il pin 13 a uno stato di tensione alta (5V). Se un LED è collegato a questo pin, si accenderà.

digitalWrite(13, LOW);
Questo comando imposta il pin 13 a uno stato di tensione bassa (0V). Se un LED è collegato a questo pin, si spegnerà.

Il comando digitalWrite() è fondamentale per controllare i componenti elettronici, come i LED, i relè o i motori, che richiedono un segnale di accensione o spegnimento.

Pin di massa (GND)

Oltre ai 14 pin numerati, la scheda Arduino Uno ha anche pin dedicati alla massa (GND). Il pin GND è il punto di riferimento a 0V ed è fondamentale per chiudere i circuiti. Un circuito deve essere sempre completo, ovvero la corrente deve avere un percorso per tornare alla fonte di alimentazione. Collegando il polo negativo dei tuoi componenti a un pin GND, garantisci che il circuito sia chiuso e funzionale. Ci sono diversi pin GND sulla scheda per facilitare il cablaggio.

Pin PWM (Pulse Width Modulation)

Sei dei 14 pin digitali (pin 3, 5, 6, 9, 10 e 11) sono contrassegnati con un simbolo a forma di tilde (~). Questi pin possono generare segnali PWM, che simulano 'uscita analogica. Anche se un pin digitale può inviare solo 5V o 0V, il PWM lo fa a una velocità così alta da poter variare la "potenza" percepita. Questo è utile per controllare la luminosità di un LED o la velocità di un motore.

Pin di Comunicazione Seriale (RX e TX)

I pin 0 (RX) e 1 (TX) sono usati per la comunicazione seriale. Il pin RX riceve dati (da un altro dispositivo), mentre il pin TX trasmette dati. Spesso, questi pin sono collegati direttamente al chip USB di Arduino per permettere la comunicazione con il computer, quindi è sconsigliato usarli per altri scopi quando si carica o si esegue un programma che usa la comunicazione seriale.

Pin di Interruzione (Interrupt)

I pin 2 e 3 possono essere usati come interruzioni esterne. Le interruzioni permettono ad Arduino di reagire immediatamente a un evento (come la pressione di un pulsante) senza dover controllare continuamente il pin all'interno della funzione loop().

LABORATORIO

Led lampeggiante

Led lampeggiante con Arduino Uno


1 Montaggio del circuito

Dopo aver realizzato un circuito con batteria, sostituiamo la fonte di alimentazione con una scheda Arduino Uno. Sul simulatore Tinkercad, elimina la batteria e posiziona una scheda Arduino Uno.

Collega un capo del resistore a uno dei fori sulla breadboard. Poi collega la gamba più lunga (anodo) del LED allo stesso foro del resistore e la gamba più corta (catodo) a un altro foro sulla stessa linea.

Infine, collega il pin GND (massa) di Arduino alla stessa fila del catodo del LED. Collega il pin digitale 13 di Arduino all'altra fila in cui si trova il resistore.


2 Scrittura del codice

Ora è il momento di scrivere il codice. Clicca sul pulsante "Codice" di Tinkercad e scegli "Testo" per l'editor. Scrivi il seguente codice.


void setup() {
  // Metti qui il codice di configurazione, viene eseguito una sola volta.
  pinMode(13, OUTPUT);
}

void loop() {
  // Metti qui il codice principale, viene eseguito ripetutamente.
  digitalWrite(13, HIGH);  // Accende il LED
  delay(1000);             // Attende 1000 millisecondi (1 secondo)
  digitalWrite(13, LOW);   // Spegne il LED
  delay(1000);             // Attende 1000 millisecondi (1 secondo)
}


3 Analisi del codice

  • La funzione setup() viene eseguita all'avvio del programma. Al suo interno, la riga pinMode(13, OUTPUT); configura il pin digitale 13 come uscita, permettendo ad Arduino di inviare energia al LED.
  • La funzione loop() è il ciclo infinito del programma.
    • digitalWrite(13, HIGH); imposta il pin 13 su uno stato di alta tensione (5V), accendendo il LED.
    • delay(1000); mette in pausa il programma per 1000 millisecondi (1 secondo).
    • digitalWrite(13, LOW); imposta il pin 13 su uno stato di bassa tensione (0V), spegnendo il LED.
    • Il secondo delay(1000); attende un altro secondo.

4 Avvia la simulazione

Clicca sul pulsante "Avvia simulazione" per vedere il tuo circuito prendere vita. Se tutto è stato collegato e codificato correttamente, il LED inizierà a lampeggiare a intervalli di un secondo.