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 DHT22 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():
1 2 | 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.
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 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO SERIAL PLOTTER 1 Descripció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 que viene incluida en Arduino IDE. */ /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // preparamos el puerto serie a 115200 baudios Serial.begin(115200); } /** 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.
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 44 45 46 47 48 49 50 51 52 53 54 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO SERIAL PLOTTER 2 Descripción: Este programa lee un valor analógico en el pin A0 y lo convierte a temperatura para posteriormente enviarlo a través del puerto serie en un formato apto para ser graficado. Esta pensado para mostrar la funcionalidad de la herramienta Serial Plotter incluida en el Arduino IDE. */ // 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 a 115200 baudios Serial.begin(115200); } /** 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 nueva 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
- DS18B20
- LM35DZ
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.
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 44 45 46 47 48 49 50 51 52 53 54 | /** Geek Factory - "Dale vuelo a tus proyectos" Tienda de electrónica, Arduino, Raspberry Pi, IoT www.geekfactory.mx GEEK FACTORY INVIERTE TIEMPO Y RECURSOS EN DESARROLLAR ESTOS EJEMPLOS Y TUTORIALES. SI ENCUENTRAS ÚTIL ESTE CÓDIGO, CONSIDERA REALIZAR UNA COMPRA CON NOSOTROS. EJEMPLO SERIAL PLOTTER 3 Descripción: En este ejemplo generamos 3 señales senoidales de distinta amplitud y fase. Las enviamos para ser graficadas de forma simultanea en la ventana de la herramienta Serial Plotter. Los valores a graficar se envían separados por tabulaciones en una misma linea de texto. */ /** Función setup: se ejecuta una vez cuando encendemos el arduino */ void setup() { // preparamos el puerto serie a 115200 baudios Serial.begin(115200); } /** 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 caracter de espacio o tabulador entre cada valor Serial.print("\t"); // segundo valor a graficar Serial.print(y2); // imprimimos un caracter de espacio o tabulador entre cada valor Serial.print("\t"); // imprimimos el ultimo valor y avanzamos a la siguiente linea de texto // se usa la función println para imprimir también el fin de linea Serial.println(y3); // esperamos 100 milisengundos antes de enviar un nuevo punto en la gráfica 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.