Arduino.cl – Compra tu Arduino en Línea

Como usar el Serial Plotter en Arduino IDE

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.

Como usar el Serial Plotter en Arduino IDE 3

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Te informaremos cuando el producto esté en stock nuevamente. Por favor, deje su dirección de correo electrónico válida.

No fields found, please go to settings & save/reset fields