🛠 Faire clignoter la LED RGB du Nicla Vision
Objectifs
Prendre en main l'Arduino Nicla Vision avec un premier sketch : allumer et éteindre les trois LED couleur embarquées, et comprendre pourquoi l'exemple « Blink » classique doit être adapté à cette carte.
Matériel
- Arduino Nicla Vision (SKU ABX00051, 22,86 × 22,86 mm)
- Câble micro-USB de données (certains câbles ne passent que la charge)
- IDE Arduino avec le core « Arduino Mbed OS Nicla Boards » (ArduinoCore-mbed) installé via le Gestionnaire de cartes
Code complet
// 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);
}
Vérification attendue
La LED verte, puis la rouge, puis la bleue s'allument tour à tour dans le séquence. Le port USB du board est un CDC USB (VID 0x2341 / PID 0x025F) : si le sketch compile et se téléverse, la chaîne outillage est correcte. Le core fait tourner le sketch sur le Cortex-M7 à 480 MHz ; le second cœur (M4) n'est pas nécessaire ici.
Erreurs fréquentes
- Inclure la bibliothèque Nicla_System : son en-tête RGBled.h contient un
#define Mode 1qui entre en collision avec l'enumModede InterfaceCAN.h de Mbed — le sketch ne compile pas (bug ouvert arduino/ArduinoCore-mbed#615 depuis janvier 2023). D'où l'usage direct des broches LEDR/LEDG/LEDB ci-dessus. - Oublier le mode DFU : le bootloader d'origine est MCUboot ; pour forcer le reflash, double appui sur reset ou ouverture du port série à 1200 bauds, puis flash USB DFU.
- Câble de charge seul : aucun port COM n'apparaît ; tester un autre câble.
- Inverser HIGH/LOW : si les LED restent allumées au lieu de clignoter, le niveau actif est l'inverse de l'hypothèse — inverser les digitalWrite.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
led_rgb.inoArduinoimu_lsm6dsox.inoArduinotof_distance.inoArduinomicro_pdm.inoArduinocamera_capture.inoArduinowifi_scan.inoArduino