En la lección anterior aprendimos a utilizar el monitor en serie para imprimir los valores de nuestras variables y mensajesde texto, ahora vamos aprender cómo interactuar con un programa introduciendo datos desde el monitor serial.
¿Cómo introducir datos?
Para introducir datos se utiliza la caja de texto del monitor serial. Esta caja se muestra cuando se da click en el ícono Monitor en serie. Observa la imagen para que identifiques la caja y los otros elementos del monitor serial para introducir datos.
Además de activar el monitor en serie, es necesario desde código verificar si se ha introducido un valor desde la caja de entrada y almacenarlo en una variable. Para verificar se utiliza la función Serial.available y para leer un carácter del buffer la función Serial.read.
Funciones Serial.available y Serial.read
Para leer valores desde el teclado, se debe codificar dentro de la función loop ( ) las instrucciones necesarias para verificar que existan datos en la caja de texto y que se almacenen en una variable.
La función Serial.available( ) se utiliza para vigilar si se han ingresado datos desde el monitor serial con el teclado. Técnicamente lo que hace es obtener el número de bytes (caracteres) de datos que llegaron desde el puerto serial y que se almacenaron en el buffer de recepción.
La forma de utilizar la instrucción Serial.available( ) es como parte de la condición de la la sentencia de control if para verificar si existe un dato:
if(Serial.available() > 0 )
Si existe un dato, entonces se utiliza la función Serial.read() para leer el caracter del buffer. El caracter que se lee se asigna a una variable tipo char para almacenarlo:
char dato = Serial.read();
Las siguientes instrucciones dependerán de lo que se requiere que el programa ejecute, forman parte de las instrucciones del if por lo que van dentro de las llaves. Observa el ejemplo de la Figura 1:

Manos a la obra

Ahora te toca a ti realizar el circuito y comprobar cómo se leen datos desde el monitor serial. Vamos a seguir utilizando el circuito electrónico de la práctica que realizaste en el apartado Construcción de un circuito electrónico en Tinkercad para programar el encendido y apagado del LED. Puedes modificar el programa original o realizar una copia al circuito y trabajar en la copia.
Abre la ventana de código en modo texto y comienza a codificar lo siguiente:
Declara una variable de tipo char con el nombre tecla:
char tecla;
En la función loop( ), después de la llave que abre, codifica la sentencia if con la función Serial.available como se muestra;
if(Serial.available() > 0 ){ // Verifica si hay datos en el buffer
Si se cumple la condición, entonces guardamos el caracter del buffer en la variable tecla:
tecla = Serial.read(); // Lee cada carácter uno por uno y se almacena en la variable
Para verificar el valor que se ha tecleado lo mandamos a imprimir en la pantalla del monitor serial como sigue:
Serial.print ("La tecla presionada fue: ");
Serial.println (tecla);
A continuación vamos a utilizar el dato que se introdujo para prender el led. Si el caracter es igual a 1, que el led se encienda, si es cualquier otro caracter, que el led se mantenga apagado. Las instrucciones para conseguir esta acción son las siguientes:
if(tecla == '1')
digitalWrite(7,HIGH);
else
digitalWrite(7,LOW);
Terminamos el programa cerrando el primer if del Serial.available con una llave y la función loop con otra llave.
Programa completo del circuito
A continuación te presentamos el programa completo, revisa que tu programa se parezca al que se muestra:
/*Tinkercad: herramienta de simulación de Arduino
* Práctica: Encender y apagar un led desde teclado
* Objetivo: Introducir datos con el monitor serial
* Fecha: febrero 2021
* Autor: Milagros Pacheco
*/
char tecla;
void setup()
{
pinMode(7, OUTPUT);
Serial.begin(9600);
}
void loop(){
if(Serial.available() > 0 ){ // Verifica si hay datos en el buffer
tecla = Serial.read(); // Lee cada carácter uno por uno y se almacena en una variable
Serial.print ("La tecla presionada fue: ");
Serial.println (tecla);
if(tecla == '1')
digitalWrite(7,HIGH);
else
digitalWrite(7,LOW);
} // fin if
}// fin loop
A continuación realiza lo siguiente:
- Da click en el botón Monitor en serie para activarlo.
- Inicia la simulación.
- Inserta el número 1 en la caja de texto y presiona el botón Env.
- ¿Qué le sucedió al LED? ¿Qué mensaje despliega el monitor?
- Ahora inserta cualquier valor.
- ¿Qué paso con el LED? ¿Cuál es el mensaje ahora?
- Sigue probando el programa con el Monitor serial.
- Termina la prueba desactivando el botón Iniciar simulación.

Autoevaluación

Para aprender más
How to do Well. (s/f ). Monitor en serie Arduino en Tinkercad: 7 pasos. https://es.howtodowell.com/73749-Arduino-Serial-Monitor-in-Tinkercad-46