En esta lección vas a profundizar lo aprendido en la parte 2, sumando la posibilidad de controlar los LEDs desde tu computadora usando el monitor serie de Arduino. Es el vínculo ideal para mandar y recibir mensajes de texto entre la PC y tu placa, lo que facilita tanto el control manual como el proceso de debugging.
Resumen
El monitor serie funciona como un "cordón umbilical" entre la computadora y tu UNO. Te permite enviar y recibir mensajes de texto, algo que viene bárbaro para depurar errores y también para controlar la placa directamente desde el teclado. Por ejemplo, vas a poder mandar comandos para encender LEDs específicos. En esta lección vamos a usar exactamente las mismas piezas y un diseño de protoboard similar al de la Lección 18 de la Parte 2. Así que, si todavía no lo hiciste, fijate de completar esa lección ahora.
Pasos
Después de cargar el código (sketch) en tu UNO, hacé clic en el botón que está en el extremo derecho de la barra de herramientas del IDE de Arduino. Es el que aparece marcado en la imagen del manual.
Se va a abrir una ventana nueva: ese es el Monitor Serie. Los conceptos básicos sobre esta herramienta se explican en detalle en la Lección 4 de la parte 2.
Esta ventana es parte del software IDE de Arduino y su laburo es permitirte tanto enviar mensajes desde tu PC a la placa UNO (vía USB) como recibir los mensajes que la placa te mande.
El mensaje “Enter LED Number 0 to 7 or 'x' to clear” fue enviado por el Arduino. Nos está indicando qué comandos podemos usar: o bien mandás una 'x' (para apagar todos los LEDs) o el número del LED que quieras prender (donde 0 es el LED de abajo, 1 el que sigue, y así hasta el 7 para el de más arriba).
Probá escribiendo los siguientes comandos en la parte superior del Monitor Serie, al nivel del botón 'Send'. Dale a 'Send' después de escribir cada uno de estos caracteres: x 0 3 5.
Escribir 'x' no va a tener efecto si los LEDs ya están apagados, pero a medida que pongas cada número, el LED correspondiente se tendría que iluminar y vas a recibir un mensaje de confirmación de la placa UNO. El Monitor Serie se va a ver como en la imagen. Volvé a escribir 'x' y apretá 'send' para apagar todos los LEDs.
Código
Podés hacer clic en el link de texto azul para bajar el archivo del programa a tu equipo y después hacé doble clic para abrirlo una vez que termine la descarga. Ojo: antes de abrir el archivo, asegurate de tener instalado el entorno de desarrollo IDE de Arduino y todos los componentes necesarios, como el soporte para la placa y los drivers del UNO. Si tenés dudas con este proceso, podés consultar el capítulo "parte 1" del documento para una guía detallada.
📥 DESCARGAR the_serial_monitor.ino
void loop()
{
//Apagar todos los led
leds = 0;
updateShiftRegister();
delay(tDelay);
//Bucle for: i va de 0 a 7 aumentando gradualmente
for (int i = 0; i < 8; i++)
{
//prende el led según la transformación de i
bitSet(leds, i);
updateShiftRegister();
delay(tDelay);
}
}
Este código viene del tutorial anterior y no requiere intervención manual; el programa se ejecuta solo siguiendo una lógica fija: primero apaga todos los LEDs, después prende cada uno de 0 a 7 mediante un bucle for, y repite el proceso después de completar una vuelta.
Este tutorial introduce la forma de usar el control por puerto serie. En realidad, no hay diferencia en el principio básico de controlar las luces, sino que cambia la manera de interactuar con ellas.
void loop()
{
if (Serial.available())//vemos si el puerto serie recibe datos
{
char ch = Serial.read();//Leemos el dato y lo guardamos en "ch"
if (ch >= '0' && ch <= '7') //Si el dato es un carácter entre '0' y '7'
{
int led = ch - '0'; //Convertimos el carácter a número binario, ej: '0' -> 0
bitSet(leds, led);
updateShiftRegister();
Serial.print("Turned on LED ");
Serial.println(led);
}
if (ch == 'x')
{
leds = 0;
updateShiftRegister();
Serial.println("Cleared");
}
}
}
La diferencia principal es que la parte del bucle for se reemplaza por la lectura de datos del puerto serie. El bucle for era automático, pero acá, al usar el modo de lectura serie, el LED correspondiente se prende evaluando los datos recibidos. De esta forma, podés elegir manualmente qué luz querés prender.
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.