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.
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()
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.
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.
La Funzione digitalWrite()
Azione: Invia un segnale ON/OFF a un pin | Stati: HIGH (5V) / LOW (0V)
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).
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
- Simulatore Tinkercad Circuits
- Scheda Arduino Uno R3
- Breadboard
- Un LED
- Un resistore da 330 Ω
- Cavi di collegamento (jumper wire)
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 rigapinMode(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.