En este tutorial te mostramos una forma en la que puedes visualizar de forma gráfica en la computadora los valores de interés de tu programa. Esto puede ser útil para graficar el valor de un sensor o cualquier otra variable y evaluar su evolución en el tiempo.
Un ejemplo de aplicación de este tutorial es conectar un sensor DHT11 o DHT11 y visualizar en tiempo real de forma gráfica los valores de temperatura y humedad. También podría servirnos para visualizar voltajes o corrientes y crear una especie de osciloscopio bastante sencillo.
Este tutorial se basa en la herramienta Serial Plotter que viene incluida en el Arduino IDE. Aunque no es una herramienta sofisticada de visualización, puede ser útil cuando estemos probando sensores, depurando programas y evaluando nuevo hardware.
¿Ya conocías esta funcionalidad? Te invitamos a seguir leyendo.
¿Donde encuentro Serial Plotter?
La herramienta ya viene incluida en el Arduino IDE. Para acceder a ella solamente debemos hacer clic en Herramientas > Serial Plotter tal como se muestra a continuación.

Si no puedes encontrar la herramienta, quizá debas probar a actualizar la versión de tu IDE. Puedes descargar el mas nuevo desde la siguiente dirección:
https://www.arduino.cc/en/Main/Software_
¿Cómo enviar valores a la computadora?
El Arduino enviará los valores a la computadora mediante el puerto serial, es decir, a través de el mismo cable que usamos para descargar los programas.
En el programa de Arduino no será necesario instalar ninguna librería ni realizar configuraciones adicionales. De hecho la programación será bastante similar a lo que hacemos al enviar datos al monitor serial. Tan solo debemos imprimir el valor que deseamos hacia el puerto serie como siempre lo hacemos con Serial.println():
Serial.print(variable1); Serial.println(variable2); |
A continuación veremos algunos ejemplos y su resultado en la ventana de Serial Plotter.
Graficar el valor leído desde un potenciómetro
Este sencillo programa muestra el valor de un potenciómetro en el Serial Plotter.
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura
a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta
Serial Plotter incluida en el IDE de Arduino.
*/
/**
Función setup: se ejecuta una vez cuando encendemos el arduino
*/
void setup() {
// iniciamos el puerto serie e indicamos la velocidad de la comunicación
Serial.begin(9600);
}
/**
Función loop: se ejecuta continuamente mientras el arduino permanece encendido
*/
void loop() {
// leemos el valor de un pin analógico (A0) y lo guardamos en una variable
int y1 = analogRead(A0);
// imprimimos el valor leido al puerto serie
Serial.println(y1);
// esperamos antes de tomar una nueva lectura.
delay(100);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
/** Geek Factory – “Dale vuelo a tus proyectos” www.geekfactory.mx
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta Serial Plotter incluida en el IDE de Arduino. */
/** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // iniciamos el puerto serie e indicamos la velocidad de la comunicación Serial.begin(9600); }
/** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { // leemos el valor de un pin analógico (A0) y lo guardamos en una variable int y1 = analogRead(A0);
// imprimimos el valor leido al puerto serie Serial.println(y1);
// esperamos antes de tomar una nueva lectura. delay(100); } |
Graficar valor de un sensor de temperatura
Este programa envía por el puerto serie la lectura de un sensor de temperatura en formato apto para mostrarse en Serial Plotter.
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura
a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta
Serial Plotter incluida en el IDE de Arduino.
*/
// Variable para guardar el numero de pin donde conectaremos el sensor LM35DZ
const int pinsensor = A0;
// Declaracion de variables globales
float temperatura;
/**
Función setup: se ejecuta una vez cuando encendemos el arduino
*/
void setup() {
// Utilizamos la referencia interna de voltaje del convertidor A/D
// esta función configura la referencia del ADC ya sea unterna o externa
analogReference(INTERNAL);
// Preparamos el puerto serie
Serial.begin(9600);
}
/**
Función loop: se ejecuta continuamente mientras el arduino permanece encendido
*/
void loop() {
// variable local para el valor del ADC que va en un rango de 0 a 1023
int valadc = analogRead(pinsensor);
// Calculamos la temperatura con la fórmula siguiente
temperatura = (1.1 * valadc * 100.0) / 1024.0;
// Enviamos a Serial Plotter
Serial.println(temperatura);
// Esperamos antes de realizar una medición
delay(1000);
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
/** Geek Factory – “Dale vuelo a tus proyectos” www.geekfactory.mx
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta Serial Plotter incluida en el IDE de Arduino. */
// Variable para guardar el numero de pin donde conectaremos el sensor LM35DZ const int pinsensor = A0;
// Declaracion de variables globales float temperatura;
/** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // Utilizamos la referencia interna de voltaje del convertidor A/D // esta función configura la referencia del ADC ya sea unterna o externa analogReference(INTERNAL);
// Preparamos el puerto serie Serial.begin(9600); }
/** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { // variable local para el valor del ADC que va en un rango de 0 a 1023 int valadc = analogRead(pinsensor);
// Calculamos la temperatura con la fórmula siguiente temperatura = (1.1 * valadc * 100.0) / 1024.0;
// Enviamos a Serial Plotter Serial.println(temperatura);
// Esperamos antes de realizar una medición delay(1000); } |
Si deseas más detalles sobre la conexión de sensores de temperatura con Arduino te recomendamos revisar los siguientes tutoriales:
- DTH11 con Arduino
- DS18B20 con Arduino
- LM35DZ con Arduino
Realizar varios trazos en la misma gráfica
También es posible graficar datos de diferentes sensores o mostrar distintas variables de forma simultanea en la misma gráfica. En el siguiente programa, mostramos como realizar 3 trazos en la misma pantalla de Serial Plotter.
Para enviar 3 variables al mismo tiempo solo debemos enviar sus valores separados por espacios o tabulaciones en una misma linea de texto.
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura
a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta
Serial Plotter incluida en el IDE de Arduino.
*/
/**
Función setup: se ejecuta una vez cuando encendemos el arduino
*/
void setup() {
// iniciamos el puerto serie e indicamos la velocidad de la comunicación
Serial.begin(9600);
}
/**
Función loop: se ejecuta continuamente mientras el arduino permanece encendido
*/
void loop() {
for (int i = 0; i < 360; i += 5) {
// generar 3 señales senoidales con distinta amplitud y fase
float y1 = 1 * sin(i * M_PI / 180);
float y2 = 2 * sin((i + 90) * M_PI / 180);
float y3 = 4 * sin((i + 180) * M_PI / 180);
// primer valor a graficar
Serial.print(y1);
// imprimimos un valor de espacio o tabulador entre cada valor
Serial.print("t");
// segundo valor a graficar
Serial.print(y2);
// tercer valor a graficar
Serial.print("t");
// imprimimos
Serial.println(y3);
delay(100);
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
/** Geek Factory – “Dale vuelo a tus proyectos” www.geekfactory.mx
Descipción: Este programa lee un valor analógico en el pin A0 y envia la lectura a través del puerto serie. Esta pensado para mostrar la funcionalidad de la herramienta Serial Plotter incluida en el IDE de Arduino. */
/** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // iniciamos el puerto serie e indicamos la velocidad de la comunicación Serial.begin(9600); }
/** Función loop: se ejecuta continuamente mientras el arduino permanece encendido */ void loop() { for (int i = 0; i < 360; i += 5) { // generar 3 señales senoidales con distinta amplitud y fase float y1 = 1 * sin(i * M_PI / 180); float y2 = 2 * sin((i + 90) * M_PI / 180); float y3 = 4 * sin((i + 180) * M_PI / 180);
// primer valor a graficar Serial.print(y1); // imprimimos un valor de espacio o tabulador entre cada valor Serial.print(“t”); // segundo valor a graficar Serial.print(y2); // tercer valor a graficar Serial.print(“t”); // imprimimos Serial.println(y3);
delay(100); } } |
El resultado de ejecutar este programa en Serial Plotter debe ser el siguiente:

Conclusión
En este tutorial conocimos una característica en el IDE de Arduino que nos permitirá graficar el valor de un sensor o variable dentro de nuestro programa con muy poco esfuerzo. Aunque no ofrece muchas opciones de personalización, el Serial Plotter compensa sus carencias con su facilidad de uso.
Una de las ventajas de Serial Plotter es que no requiere librerías adicionales que deban ser instaladas para compilar el programa, por lo que prácticamente no utilizará recursos adicionales.