Dans ce guide, nous explorerons comment utiliser le CodeCell pour détecter la lumière blanche et ajuster automatiquement la luminosité d'une LED ou créer d'autres effets d'éclairage réactifs pour s'adapter aux conditions d'éclairage.
Dans son boîtier compact, CodeCell intègre un VCNL4040 capable de mesurer précisément les niveaux de lumière ambiante grâce à sa photodiode intégrée. Cela lui permet de détecter les variations de luminosité, permettant ainsi des ajustements automatiques pour les systèmes d'éclairage économes en énergie ou des interactions sensibles à l'environnement.
Le capteur embarqué offre une détection de lumière haute résolution sur une large plage dynamique et communique via I2C, qui est géré de manière transparente par notre bibliothèque CodeCell.
Le capteur VCNL4040 du CodeCell est capable de détecter à la fois la lumière ambiante et la lumière blanche, chacune servant à des fins distinctes :
Dans cet exemple, nous utilisons la détection de lumière blanche pour influencer directement la luminosité de la LED intégrée au CodeCell. Cette fonction est basée sur les niveaux de lumière blanche détectés, ce qui crée une réponse plus ciblée que la détection de la lumière ambiante générale. À mesure que la pièce s'assombrit, la LED s'atténue, offrant une transition fluide que vous pouvez ajuster et personnaliser pour vos propres projets d'éclairage.
Assurez-vous que votre CodeCell est correctement connecté et suivez les commentaires dans le code pour comprendre chaque étape.
#include <CodeCell.h>
CodeCell myCodeCell;
void setup() {
Serial.begin(115200); // Set Serial baud rate to 115200. Ensure Tools/USB_CDC_On_Boot is enabled if using Serial.
myCodeCell.Init(LIGHT); // Initializes light sensing.
}
void loop() {
delay(100); // Small delay - You can adjust it accordingly
// Read white light from the sensor and adjust brightness for 8-bit
uint16_t brightness = (myCodeCell.Light_WhiteRead()) >> 3;
Serial.println(brightness); // Print the brightness value to the serial monitor for debugging.
// Limit the sensor values to the LED's brightness range (1 to 254)
if (brightness == 0U) {
brightness = 1U; // Set a minimum brightness to avoid turning off the LED completely
} else if (brightness > 254U) {
luminosité = 254U; // Limitez la luminosité au niveau maximum de la LED
}
luminosité = 255U - luminosité ; // Inverser la luminosité pour que la LED diminue à mesure qu'elle devient plus lumineuse
myCodeCell.LED(0, 0, brightness); // Faites briller la LED RVB bleue intégrée avec la nouvelle luminosité ajustée
}
myCodeCell.LED()
vous permet de spécifier des valeurs RVB. Essayez différentes couleurs en fonction de la luminosité.Cet exemple n'est qu'un point de départ pour exploiter les capacités de détection de lumière de CodeCell . Plongez dans le code, personnalisez-le et consultez le dépôt GitHub de CodeCell pour plus d'exemples de code et de documentation technique !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2025 Microbots.