Iniciación a Arduino [4/9]: Monitor Serie
Después de casi 8 meses desde que publicamos la tercera parte (Salidas digitales – LEDs [3/9]) del tutorial de Iniciación a Arduino, aprovechando las vacaciones, te traigo la cuarta entrega, en la que vamos a aprender a visualizar en el Monitor Serie los datos que recoge Arduino. Los materiales que vamos a usar en esta parte del tutorial son exactamente los mismos que los de Salidas digitales – LEDs [3/9].
Índice de contenidos
¿Qué es el Monitor Serie?
El Monitor Serie es una ventana separada de Arduino IDE. Su función es permitir que puedas enviar mensajes desde Arduino a tu ordenador y viceversa. Esta opción ayuda a controlar tu Arduino desde el teclado de tu ordenador, entre otras cosas.
Para abrir el monitor serie hacemos clic en el botón Monitor Serie, que está representado por el siguiente icono:
Que podemos encontrar en la esquina superior derecha:
Si hacemos clic en él, se abre una ventana en blanco como la de la siguiente imagen:
En esta ventana es donde aparecerán los datos que envíe nuestro Arduino.
Primera prueba con el Monitor Serie: «Hello World.»
Sabiendo esto, ya podemos empezar a programar nuestra placa para hacer uso de esta herramienta. Para ello, en la función setup() tenemos que escribir el siguiente comando para iniciar la consola serie:
Serial.begin(9600);
Este comando abre el puerto serie y fija la velocidad en baudios para la transmisión de datos en serie. Se define baudio como una unidad de medida, usada en telecomunicaciones, que representa el número de símbolos por segundo en un medio de transmisión ya sea analógico o digital. El valor típico de velocidad para comunicarse con el ordenador es 9600, aunque otras velocidades pueden ser soportadas.
En la función loop() escribimos el código necesario para indicar a nuestra placa qué debe mostrar por la consola serie. Para ello escribimos:
Serial.print(...);
o este otro comando:
Serial.println(...);
Ambos comandos sirven para mostrar por la consola en forma de texto los elementos que se hayan introducido en el lugar de los tres puntos. Este comando acepta parámetros de muchos tipos, como números de hasta 8 dígitos, números con dos decimales, cadenas de caracteres y caracteres sueltos. Para introducirle a estos comandos una cadena de caracteres como parámetro, debemos escribir la cadena entre comillas dobles (» «) y para introducir caracteres sueltos debemos escribir el carácter entre comillas simples (‘ ‘). Si escribimos dentro de nuestra función loop() los comandos:
Serial.print(78); /* en la consola vemos "78" */ Serial.print(1.23456); /* en la consola vemos "1.23" */ Serial.print('N'); /* en la consola vemos "N" */ Serial.print("Hello world.") /* en la consola vemos "Hello world." */
Como estos comandos están dentro de la función loop() se irá repitiendo sin parar mientras la placa esté encendida. Por tanto, mientras la placa esté conectada a nuestro ordenador a través del puerto serie, en nuestra consola serie se irá mostrando sin para el resultado de dichos comandos. Es ahí donde entra la diferencia entre el comando print() y el comando println(). Con el comando print() el resultado aparecerá concatenado en nuestra consola. Es decir, sin saltos de línea, como se puede ver en la siguiente imagen:
Esto se puede evitar colocando «\n» al final de la cadena de caracteres o haciendo uso del comando println().
Serial.print("Hello world.\n"); Serial.println("Hello world.");
Ambos comandos dan como resultado en la consola serie el reflejado en la siguiente imagen:
Segunda prueba con el Monitor Serie: Imprimiendo variables
Con el monitor serie también podemos ver qué valor tienen las variables. De esta forma podremos conocer cuáles son los datos que está recogiendo nuestra placa Arduino. Por ejemplo, con el siguiente código mostraremos en la consola serie una secuencia de números desde el 1 hasta el infinito (o hasta que apaguemos la placa).
int x = 0; /* Variable definida. */ void setup() { Serial.begin(9600); /* Iniciamos el monitor serie. */ } void loop() { x = x + 1; /* Incrementamos en 1 el valor de x. */ Serial.println(x); /* Mostramos en la consola el valor de x. */ }
Tras compilar y cargar el programa en la placa debemos ver en la consola serie una sucesión de números sin parar.
Tercera prueba con el Monitor Serie: Indicando el estado de un LED
Otro ejemplo sería que la consola serie nos indique sin un led que hemos conectado a nuestra placa está encendido o apagado en cada instante. Para ello podemos usar el circuito que montamos en Salidas digitales – LEDs [3/9] y modificar un poco el código del programa que escribimos, quedando el código de la siguiente forma:
void setup() { pinMode(13, OUTPUT); /* Configuramos el pin 13 como pin de salida. */ Serial.begin(9600); /* Iniciamos el monitor serie. */ } void loop() { digitalWrite(13, HIGH); /* Encendemos el LED. */ Serial.println("On"); /* Mostramos por la consola serie "On". */ delay(1000); /* Hacemos que la placa espere 1 seg. */ digitalWrite(13, LOW); /* Apagamos el LED. */ Serial.println("Off"); /* Mostramos por la consola serie "Off". */ delay(1000); /* Hacemos que la placa espere 1 seg. */ }
Y tras compilar y cargar el programa en la placa debemos observar cómo en la consola serie se va mostrando el estado del LED en cada instante. Veremos algo similar a lo que aparece en la siguiente imagen:
Igual que en los ejemplos anteriores la consola no paraba de mostrar el valor que habíamos programado (ya fuera el «Hello world.» en bucle o la sucesión de números desde el 1 hasta el infinito), en este ejemplo en la consola irá apareciendo secuencialmente el estado en que se encuentra el LED en cada momento, esperando 1 segundo entre un estado y otro.
¡Y nada más por hoy! Ya conocemos los conceptos básicos de la herramienta Monitor Serie de Arduino. En este enlace de GitHub podréis encontrar el código de los ejemplos usados en este tutorial. En la siguiente entrada del tutorial veremos una Introducción a las entradas digitales con el botón.
Como siempre, cualquier sugerencia o consulta podéis hacérmela llegar enviando un correo electrónico a sugerencias@manusoft.es o dejando un comentario en la entrada. ¡Muchas gracias por visitar ManuSoft.es!