In dieser Anleitung erfahren Sie, wie Sie mit der CodeCell weißes Licht erfassen und die Helligkeit einer LED automatisch anpassen oder andere reaktionsfähige Lichteffekte erzeugen, um sich an die Lichtverhältnisse anzupassen.
In seinem winzigen Gehäuse enthält CodeCell einen VCNL4040, der mithilfe seiner integrierten Fotodiode die Umgebungshelligkeit präzise messen kann. Dadurch erkennt er Helligkeitsänderungen und ermöglicht so automatische Anpassungen energiesparender Beleuchtungssysteme oder umgebungsabhängige Interaktionen.
Der integrierte Sensor bietet hochauflösende Lichterfassung über einen weiten Dynamikbereich und kommuniziert über I2C, das nahtlos von unserer CodeCell-Bibliothek verwaltet wird.
Der VCNL4040-Sensor auf der CodeCell kann sowohl Umgebungslicht als auch Weißlicht erfassen, wobei jeder Sensor unterschiedliche Zwecke erfüllt:
In diesem Beispiel nutzen wir die Weißlichterkennung, um die Helligkeit der integrierten LED der CodeCell direkt zu beeinflussen. Dies basiert auf den erkannten Weißlichtstärken und ermöglicht eine gezieltere Reaktion im Vergleich zur allgemeinen Umgebungslichterkennung. Bei zunehmender Dunkelheit im Raum dimmt die LED und sorgt so für einen sanften Übergang, den Sie für Ihre eigenen Beleuchtungsprojekte optimieren und anpassen können.
Stellen Sie sicher, dass Ihre CodeCell richtig verbunden ist, und folgen Sie den Kommentaren im Code, um jeden Schritt zu verstehen.
#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) {
Helligkeit = 254U; // Begrenzen Sie die Helligkeit auf das maximale Niveau der LED
}
Helligkeit = 255U - Helligkeit; // Invertiert die Helligkeit, sodass die LED dunkler wird, wenn sie heller wird
myCodeCell.LED(0, 0, Helligkeit); // Lasse die integrierte blaue RGB-LED mit der neu eingestellten Helligkeit leuchten
}
myCodeCell.LED()
können Sie RGB-Werte festlegen. Experimentieren Sie mit verschiedenen Farben je nach Lichtstärke.Dieses Beispiel ist nur der Ausgangspunkt für die Nutzung der Lichtsensorfunktionen von CodeCell . Tauchen Sie ein in den Code, passen Sie ihn an Ihren eigenen an und besuchen Sie das CodeCell GitHub Repository für weitere Codebeispiele und technische Dokumentation!
Erfahren Sie als Erster von neuen Projekten und sichern Sie sich spannende Angebote!
© 2025 Microbots.