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 non sono tutti uguali. Per il nostro progetto con il LED, useremo principalmente i Digitali, ma è bene conoscere l'intera "anatomia" della scheda:
Pin Digitali
Numerati da 0 a 13
Funzionano come interruttori: riconoscono solo due stati, Acceso (5V) o Spento (0V). Sono perfetti per far lampeggiare il nostro LED.
Uso: LED, Pulsanti, RelèPin Analogici
Marcati da A0 a A5
Sono "orecchie" sensibilissime in grado di leggere sfumature di tensione. Non leggono solo ON/OFF, ma valori intermedi tra 0 e 5V.
Uso: Potenziometri, Sensori luceAlimentazione
Marcati 5V, 3.3V, GND
Forniscono energia costante ai componenti. Il GND è il punto di ritorno comune, indispensabile per chiudere ogni circuito.
Uso: Power, Massa (GND)
La Struttura di uno Sketch: Setup e Loop
Concetto: Lo sketch di Arduino | Esecuzione: Sequenziale e Ciclica
Ogni programma di Arduino (chiamato Sketch) è diviso in due parti fondamentali. Immaginale come la preparazione di una scrivania e il lavoro che ci svolgi sopra:
void setup() { ... }
Viene eseguito una sola volta all'accensione della scheda.
Cosa ci scriviamo: Qui impostiamo le regole. È il posto perfetto per la funzione pinMode(), dove diciamo ad Arduino: "Il pin 13 sarà un'uscita".
void loop() { ... }
Viene eseguito all'infinito, ciclicamente, finché c'è corrente.
Cosa ci scriviamo: Qui inseriamo l'azione. Ad esempio, i comandi digitalWrite() e delay() per far lampeggiare il LED continuamente.
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()
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.
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
}
La Funzione digitalWrite()
Azione: Invia un segnale ON/OFF a un pin | Stati: HIGH (5V) / LOW (0V)
HIGH (Acceso)
Il pin emette +5V.
Impostando lo stato su HIGH, Arduino collega internamente il pin all'alimentazione. La corrente fluisce verso il componente collegato, permettendo al LED di accendersi o al relè di attivarsi.
LOW (Spento)
Il pin va a 0V (Massa).
Impostando lo stato su LOW, il pin viene collegato al GND (massa). Non essendoci differenza di potenziale, la corrente smette di scorrere e il componente collegato si spegne.
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
}
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.
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.
🔄 Dal Virtuale al Reale: Portare il Codice su Arduino
Obiettivo: Trasferire il progetto da Tinkercad alla scheda fisica | Strumenti: Cavo USB e Arduino IDE
Una volta verificato che il circuito funziona correttamente nel simulatore, il passo successivo è "dare vita" all'hardware reale. Il codice che hai scritto è identico, cambia solo il modo in cui lo esegui.
In Tinkercad
Premi Start Simulation: il codice viene eseguito virtualmente nel browser.
Su Arduino Reale
Devi Caricare il codice sulla memoria della scheda tramite il software IDE.
Passaggi per il caricamento
1. Copia il codice da Tinkercad
- Apri il pannello Codice in Tinkercad.
- Seleziona tutto il testo (Ctrl+A).
- Copia il codice (Ctrl+C).
2. Incolla nell'IDE Arduino
- Apri l'IDE Arduino sul tuo computer.
- Crea un nuovo file (File -> Nuovo).
- Incolla il codice (Ctrl+V) sostituendo tutto il testo predefinito.
3. Collega e Configura la Scheda
Collega Arduino al PC tramite il cavo USB e assicurati che il software sia pronto a comunicare:
4. Premi "Carica" (Upload)
Clicca sul pulsante con la freccia rivolta a destra in alto a sinistra. Il software compilerà il codice e lo invierà alla scheda.
Verifica: Se vedi i LED TX/RX sulla scheda lampeggiare velocemente e compare il messaggio "Caricamento completato", il tuo LED inizierà subito a funzionare!