Cos'è GND? Perché serve una massa comune con Arduino e sensori
Cos'è GND e perché serve una massa comune: tensione di riferimento, alimentatore esterno e GND di Arduino, loop di massa, massa a stella e terra di rete.
La risposta breve a cos'è GND: è il punto di riferimento a 0 volt rispetto al quale si misurano tutte le tensioni del circuito. Il nome viene dall'inglese "ground"; in italiano si parla di massa, a volte di negativo. Il pin 5V di Arduino significa in realtà "5 volt rispetto a GND"; anche i 2,5 V in uscita da un sensore hanno senso solo rispetto a una massa. La maggior parte dei guasti misteriosi dei principianti, servo che tremano, sensori che leggono valori assurdi e schede che si resettano da sole, nasce in realtà da un solo filo mancante: la massa comune.
In questo articolo spiego con un paragone semplice perché GND è un "riferimento", mostro come unire correttamente le masse con un alimentatore esterno, spiego con i numeri da dove nascono loop di massa e rumore e ti insegno a separare la massa dei motori da quella dei sensori con la massa a stella. Vedremo anche la differenza tra la massa del circuito e la terra delle prese di casa e i casi in cui le masse vengono tenute separate di proposito. Le basi dell'alimentazione sono in come alimentare Arduino.
Cos'è GND? Perché la tensione si misura tra due punti?
La tensione non è una proprietà di un singolo punto, ma la differenza di potenziale tra due punti. Pensala come l'altezza: quando dici che un tavolo è "alto 80 cm" usi senza accorgertene il pavimento come riferimento. Se lo stesso tavolo è al 10° piano di un palazzo, la sua altezza sul livello del mare supera i 30 metri. In elettronica GND è quel "pavimento". Quando appoggi il puntale nero del multimetro su GND e quello rosso su un punto, leggi la tensione di quel punto rispetto a GND. Sposta il puntale nero altrove e lo stesso punto mostra un valore completamente diverso. Per questo, quando in un circuito diciamo "5 V", intendiamo sempre "rispetto al GND di questo circuito".
| Termine | Significato | Dove lo trovi |
|---|---|---|
| GND / 0V | Punto di riferimento del circuito | Arduino, ESP32, Pico e tutti i moduli |
| Negativo (-) | Morsetto di ritorno dell'alimentatore, di solito collegato a GND | Pile, alimentatori, alimentatori da banco |
| VCC / VIN / 5V / 3V3 | Alimentazione positiva rispetto a GND | Pin di alimentazione di moduli e schede |
| COM | Morsetto comune; spesso GND, ma nei relè è il contatto comune | Relè, pulsanti, strumenti |
| AGND / DGND | Masse analogica e digitale separate, unite in un punto | ADC, audio e misure di precisione |
| Massa telaio | Massa collegata al contenitore metallico | Apparecchi con involucro, veicoli |
| Terra di protezione (PE) | Il filo giallo-verde della presa, per la sicurezza | Impianto di rete a 230 V |
Perché serve una massa comune?
Quando Arduino invia un segnale a un servo o a un modulo, in realtà dice "il mio pin è a 5 V rispetto al mio GND". Il ricevitore legge quel segnale rispetto al proprio GND. Se le masse dei due dispositivi non sono collegate, non esiste un pavimento comune; per il servo i 5 V di Arduino possono valere 5 V, 2 V o -3 V. C'è anche un problema più di fondo: la corrente scorre sempre in un circuito chiuso. La corrente di segnale esce dal pin di Arduino, attraversa l'ingresso del ricevitore e deve tornare attraverso GND. Senza percorso di ritorno il segnale non si forma correttamente, oppure i fili fanno da antenna e raccolgono disturbi. In breve: se due dispositivi si scambiano segnali, le loro masse devono essere collegate.
Alimentatore esterno e Arduino: unire le masse

Il caso più comune: un servo, un motore o una striscia LED è alimentato da un adattatore separato perché assorbe più corrente di quanta Arduino possa fornire. Nel collegamento corretto si uniscono solo le masse, i positivi restano separati. Così la corrente del carico arriva dall'alimentatore esterno e vi ritorna, mentre Arduino fornisce solo il segnale. La tabella mostra il collegamento di un servo MG996R alimentato da un adattatore esterno da 5 V; la stessa logica vale per un MOSFET che comanda una striscia LED da 12 V o per una scheda driver per motori.
| Filo | Dove va | Perché? |
|---|---|---|
| Servo rosso (+) | Adattatore esterno +5 V | La corrente del motore non passa da Arduino |
| Servo marrone (-) | GND dell'adattatore esterno | Percorso di ritorno della corrente del motore |
| Servo arancione (segnale) | Arduino D9 | Segnale PWM di posizione |
| Ponticello | Tra il GND dell'adattatore e il GND di Arduino | Riferimento comune per il segnale |
| +5 V dell'adattatore al 5V di Arduino | Non collegare | Le due sorgenti potrebbero spingersi corrente a vicenda |
1// Harici 5 V ile servo, ortak GND / servo on an external 5 V supply, common GND
2#include <Servo.h>
3
4const int SERVO_PIN = 9; // turuncu sinyal kablosu / orange signal wire
5Servo servo;
6
7void setup() {
8 servo.attach(SERVO_PIN);
9}
10
11void loop() {
12 for (int a = 0; a <= 180; a += 2) { // 0 -> 180 derece / degrees
13 servo.write(a);
14 delay(15);
15 }
16 for (int a = 180; a >= 0; a -= 2) { // 180 -> 0 derece / degrees
17 servo.write(a);
18 delay(15);
19 }
20}Guasti reali: "il servo non funziona", "il sensore impazzisce"
| Sintomo | Causa legata alla massa | Soluzione |
|---|---|---|
| Il servo non gira o vibra | Il GND dell'alimentatore esterno non è collegato ad Arduino | Unisci le due masse con un filo corto |
| Arduino si resetta quando parte il motore | La corrente del motore ritorna dal GND di Arduino e la tensione cala | Porta il GND del motore direttamente all'alimentatore, massa a stella |
| Il sensore analogico salta con il motore acceso | Caduta di tensione della corrente del motore su un filo di massa comune | Separa il GND del sensore dal percorso del motore |
| Caratteri senza senso sulla seriale | Le masse delle due schede non sono collegate | Collega GND oltre a TX e RX |
| La striscia LED non si accende mai con il MOSFET | Il negativo dell'alimentatore a 12 V non è collegato al GND di Arduino | Unisci il source del MOSFET e le due masse |
| Il valore cambia toccando | Ingresso flottante o massa allentata | Aggiungi pull-up/pull-down e controlla il filo di GND |
Arduino che si resetta quando parte un motore è il guasto più disorientante della tabella, perché il cablaggio sembra "giusto". Per una diagnosi dettagliata puoi seguire anche i passi di Arduino si resetta da solo; con un ESP32 lo stesso problema di solito si presenta come messaggio di brownout.
Loop di massa e rumore: anche il filo di massa è una resistenza
Poiché negli schemi GND è disegnato con una sola linea, pensiamo che valga esattamente 0 V ovunque. In realtà le piste della breadboard, i ponticelli e le saldature hanno una piccola resistenza. La legge di Ohm qui è spietata: V = I × R. Se la corrente di ritorno di un motore da 2 A passa in un filo di massa con resistenza totale di 0,1 Ω, tra i suoi due capi nasce una differenza di 0,2 V. Se un sensore analogico condivide quel filo, il suo "0 V" ora si trova 0,2 V più in alto. Sull'ADC a 10 bit di Arduino Uno è un errore di circa 41 punti (0,2 / 5 × 1023). Se il motore è pilotato in PWM, questo scarto sale e scende centinaia di volte al secondo e vedi le letture saltare.
Un loop di massa nasce quando tra due dispositivi c'è più di un percorso di GND. Per esempio, se Arduino è collegato al computer via USB e anche, con un altro filo, a un alimentatore collegato a terra, la corrente di massa può circolare su due percorsi e quell'anello chiuso fa da antenna per i campi magnetici vicini. Il risultato è il ronzio nei circuiti audio o un'ondulazione a 50 Hz nelle misure. La soluzione non è tagliare il GND, ma lasciare un solo percorso ed evitare che le correnti forti condividano un filo con i segnali sensibili.
Massa a stella: separare la massa dei motori e dei sensori

La massa a stella significa che tutti i fili di GND si incontrano in un unico punto centrale invece di essere collegati a catena. La grande corrente del motore torna al negativo dell'alimentatore con un proprio filo spesso, mentre le masse di Arduino, sensori e circuiti di segnale raggiungono lo stesso punto con fili sottili separati. Così la caduta di tensione dovuta alla corrente del motore resta nel filo del motore e non sposta il riferimento dei sensori. In pratica segui questi passi:
- Scegli il negativo dell'alimentatore o un morsetto a vite come punto stella.
- Porta il GND del driver del motore (L298N, MOSFET, bobina del relè) direttamente a quel punto con un filo corto e spesso.
- Collega il GND di Arduino allo stesso punto con un filo separato; non farlo passare dal GND del driver.
- Collega il GND dei sensori analogici al pin GND di Arduino, così sensore e ADC condividono lo stesso riferimento.
- Metti un condensatore ceramico da 100 nF sui morsetti del motore e un elettrolitico da 100-470 µF all'ingresso di alimentazione del driver.
- Tieni i fili dei motori il più possibile lontani da quelli di segnale e attorciglia tra loro i fili di ogni motore.
Misurare il rumore: un semplice test di GND con Arduino
Invece di indovinare quanto è buona la tua massa, puoi misurarla. Costruisci un partitore di tensione con due resistenze da 10 kΩ tra 5V e GND e collega il punto centrale ad A0; quel punto dovrebbe restare fisso a 2,5 V. Il codice seguente fa 200 letture di fila su A0 e stampa la differenza tra la più alta e la più bassa come rumore picco-picco in millivolt. Misura prima con il motore spento, poi con il motore acceso; poi riorganizza i fili di GND a stella e misura di nuovo.
1// Basit GND gürültü ölçer / simple ground noise meter
2const int SENSOR_PIN = A0; // ölçülen sinyal / signal under test
3const int SAMPLES = 200; // yaklaşık 22 ms'lik örnek / about 22 ms of samples
4const float VREF = 5.0; // Uno ADC referansı / Uno ADC reference
5
6void setup() {
7 Serial.begin(115200);
8}
9
10void loop() {
11 int minV = 1023, maxV = 0;
12 long sum = 0;
13 for (int i = 0; i < SAMPLES; i++) {
14 int v = analogRead(SENSOR_PIN);
15 if (v < minV) minV = v;
16 if (v > maxV) maxV = v;
17 sum += v;
18 }
19 float avgVolt = sum / (float)SAMPLES * VREF / 1023.0;
20 float ripplemV = (maxV - minV) * VREF / 1023.0 * 1000.0; // tepe-tepe / peak-to-peak
21
22 Serial.print("ortalama / average: ");
23 Serial.print(avgVolt, 3);
24 Serial.print(" V tepe-tepe / peak-to-peak: ");
25 Serial.print(ripplemV, 0);
26 Serial.println(" mV");
27 delay(500);
28}In un circuito ben realizzato il rumore picco-picco è di circa 1-2 punti dell'ADC, cioè 5-10 mV. Se sale sopra i 50 mV con il motore acceso, qualche filo condivide il percorso di massa con il motore. 200 mV o più di solito indicano un GND allentato, corrente del motore che passa dalla breadboard o un alimentatore esterno mai collegato. Questo semplice test dimostra in pochi minuti che, nella maggior parte dei casi di "sensore che impazzisce", il problema non è il sensore ma la massa.
Quando le masse vengono tenute separate di proposito?
L'unica eccezione a "unisci tutte le masse" è l'isolamento galvanico. Un optoisolatore o un relè trasmette il segnale con la luce o con un campo magnetico e non lascia alcun collegamento elettrico tra i due lati. In quel caso le masse dei due lati restano separate di proposito: una è il lato Arduino, l'altra il lato rete o del motore rumoroso. Nei moduli relè con ponticello JD-VCC, togliendo il ponticello e alimentando la bobina con una sorgente separata, il GND di quella sorgente non va collegato ad Arduino; è proprio lo scopo dell'isolamento. Per i dettagli leggi cos'è un optoisolatore e cos'è un modulo relè. Senza isolamento, due circuiti che si scambiano segnali hanno bisogno di un GND comune.
La terra di rete è uguale al GND del circuito?
No. Il filo giallo-verde delle prese è la terra di protezione e arriva davvero a un dispersore piantato nel terreno. Il suo compito è la sicurezza: se la fase tocca l'involucro metallico di un apparecchio, la corrente scorre lungo questo percorso e il fusibile o il differenziale interrompe il circuito. Il GND di un circuito con Arduino è solo il riferimento di quel circuito e, in un progetto alimentato a pile o con un adattatore, non ha alcun collegamento con la terra. In alcuni adattatori e computer il GND del circuito può essere collegato alla terra di protezione, ed è una delle cause dei loop di massa. Nei progetti hobbistici non cercare mai di collegare da solo il GND del circuito al neutro o alla terra della rete.
Massa comune con moduli a 5 V su ESP32 e Pico
L'ESP32 e il Raspberry Pi Pico lavorano a 3,3 V; per collegare un modulo a 5 V metti in mezzo un convertitore di livello. Il convertitore ha pin GND sul lato basso (LV) e su quello alto (HV) e vanno collegati entrambi; può tradurre i segnali dei due lati solo rispetto a un riferimento comune. Lo stesso vale se l'ESP32 è alimentato via USB e una striscia LED a 12 V da un adattatore separato: il source del MOSFET, il negativo dell'adattatore e il GND dell'ESP32 devono incontrarsi in un punto. Come funzionano i convertitori lo trovi in convertitore di livello logico.
Checklist del GND
- Le masse dei due dispositivi che si scambiano segnali sono collegate?
- Con alimentatori esterni, sono unite solo le masse e separati i positivi?
- Le correnti di motori, relè e strisce LED tornano all'alimentatore senza passare dal pin GND di Arduino?
- I sensori analogici sono su un percorso di massa che non porta corrente dei motori?
- I fili di GND sono più spessi di quelli di segnale e il più corti possibile?
- Dove un optoisolatore o un relè con JD-VCC fa da isolamento, i due lati sono davvero separati?
- Nel dubbio, hai verificato il collegamento tra i punti di GND con il multimetro in modalità continuità (bip)?
GND è il filo più silenzioso ma più importante del circuito: se è fatto bene nessuno lo nota, se lo dimentichi va tutto storto. Se non sai misurare la continuità con il multimetro, come usare il multimetro ti semplifica il lavoro. Nell'app BlueGrays trovi progetti che richiedono un alimentatore esterno, come servomotori, un'auto robot con L298N, un robot che evita gli ostacoli, una lampada a 230 V con relè e l'irrigazione intelligente, ognuno con schema e codice passo passo, per seguire sullo schema ogni collegamento di massa.
Domande frequenti
Cos'è GND e a cosa serve?
GND (ground, massa) è il punto di riferimento a 0 volt rispetto al quale si misurano tutte le tensioni di un circuito. È anche il percorso da cui la corrente torna all'alimentatore. Quando si dice che un pin di Arduino è a 5V o 3,3V, il valore è sempre riferito a GND.
GND è la stessa cosa della terra?
In elettronica GND è il riferimento proprio del circuito e non deve per forza essere collegato alla terra. La terra di protezione giallo-verde della presa va a un dispersore nel terreno per la sicurezza. In un progetto Arduino alimentato a pile o con un adattatore, GND non ha alcun collegamento con la terra di rete.
Il GND di un alimentatore esterno va collegato ad Arduino?
Sì. Se un dispositivo alimentato da una sorgente esterna riceve segnali da Arduino, le due masse devono essere unite. Si uniscono solo le masse, i positivi restano separati. Altrimenti il segnale non ha riferimento comune né percorso di ritorno e il servo vibra o non funziona.
Cosa succede se GND non è collegato?
Il dispositivo ricevente non riesce a interpretare correttamente la tensione; i servo si muovono a caso, la seriale mostra caratteri senza senso e i sensori danno letture instabili. In alcuni casi la corrente ritorna per percorsi inattesi e può danneggiare i pin.
Il negativo (-) è uguale a GND?
Nella maggior parte dei circuiti con una sola alimentazione il negativo è usato come GND, quindi in pratica è lo stesso punto. Con alimentazioni duali come ±12 V, però, GND è il punto centrale e il negativo è a -12 V. Per questo conviene guardare il simbolo di GND sullo schema.
Come si evita un loop di massa?
Lascia un solo percorso di GND tra due dispositivi, separa i fili dei motori ad alta corrente dalle masse dei sensori sensibili e unisci tutto in un unico punto a stella. Se serve, separa elettricamente i due lati con optoisolatori o moduli isolati.
Progetti da realizzare dopo questo articolo
Vedi tutti i progetti
Utilizzo del servomotore
Il braccio di un piccolo servomotore ruota a turno in tre posizioni: tutto all'inizio, esattamente a metà e tutto alla fine, aspettando due secondi a ogni fermata. L'Arduino dice al motore a quale ang

Funzionamento del servomotore con potenziometro
Mentre giri la manopola del potenziometro, il braccio del servomotore ruota insieme a lei: un'estremità della manopola corrisponde a zero gradi, l'altra a mezzo giro. L'Arduino legge di continuo la po

Auto controllata via Bluetooth con L298N
Trasforma il telefono in un telecomando e guida la tua auto robot. L'Arduino riceve tramite un modulo Bluetooth i comandi di un'app di controllo remoto sul telefono e fa girare le ruote con un driver

Robot che evita gli ostacoli
Che ne dite di costruire un veicolo intelligente che trova la propria strada? L'Obstacle Avoiding Robot scruta costantemente l'ambiente circostante grazie al sensore a ultrasuoni posto davanti a lui.

Lampadina 220V con pulsante (Push)
Finché tieni premuto il pulsante, una vera lampadina da 220 volt resta accesa, e si spegne appena lo lasci. Il piccolo segnale dell'Arduino non può accendere la lampadina direttamente, quindi in mezzo

Stazione di irrigazione intelligente
Un giardiniere che annaffia le tue piante da solo, così non si seccano mentre sei in vacanza. Un sensore di umidità misura quanto è bagnata la terra; quando diventa secca, l'Arduino accende la pompa d

Misurare l'intensità luminosa con LDR
Vuoi vedere quanto è luminosa la tua stanza sotto forma di numero? L'LDR, un piccolo componente sensibile alla luce, misura la luce ambiente e l'Arduino scrive il valore sullo schermo del computer ogn

Voltmetro digitale con display LCD
Scopri quanta tensione dà una pila o un alimentatore con uno strumento costruito da te. Un partitore fatto di due resistenze abbassa la tensione alta a un livello che la scheda può leggere, e l'Arduin
Altri articoli
App BlueGrays
Costruisci questo circuito passo passo sul telefono
Schema, codice ed elenco componenti in un’unica schermata. Oltre 200 progetti Arduino, ESP32 e Pico da realizzare.
Inquadra con il telefono
Punta la fotocamera sul codice: si apre lo store del tuo telefono.
oppure apri lo store

