Volver

Pico Serial Echo: prueba UART en RP2040 con Velxio

Introducción

¡Bienvenido a otro tutorial de Velxio! Hoy vamos a construir una prueba de Eco Serie para la Raspberry Pi Pico (RP2040). Este proyecto es perfecto para principiantes que quieran entender cómo funciona la comunicación serie en microcontroladores. Aprenderás a enviar y recibir datos a través de UART, añadir un indicador visual con un LED e implementar un temporizador de latido simple.

Diagrama del circuito de pico-serial-echo en el lienzo del simulador Velxio

Recorrido del Circuito

El circuito es encantadoramente simple. Solo necesitamos dos componentes:

Conexiones

  1. Conecta el ánodo (A) del LED amarillo al pin TX de la Pico. El pin TX se usa para la transmisión serie, por lo que cada vez que la Pico envía datos, el LED parpadeará.
  2. Conecta el cátodo (C) del LED a GND (cualquier pin de tierra de la Pico).

¡Eso es todo! El LED está conectado en serie con la línea TX, por lo que se enciende cuando la Pico transmite. Esto te da una confirmación visual de que los datos serie están fluyendo.

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 boceto:

// Raspberry Pi Pico — Serial Echo Test
// Echoes received characters and prints a heartbeat every 2 seconds

void setup() {
  Serial.begin(115200);
  delay(500);
  Serial.println("=== Pico Serial Echo ===");
  Serial.println("Type something and press Enter.");
  Serial.println();
}

unsigned long lastHeartbeat = 0;

void loop() {
  // Echo any incoming characters
  while (Serial.available()) {
    char c = Serial.read();
    Serial.print("Echo: ");
    Serial.println(c);
  }

  // Heartbeat every 2 seconds
  if (millis() - lastHeartbeat >= 2000) {
    lastHeartbeat = millis();
    Serial.print("[Heartbeat] Uptime: ");
    Serial.print(millis() / 1000);
    Serial.println("s");
  }
}

Cómo Funciona

La variable lastHeartbeat lleva la cuenta de la última vez que se imprimió el latido, usando millis() para una temporización no bloqueante.

Conceptos Clave

Comunicación Serie (UART)

UART (Receptor/Transmisor Asíncrono Universal) es un protocolo serie simple. El pin TX de la Pico envía datos y el pin RX los recibe. En este ejemplo, solo usamos TX para la salida, pero la función de eco también usa RX (a través del Monitor Serie).

Temporización No Bloqueante con millis()

En lugar de usar delay(), que pausa todo el programa, usamos millis() para comprobar el tiempo transcurrido. Esto permite que el bucle de eco se ejecute continuamente mientras sigue imprimiendo el latido a intervalos regulares.

LED como Indicador Visual

Al conectar el LED al pin TX, obtenemos una visualización en tiempo real de la actividad serie. Cada vez que la Pico envía un carácter, el LED parpadea brevemente.

Errores Comunes y Consejos de Depuración

Barra de herramientas del lienzo de Velxio sobre la ventana de simulación

Extensiones Sugeridas

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

  1. Añadir un LED RX: Conecta otro LED al pin RX para mostrar cuándo se reciben datos.
  2. Análisis de comandos: En lugar de solo hacer eco, interpreta comandos como “LED ON” o “LED OFF” para controlar un LED externo.
  3. Múltiples velocidades de baudios: Permite al usuario cambiar la velocidad de baudios mediante un comando serie.
  4. Registro en consola: Almacena los datos recibidos en un búfer e imprímelos cuando se solicite.

Selector de componentes de Velxio explorando piezas por categoría

Llamada a la Acción

¿Listo para probarlo tú mismo? Abre el ejemplo en vivo en Velxio y empieza a experimentar: Pico Serial Echo en Velxio. Puedes modificar el código, cambiar el color del LED o añadir nuevos componentes. ¡Feliz hacking!


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 LED por Serie con Pico: Construye tu Primera Interfaz de Comandos
Artículo siguiente
Parpadeo de un LED en Raspberry Pi Pico con el Simulador Velxio