led_rgb.ino
Contre-intuitif mais documenté : la LED RVB du Nicla Sense ME passe par un pilote I2C IS31FL3194, pas par digitalWrite. La bibliothèque Nicla_System expose nicla::leds.setColor(couleur) — le motif voyant d’état officiel de la carte.
Matériel requis
Une Arduino Nicla Sense ME (nRF52832 dans un module ANNA-B112, BLE seul, pas de Wi-Fi) avec hub capteurs Bosch BHI260AP, magnétomètre BMM150, baromètre BMP390, capteur de gaz BME688, LED RVB sur pilote I2C et chargeur LiPo BQ25120. La carte seule, sur USB ou LiPo. La LED RVB est embarquée, visible à travers le boîtier.
Câblage
Aucun câblage. Le pilote I2C est interne ; ne pas câbler de LED sur les broches digitales sans buffer (les E/S sont annoncées faible courant par le manuel).
Fonctionnement
nicla::begin alimente le rail VDDIO_EXT et donne accès aux pilotes ; nicla::leds.begin initialise l’IS31FL3194 ; setColor empile les couleurs prédéfinies (rouge, vert, bleu, jaune, blanc, noir = extinction).
Exécution
Programmation via Arduino IDE (core ArduinoCore-mbed, target NICLA_SENSE_ME) ; bibliothèques Arduino_BHY2 (capteurs) et Nicla_System (LED, chargeur) ; USB via pont série SAMD11.
Variantes
Mapper un état (BLE connecté = bleu, batterie faible = rouge), clignoter en temporisant entre setColor, ou piloter la luminosité via les API registers du pilote.
led_rgb.ino
// Nicla Sense ME : la LED RVB n'est PAS sur des broches GPIO.
// Elle est pilotée par un circuit IS31FL3194 (I2C) exposé par la
// bibliothèque Nicla_System sous nicla::leds.
#include "Nicla_System.h"
void setup() {
Serial.begin(115200);
nicla::begin(); // alimente VDDIO_EXT, rend les pilotes accessibles
nicla::leds.begin(); // initialise le pilote LED IS31FL3194
}
void loop() {
nicla::leds.setColor(green); delay(500); // « alive »
nicla::leds.setColor(blue); delay(500);
nicla::leds.setColor(red); delay(500);
nicla::leds.setColor(yellow); delay(500);
nicla::leds.setColor(white); delay(500);
nicla::leds.setColor(black); delay(500); // éteinte
}