In breve, il Plotter seriale trasforma i numeri dello sketch in un grafico leggibile
- Serve soprattutto per osservare trend, picchi e variazioni, non per leggere messaggi di testo.
- In Arduino IDE 2 si apre da Tools > Serial Plotter dopo aver caricato uno sketch con
Serial.begin(). - I dati devono arrivare in modo coerente: una riga per campione e separatori chiari tra le variabili.
-
Serial.println()è spesso la scelta più sicura perché chiude la riga automaticamente. - Se il grafico è sporco, il problema è spesso nel formato dei dati, nel baud rate o nella frequenza di campionamento.
Cosa fa davvero il Plotter seriale e quando conviene usarlo
Il suo lavoro è molto concreto: legge i valori inviati via seriale e li disegna come curve nel tempo. Per questo è perfetto quando devo guardare un segnale che cambia in modo continuo, per esempio un potenziometro, una batteria sotto carico, una vibrazione o l’uscita di un filtro digitale. Non sostituisce il Serial Monitor, che resta migliore per messaggi testuali, debug verboso e log leggibili, ma fa una cosa che il monitor non può fare: mostra subito la forma del dato.
In pratica, io lo uso quando mi interessa la tendenza più del numero isolato. Se un valore oscilla, sale lentamente o presenta picchi improvvisi, il grafico lo rende evidente in pochi secondi. Se invece devo capire perché uno sketch stampa un errore, oppure voglio leggere stringhe, allora torno al monitor classico. La distinzione è utile perché evita aspettative sbagliate fin dall’inizio.
La regola mentale che mi aiuta è questa: il Plotter serve per vedere come si muove un segnale, non per raccontare una storia a parole. Da qui passa il passo successivo, cioè preparare IDE e sketch in modo che il grafico venga davvero pulito.

Come aprirlo e preparare sketch e IDE
In Arduino IDE 2 lo apri da Tools > Serial Plotter, oppure da Strumenti > Serial Plotter se stai usando l’interfaccia localizzata. Prima, però, conviene controllare tre cose: scheda selezionata correttamente, porta seriale corretta e codice che invia dati numerici in modo regolare.
Io parto quasi sempre da Serial.begin(115200);. Non è un obbligo assoluto, ma è un valore pratico per avere aggiornamenti rapidi e ridurre il rischio di colli di bottiglia, soprattutto se lo sketch produce molti campioni. Su schede con USB nativa aggiungo spesso anche while (!Serial) { }, così il programma aspetta la connessione della porta prima di iniziare a mandare i primi dati.
void setup() {
Serial.begin(115200);
while (!Serial) { }
}
void loop() {
int raw = analogRead(A0);
Serial.println(raw);
delay(10);
}
Questo esempio minimale basta già per vedere una curva stabile collegata a un ingresso analogico. Se il grafico non compare, nella mia esperienza il problema non è quasi mai il Plotter in sé: di solito è un baud rate incoerente, una porta sbagliata o uno sketch che non sta realmente inviando numeri. Quando la base è a posto, il passaggio cruciale diventa il formato del dato.
Come formattare i dati perché il grafico sia leggibile
Il punto più sottovalutato è questo: il Plotter non ha bisogno di testo elegante, ha bisogno di una struttura coerente. La regola più semplice è inviare una riga per campione e chiuderla sempre con un fine riga. Per un solo valore, Serial.println(valore); è spesso la soluzione migliore. Per più variabili, invece, conviene separare i campi con virgola, tabulazione o spazio e mantenere il formato identico in ogni ciclo.
Nella documentazione Arduino compaiono proprio esempi con potenziometri, tensione della batteria e ampiezza audio: sono casi utili perché il segnale cambia nel tempo e il grafico aiuta a leggere subito l’effetto di rumore, soglia o calibrazione. Quando uso due o più tracce, preferisco una struttura semplice e ripetibile, senza mescolare commenti o frasi nel medesimo flusso seriale.
| Situazione | Formato consigliato | Perché funziona |
|---|---|---|
| Un solo segnale | Serial.println(valore); |
Produce una curva pulita e facile da interpretare. |
| Due variabili da confrontare | Serial.print(a); Serial.print(","); Serial.println(b); |
Mostra due tracce sincronizzate sullo stesso asse temporale. |
| Più canali o dati etichettati | Valori coerenti con separatori costanti e nomi di campo se servono | Aiuta a distinguere le curve quando il progetto cresce. |
| Debug testuale | Meglio il Serial Monitor | Il Plotter non è pensato per messaggi lunghi o log misti. |
Un dettaglio tecnico che vale oro: Serial.println() aggiunge automaticamente il fine riga, quindi evita di dover gestire manualmente il CRLF. In pratica, ti garantisce una misura per riga e rende molto più prevedibile il comportamento del grafico. Da qui si capisce anche perché certi sketch funzionano subito e altri no: basta un formato incoerente per sporcare tutta la visualizzazione.
Quando il formato è corretto, il passo successivo è evitare gli errori classici che fanno sembrare il Plotter “rotto” anche se non lo è.
Gli errori che rovinano il grafico più spesso del previsto
Il primo errore è banale ma frequente: baud rate non allineato tra sketch e IDE. Se il programma invia a 115200 ma il Plotter ascolta a 9600, il risultato può essere confuso o inutilizzabile. Il secondo è mischiare testo libero e dati numerici nello stesso stream seriale. Una riga di debug ogni tanto può sembrare innocua, ma basta poco per interrompere la lettura corretta delle curve.
Un altro problema comune è la frequenza di campionamento. Se mandi dati troppo rapidamente, il grafico può diventare nervoso o perdere coerenza; se li mandi troppo lentamente, la risposta sembra in ritardo e non capisci bene cosa sta succedendo. Io, per i segnali di sensori lenti, parto spesso da 10-20 ms di intervallo e poi regolo in base al caso. Per segnali più dinamici, il ritmo va adattato, ma senza spingere inutilmente la seriale.
- Porta seriale occupata: se il Serial Monitor è aperto, chiudilo prima di usare il Plotter.
- Nessun fine riga: senza una terminazione coerente, il grafico perde struttura.
- Valori non numerici: il Plotter lavora bene con numeri, non con frasi.
- Scala sbilanciata: se una variabile è molto più grande delle altre, le curve piccole sembrano piatte.
- Sketch che parte troppo presto: su alcune schede conviene aspettare la connessione seriale.
Quando elimini questi errori, di solito il problema non è più lo strumento ma il segnale che stai cercando di osservare. Ed è lì che i casi d’uso reali diventano interessanti, perché il Plotter inizia a raccontarti qualcosa di utile.
I casi d’uso che considero davvero utili
Ci sono tre scenari che, per me, valgono più di mille dimostrazioni generiche. Sono semplici, ma mostrano bene perché il Plotter è utile: ti fa vedere la forma del dato e non solo il suo valore istantaneo.
Potenziometro e ingressi analogici
È il caso più immediato. Giri la manopola e vedi la curva salire o scendere. Sembra banale, ma è il test migliore per verificare cablaggio, rumore elettrico e range di lettura. Se la linea salta o ha gradini strani, il problema è spesso nel collegamento o nella stabilità dell’alimentazione.
Tensione della batteria
Qui il Plotter è molto comodo perché mostra il calo nel tempo o sotto carico. Se un motore, un sensore o un modulo wireless assorbe corrente in modo irregolare, la curva della batteria lo rende visibile subito. Non ti dice tutto, ma ti fa capire se stai entrando in una zona di rischio prima ancora che il sistema si resetti.
Leggi anche: LM393 con Arduino - come collegarlo e tarare la soglia
Audio, vibrazioni e segnali rapidi
Quando il dato cambia velocemente, il grafico aiuta a individuare picchi, soglie e rumore di fondo. È il motivo per cui in diversi esempi di Arduino si usa il Plotter per l’ampiezza audio: il comportamento dinamico diventa leggibile a colpo d’occhio. Se stai tarando una soglia o un filtro, questa vista è spesso più utile di una sequenza di numeri stampati a terminale.
In tutti e tre i casi la logica è la stessa: non guardo solo il valore, guardo la sua forma. E proprio questo porta alla domanda finale, cioè quando il Plotter basta davvero e quando è meglio usare altro.
Quando il Plotter basta e quando serve altro
Per debugging di sensori, filtri e soglie, il Plotter integrato nell’IDE è spesso più che sufficiente. Se però devo salvare dati, analizzarli dopo la prova o costruire grafici più complessi, allora comincio a sentire i suoi limiti. Qui entra in gioco il confronto con altri strumenti.
| Strumento | Lo uso quando | Limite principale |
|---|---|---|
| Serial Monitor | Mi servono messaggi, stati, errori o log testuali. | Non visualizza bene l’andamento temporale. |
| Serial Plotter | Voglio vedere curve, picchi e trend in tempo reale. | Non è pensato per archiviare o fare analisi avanzate. |
| Log esterni o software dedicati | Mi servono esportazione, confronto storico o grafici personalizzati. | Richiedono più configurazione e più disciplina nel formato dati. |
Se il tuo obiettivo è tarare un sensore o capire se un filtro software sta facendo il suo lavoro, il Plotter basta quasi sempre. Se invece devi tenere traccia di molte prove o lavorare con dataset lunghi, io passerei a un flusso di logging più strutturato. Non è un limite del tool: è semplicemente il suo ruolo.
Il flusso di lavoro che uso per tarare un sensore senza perdere tempo
Quando apro il Plotter su un progetto nuovo, seguo quasi sempre questa sequenza mentale: prima verifico un segnale grezzo, poi confronto grezzo e filtrato, infine controllo il comportamento in condizioni reali per almeno 30-60 secondi. Quel tempo è utile perché molti problemi emergono solo quando il sensore si stabilizza, cambia temperatura o viene toccato davvero.
Se vedo una curva troppo rumorosa, non mi fermo subito al software. Controllo alimentazione, massa comune, lunghezza dei cavi e qualità del campionamento. È il modo più rapido per capire se devo correggere il codice o il circuito. In molti casi, un piccolo aggiustamento sul formato dati o sulla frequenza di lettura vale più di una lunga sessione di tentativi casuali.
In pratica, il valore del Plotter sta qui: ti fa vedere subito se il problema è nel dato, nel sensore o nel modo in cui lo stai leggendo. Se imposti bene formato, velocità e campionamento, diventa uno strumento leggero ma molto efficace per qualsiasi progetto con microcontrollori e sensori.