Introducción
¡Bienvenido a tu primer proyecto controlado por serie en la Raspberry Pi Pico! En este tutorial, construiremos un circuito sencillo que te permite encender y apagar un LED escribiendo comandos en el monitor serie. Aprenderás los fundamentos de la comunicación serie, la salida digital y cómo usar el simulador de Velxio para probar tu código sin necesidad de hardware.
Este proyecto es perfecto para principiantes que quieran entender cómo los microcontroladores se comunican con un ordenador. Al finalizar, podrás ampliar el concepto para controlar múltiples LEDs, leer sensores o incluso construir un sistema de menú simple.
Recorrido del Circuito
Veamos el circuito que construiremos. Abre el ejemplo en Velxio y verás los siguientes componentes:

- Raspberry Pi Pico (nano-rp2040): El cerebro de la operación. Usaremos el pin D2 como pin de control.
- LED (led-status): Un LED verde que encenderemos y apagaremos. El ánodo (A) se conecta a la Pico y el cátodo (C) a una resistencia limitadora de corriente.
- Resistencia (r1): Una resistencia de 220Ω para limitar la corriente a través del LED y evitar daños.
Detalles del Cableado
- Desde Pico D2 al Ánodo del LED: Un cable verde conecta el pin D2 de la Pico al ánodo (A) del LED. Esta es la señal de control.
- Desde el Cátodo del LED a la Resistencia: Un cable gris conecta el cátodo (C) del LED a un extremo de la resistencia (pin 1).
- Desde la Resistencia a GND de la Pico: Un cable negro conecta el otro extremo de la resistencia (pin 2) a tierra (GND.1) de la Pico.
¡Eso es todo! El circuito es simple pero efectivo. La resistencia es esencial para evitar quemar el LED. Con una resistencia de 220Ω y una tensión directa típica del LED de unos 2V, la corriente será aproximadamente (3.3V - 2V) / 220Ω ≈ 6mA, lo cual es seguro.
Recorrido del Código
Ahora vamos a sumergirnos en el código. Abre el editor en Velxio y verás el siguiente sketch de Arduino:
// Raspberry Pi Pico — Serial LED Control
// Send '1' to turn LED ON, '0' to turn OFF, '?' for status
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
delay(500);
Serial.println("=== Pico LED Control ===");
Serial.println("Commands: 1=ON 0=OFF ?=status");
}
void loop() {
if (Serial.available()) {
char cmd = Serial.read();
switch (cmd) {
case '1':
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("LED: ON");
break;
case '0':
digitalWrite(LED_BUILTIN, LOW);
Serial.println("LED: OFF");
break;
case '?':
Serial.print("LED: ");
Serial.println(digitalRead(LED_BUILTIN) ? "ON" : "OFF");
break;
default:
if (cmd >= ' ') {
Serial.print("Unknown command: ");
Serial.println(cmd);
}
break;
}
}
}
Cómo Funciona
setup(): Configuramos el pin del LED incorporado como salida, iniciamos la comunicación serie a 115200 baudios, esperamos 500ms para que la conexión serie se estabilice y luego imprimimos un mensaje de bienvenida e instrucciones.loop(): Comprobamos si hay un carácter disponible en el búfer serie. Si es así, lo leemos y usamos una sentenciaswitchpara manejar tres comandos:'1': Enciende el LED (HIGH) e imprime una confirmación.'0': Apaga el LED (LOW) e imprime una confirmación.'?': Lee el estado actual del pin del LED e imprime “ON” u “OFF”.- Cualquier otro carácter imprimible (ASCII >= 32) imprime un mensaje de “Comando desconocido”. Los caracteres no imprimibles se ignoran.
Observa que usamos LED_BUILTIN, que es una constante predefinida para el LED integrado de la Pico (generalmente en el pin 25). En nuestro circuito, hemos conectado un LED externo al pin D2, pero el código sigue usando el LED integrado. Si quieres controlar el LED externo, cambia LED_BUILTIN por 2 (o define una constante). Para este ejemplo, el LED integrado funciona perfectamente.
Conceptos Clave
- Comunicación Serie: La Pico se comunica con tu ordenador a través del USB serie.
Serial.begin(115200)establece la velocidad de baudios; asegúrate de que tu monitor serie coincida con esta velocidad. - Salida Digital:
pinMode(pin, OUTPUT)ydigitalWrite(pin, HIGH/LOW)son los fundamentos para controlar pines. - Sentencia Switch: Una forma limpia de manejar múltiples comandos. Es más eficiente que una cadena de sentencias
if-else. - Validación de Entrada: El código ignora los caracteres no imprimibles y advierte sobre comandos desconocidos. Esto es una buena práctica para programas robustos.
Errores Comunes y Consejos de Depuración
- Velocidad de Baudios del Monitor Serie: Si ves caracteres extraños, la velocidad de baudios de tu monitor serie no coincide con 115200. En Velxio, el monitor serie está integrado y usa automáticamente la velocidad correcta.
- El LED No Se Enciende: Verifica que el LED esté orientado correctamente (ánodo a D2, cátodo a la resistencia). También comprueba el valor de la resistencia: si es demasiado alta, el LED será tenue; si es demasiado baja, podría quemarse.
- Los Comandos No Funcionan: Asegúrate de enviar exactamente ‘1’, ‘0’ o ’?’ (sin comillas). El código lee un solo carácter, por lo que enviar “1\n” funcionará porque el ‘1’ se lee primero y el salto de línea se ignora (ya que no es imprimible).
- Usando el Simulador: La barra de herramientas de Velxio te permite compilar y ejecutar tu código.
Haz clic en el botón “Run” para iniciar la simulación. La barra de herramientas del lienzo
te ofrece controles como pausa y reinicio. Si necesitas añadir componentes, usa el selector de componentes
.
Extensiones Sugeridas
Una vez que tengas el proyecto básico funcionando, prueba estas mejoras:
- Controlar un LED Externo: Cambia
LED_BUILTINpor2y conecta un LED externo al pin D2 como se muestra en el diagrama del circuito. - Añadir Más LEDs: Usa múltiples pines y comandos como ‘r’ para rojo, ‘g’ para verde, ‘b’ para azul.
- Regulación por PWM: Usa
analogWrite()para establecer niveles de brillo. Envía valores como ‘0’ a ‘9’ para brillo del 0% al 100%. - Comunicación Bidireccional: Haz que la Pico envíe datos de sensores (por ejemplo, temperatura) cuando envíes un comando como ‘t’.
- Sistema de Menú: Imprime un menú de opciones y usa un bucle para esperar una entrada válida.
Llamada a la Acción
¿Listo para probarlo tú mismo? Abre el ejemplo en vivo en Velxio y empieza a experimentar: Control LED por Serie con Pico en Velxio. Sin descargas, sin configuración, solo tu navegador y tu curiosidad. ¡Feliz hacking!