🛠 Faire clignoter la LED RGB du Nicla Vision
Objetivos
Familiarizarse con la Arduino Nicla Vision mediante un primer sketch: encender y apagar los tres LED de color integrados, y comprender por qué el ejemplo clásico «Blink» debe adaptarse a esta placa.
Material
- Arduino Nicla Vision (SKU ABX00051, 22,86 × 22,86 mm)
- Cable micro-USB de datos (algunos cables solo permiten la carga)
- IDE de Arduino con el core «Arduino Mbed OS Nicla Boards» (ArduinoCore-mbed) instalado a través del Gestor de placas
Código completo
// Nicla Vision : LEDR=23, LEDG=24 (=LED_BUILTIN), LEDB=25
// >
const int RGB_PINS[3] = {LEDR, LEDG, LEDB};
void setup {
for (int p : RGB_PINS) {
pinMode(p, OUTPUT);
digitalWrite(p, HIGH); // LED eteintes
}
}
void loop {
digitalWrite(LEDG, LOW); delay(150); // vert ON
digitalWrite(LEDG, HIGH); delay(150);
digitalWrite(LEDR, LOW); delay(150); // rouge ON
digitalWrite(LEDR, HIGH); delay(150);
digitalWrite(LEDB, LOW); delay(400); // bleu ON
digitalWrite(LEDB, HIGH); delay(400);
}
Verificación esperada
El LED verde, luego el rojo y después el azul se encienden alternativamente en la secuencia. El puerto USB de la placa es un CDC USB (VID 0x2341 / PID 0x025F): si el sketch compila y se carga, la cadena de herramientas es correcta. El core ejecuta el sketch en el Cortex-M7 a 480 MHz; el segundo núcleo (M4) no es necesario en este caso.
Errores frecuentes
- Incluir la biblioteca Nicla_System: su cabecera RGBled.h contiene un
#define Mode 1que entra en conflicto con el enumModede InterfaceCAN.h de Mbed — el sketch no compila (bug abierto arduino/ArduinoCore-mbed#615 desde enero de 2023). De ahí el uso directo de los pines LEDR/LEDG/LEDB mencionados anteriormente. - Olvidar el modo DFU: el bootloader original es MCUboot; para forzar el reflujo, presione dos veces el botón de reset o abra el puerto serie a 1200 baudios, y luego realice el flash USB DFU.
- Cable de carga únicamente: no aparece ningún puerto COM; pruebe con otro cable.
- Invertir HIGH/LOW: si los LED permanecen encendidos en lugar de parpadear, el nivel activo es el inverso al supuesto — invierta las instrucciones digitalWrite.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
led_rgb.inoArduinoimu_lsm6dsox.inoArduinotof_distance.inoArduinomicro_pdm.inoArduinocamera_capture.inoArduinowifi_scan.inoArduino