🛠 Faire clignoter la LED embarquée via la radio
Objetivos
En la Pico 2 W, el LED integrado no está conectado al RP2350, sino al chip de radio CYW4343 (pin WL_GPIO0). Este tutorial te enseña a hacerlo parpadear mediante la API cyw43_arch del pico-sdk, a compilar con la opción PICO_BOARD=pico2_w y a flashear un archivo UF2 en modo BOOTSEL.
Material
- Placa Raspberry Pi Pico 2 W
- Cable micro-USB de datos (no solo de carga)
- PC con pico-sdk, CMake >= 3.13 y gcc-arm-none-eabi
Código completo
// main.c - pico-examples pico_w/wifi/blink/picow_blink.c
#include "pico/stdlib.h"
#include "pico/cyw43_arch.h"
int main {
stdio_init_all;
if (cyw43_arch_init) { // alimente et initialise le CYW43
printf("Wi-Fi init failed\n");
return -1;
}
while (true) {
// SURTOUT PAS gpio_put(25, ...) : GP25 est le CS SPI de la radio !
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 1);
sleep_ms(250);
cyw43_arch_gpio_put(CYW43_WL_GPIO_LED_PIN, 0);
sleep_ms(250);
}
}
Compilación: cmake -DPICO_BOARD=pico2_w .. y luego picobuild blink_led. Mantén presionado BOOTSEL, conecta el USB y copia blink_led.uf2 en la unidad RPI-RP2.
Verificación esperada
El LED integrado parpadea cada 250 ms desde el encendido. Sin cyw43_arch_init, no se enciende nada; si la inicialización de la radio falla, aparece el mensaje Wi-Fi init failed en la consola serie a 115200 baudios.
Errores frecuentes
- Usar gpio_put(25, ...) heredado del Pico clásico: GP25 es la línea CS SPI del CYW43, esto corrompe la radio y rompe el Wi-Fi.
- Olvidar -DPICO_BOARD=pico2_w: cyw43_arch no se compila, error en el enlazado.
- Llamar a cyw43_arch_gpio_put sin haber llamado previamente a cyw43_arch_init.
- Cable USB solo de carga o soltar BOOTSEL demasiado pronto: la unidad RPI-RP2 nunca aparece.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-interruption.pyPythonpwm-servo.pyPythonlecture-adc.pyPythonneopixel.pyPythonoled-i2c.pyPython