Volver

Eco Serie con Arduino: Aprende Comunicación USART

Introducción

La comunicación serie es una de las habilidades más fundamentales en electrónica embebida. Ya sea que estés depurando un sensor, comunicándote con un módulo GPS o enviando datos a un PC, el humilde USART (Receptor/Transmisor Síncrono/Asíncrono Universal) es tu herramienta imprescindible. En este tutorial, construiremos un sencillo proyecto de Eco Serie usando un Arduino Uno en el simulador de Velxio. Cada carácter que escribas en el Monitor Serie se devuelve con su valor ASCII y un contador. Es el “¡Hola, mundo!” de la comunicación serie.

Diagrama del circuito del eco serie en el lienzo del simulador Velxio

Recorrido del Circuito

Este proyecto es notablemente simple: solo utiliza la propia placa Arduino Uno. No se necesitan componentes externos porque la comunicación serie se realiza a través del conversor USB-serie integrado en el Uno. En Velxio, el Monitor Serie está integrado en la barra de herramientas del editor, por lo que puedes interactuar con tu código inmediatamente.

Componentes

ComponenteCantidadNotas
Arduino Uno (wokwi-arduino-uno)1El cerebro de la operación

¡Eso es todo! Los pines TX (pin 1) y RX (pin 0) del Arduino Uno están conectados internamente a la interfaz USB, que Velxio emula perfectamente. No se requiere cableado.

Barra de herramientas del editor de Velxio con controles de compilación y ejecución

Recorrido del Código

Vamos a sumergirnos en el código. Abre el editor de Velxio y verás el siguiente sketch:

// Serial Echo — USART Protocol Test
// Open the Serial Monitor to send and receive data.
// Everything you type is echoed back with extra info.

void setup() {
  Serial.begin(9600);
  Serial.println("=============================");
  Serial.println("  Serial Echo Test (USART)");
  Serial.println("=============================");
  Serial.println("Type something and press Send.");
  Serial.println();

  // Print system info
  Serial.print("CPU Clock: ");
  Serial.print(F_CPU / 1000000);
  Serial.println(" MHz");
  Serial.print("Baud rate: 9600");
  Serial.println();
  Serial.println();
}

unsigned long charCount = 0;

void loop() {
  if (Serial.available() > 0) {
    char c = Serial.read();
    charCount++;

    Serial.print("[");
    Serial.print(charCount);
    Serial.print("] Received: '");
    Serial.print(c);
    Serial.print("' (ASCII ");
    Serial.print((int)c);
    Serial.println(")");
  }

  // Periodic heartbeat
  static unsigned long lastBeat = 0;
  if (millis() - lastBeat >= 5000) {
    lastBeat = millis();
    Serial.print("Uptime: ");
    Serial.print(millis() / 1000);
    Serial.print("s | Chars received: ");
    Serial.println(charCount);
  }
}

Código fuente del eco serie en el editor Monaco de Velxio

Cómo Funciona

  1. Configuración: Inicializamos la comunicación serie a 9600 baudios usando Serial.begin(9600). Luego imprimimos un banner e información del sistema: la velocidad del reloj de la CPU (F_CPU / 1000000 da MHz) y la velocidad en baudios.

  2. Variable global: unsigned long charCount = 0; lleva la cuenta de cuántos caracteres hemos recibido.

  3. Bucle:

    • if (Serial.available() > 0) comprueba si hay datos esperando en el búfer de recepción.
    • char c = Serial.read(); lee un carácter.
    • Incrementamos charCount e imprimimos un mensaje formateado: [cuenta] Recibido: 'c' (ASCII 99).
    • Cada 5 segundos, imprimimos un latido con el tiempo de actividad y el total de caracteres recibidos.

Conceptos Clave para Estudiantes

Errores Comunes y Consejos de Depuración

Extensiones Sugeridas

Una vez que domines el eco básico, prueba estas mejoras:

  1. Eco de líneas completas: En lugar de repetir cada carácter, acumula caracteres hasta el salto de línea, luego repite la línea completa.
  2. Analizador de comandos: Interpreta comandos especiales como “LED ON” para encender un LED (agrega un LED al circuito).
  3. Salida binaria: Imprime el carácter recibido en formato binario.
  4. Múltiples velocidades en baudios: Permite al usuario cambiar la velocidad en baudios mediante un comando.
  5. Registro en EEPROM virtual: Almacena los datos recibidos en la EEPROM simulada.

Conclusión

¡Acabas de construir tu primer proyecto de comunicación serie! El Eco Serie es una demostración simple pero poderosa de cómo los microcontroladores se comunican con el mundo exterior. Con Velxio, puedes experimentar sin ningún hardware: solo abre el simulador, escribe código y prueba al instante.

¿Listo para probarlo tú mismo? Abre el ejemplo en vivo en Velxio y empieza a escribir: Eco Serie en Velxio. ¡Feliz programación!


Compartir en:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artículos relacionados


Artículo anterior
Control de LED por Serie con Arduino: Envía Comandos para Parpadear
Artículo siguiente
Pantalla LCD 20x4 con Arduino: Hola Mundo en Velxio