Dans cette version, nous allons découvrir comment utiliser le CodeCell pour détecter la lumière blanche et ajuster automatiquement la luminosité des LED. Ce projet présente le capteur de lumière intégré du CodeCell , qui vous aide à créer des effets d'éclairage réactifs qui s'adaptent aux conditions d'éclairage changeantes.
Le CodeCell est doté d'un capteur VCNL4040 intégré qui peut mesurer à la fois les niveaux de lumière et la proximité jusqu'à 20 cm. Ce capteur utilise la communication I2C et communique avec l'ESP32 de la bibliothèque CodeCell , où le capteur est automatiquement initialisé pour optimiser sa résolution de détection. Cela simplifie la configuration, vous pouvez donc vous concentrer sur la construction de votre projet.
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 ce projet, nous utilisons la fonction de détection de lumière blanche pour influencer directement la luminosité des LED en fonction des niveaux de lumière blanche détectés, créant ainsi une réponse plus ciblée par rapport à la détection de lumière ambiante générale.
Dans cet exemple, le CodeCell mesure en continu la lumière blanche ambiante et ajuste la luminosité d'une LED intégrée en fonction du niveau de lumière détecté. À mesure que la pièce s'assombrit, la LED s'atténue, offrant une transition en douceur que vous pouvez modifier et personnaliser pour vos propres projets d'éclairage.
Vous trouverez ci-dessous un exemple de code pour vous aider à démarrer. 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); // Initialise la détection de lumière.
}
boucle vide() {
delay(100); // Petit délai - Vous pouvez l'ajuster en conséquence
// Lisez la lumière blanche du capteur et ajustez la luminosité pour 8 bits
uint16_t luminosité = (myCodeCell.Light_WhiteRead()) >> 3;
Serial.println(brightness); // Imprime la valeur de luminosité sur le moniteur série pour le débogage.
// Limiter les valeurs du capteur à la plage de luminosité de la LED (1 à 254)
si (luminosité == 0U) {
luminosité = 1U; // Définir une luminosité minimale pour éviter d'éteindre complètement la LED
} sinon si (luminosité > 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, luminosité); // 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 d'expérimenter différentes couleurs en fonction des niveaux de lumière.Ce projet n'est que le point de départ pour exploiter les capacités de détection de lumière du CodeCell . Plongez dans le code, faites-en votre propre et illuminez votre prochain projet !
Soyez le premier informé des nouveaux projets et bénéficiez d'offres intéressantes !
© 2024 Microbots.