En ocasiones tenemos mediciones de sensores que necesitamos, o simplemente queremos analizar en el tiempo, ver comportamiento, a veces contrastar señales o ver su trabajo en conjunto. Con Arduino es posible a través del IDE, específicamente con el Serial Plotter, que permite graficar valores recibidos por el puerto serie en tiempo real. Cabe mencionar que es una herramienta sencilla y fácil de usar, siendo esto último lo destacable, ya que nos permite monitorear valores de una variable o hacer test rápidos sin emplear un gran esfuerzo.
El Serial Plotter está en el menú Herramientas, justo debajo del Monitor Serie, también podemos ingresar con el conjunto de teclas ctrl+mayus+L. Para comenzar a usarlo necesitamos tener alguna tarjeta conectada.

Entonces, conectamos nuestra tarjeta, usaremos un Arduino Uno conectado por USB (puede usarse cualquier modelo disponible). Si no lo recuerdan, una vez conectado seleccionamos la tarjeta en “Herramientas” – “Placa” y seleccionamos el puerto ocupado “Herramientas” – “Puerto”, en nuestro caso COM4, reconocido automáticamente.


Veremos cómo se comporta la gráfica. Para ello usaremos un simple código de lectura digital, donde leeremos el estado de una entrada con un pulsador y lo escribiremos por serial. Para este caso se usará una entrada como Pull-up, (declarada como pull up en sketch con INPUT_PULLUP) y los pulsos serán gnd. Con ello los valores por defecto serán 1 y al presionar el pulsador serán 0. Debe iniciarse siempre la comunicación serial en el Void setup y respetar la velocidad en baudios declarada, en ejemplo 9600.
El ejemplo, como se comento es sencillo, solo leeremos una entrada digital y la graficaremos. El delay evitará el “efecto rebote” del pulsador y nos dará una progresión de tiempo más estable.
int pulsador = 2; //etiqueta para DI2
int estado; //etiqueta para registro
void setup() {
pinMode(pulsador, INPUT_PULLUP); //pin 2 como entrada pull up
Serial.begin(9600); //iniciación de comunicación serial a 9600 baudios
}
void loop() {
estado=digitalRead(pulsador); //guardar estado de DI2 en “estado”
Serial.println(estado); //escritura serial
delay(250); //delay para evitar lecturas erróneas
}
Abrimos el Serial Plotter y la gráfica obtenida es la siguiente, donde el eje “x” corresponde a unidades de tiempo y el eje “y” a los valores leídos, funcionando de la misma forma con una señal analógica de 0 a 1023 o escalada, solo teniendo cuidado de escribir por serial el valor que queremos graficar. El comando Serial.println (estado) es el que nos permite enviar datos por comunicación serial y para usarlos en herramientas como el plotter.

Ahora bien, que pasa si existe más de una señal a graficar. ¿Es posible?… ¡claro que sí! Lo cierto es que se realiza de la misma forma con una pequeña diferencia, esta es que println es para la última variable a graficar. En el caso anterior, como solo existía una, debe ser usada para su funcionamiento.
Lo que se hará es agregar una medición analógica, un potenciómetro conectado a la entrada analógica A0 del Arduino y se modificara el valor leído entre 0 y 30 para no perder de vista la señal del pulsador que cambia entre 0 y 1. Para ello al programa se agregara una variable para almacenar la lectura analógica y poder enviarla por comunicación serial. Cabe mencionar que las entradas analógicas no necesitamos declararlas como entradas, podemos utilizarla directamente en el loop.
int pulsador = 2; //etiqueta para DI2
int estado; //etiqueta para registro
int pot; //etiqueta para lectura analógica
void setup() {
pinMode(pulsador, INPUT_PULLUP); //pin 2 como entrada pull up
Serial.begin(9600); //iniciación de comunicación serial a 9600 baudios
}
void loop() {
estado=digitalRead(pulsador); //guardar estado de DI2 en “estado”
pot=analogRead(A0); //lectura analógica
Serial.print(estado); //primera variable a graficar
Serial.print(“,”); //separador para variables
Serial.println(pot); //escritura serial
delay(250); //delay para evitar lecturas erróneas
}
Como vemos, las variables a graficar, cuando hay más de una se escriben con Serial.print, a excepción de la última, seguido de un Serial.print de separación (“,”) tras cada una de ellas, para terminar con Serial.println para la última variable.
La estructura siempre se repite para las gráficas y se debe respetar esa forma, de lo contrario se abrirá la interface del Plotter sin mostrar resultado alguno.
La estructura para grafica de variables es:
Serial.print(variable1);
Serial.print(separador);
Serial.print(variable2);
Serial.print(separador);
…
…
Serial.println(ultima variable)
La línea azul corresponde al estado del pulsador antes descrito y la línea roja al potenciómetro incorporado como segunda variable.

Esta herramienta es útil cuando existe un control, cuando alguna variable depende de algún actuador y podemos ver su accionamiento y las consecuencias para nuestro sistema, también para comprender como funcionan los algoritmos de control en la regulación de sistemas o simplemente para monitorear el comportamiento de las variables de nuestro proyecto.
Excelente información, me gusto mucha esta opción.
Que unidades tiene el eje y?
Los sensores grafican el cambio de su resistencia, el voltaje o la corriente?
No me queda claro respecto a que varía la señal en el tiempo.
Lo más lógico sería que el eje y se midiera el cambio de la resistencia eléctrica, porque el voltaje siempre es de 5V y la corriente según el fabricante es de hasta 40 mA.
Gracias!!