Die Schaltung wird mit einem normalen Widerstand (R1 = 1k Ohm) und einem Photowiderstand (LDR = 50k Ohm) aufgebaut. Die Bauteile werden in Serie geschalten, wobei die +5V zuerst über R1 und dann über den LDR fliessen. In der Mitte der Bauteile wird die Spannung abgegriffen und an A1 ausgelesen. Wird es hell beim LDR, sinkt der abgegriffene Wert unter 1000 und es kann eine Folgereaktion (Töne am Piezo erzeugen) programmiert werden.
Auf diese Weise kann man sicherstellen, dass akustische Hinweise nur tagsüber (wenn es hell ist) erzeugt werden, damit man nicht im Schlaf gestört wird.
Im Beispielprogrammcode kann diese Folgereaktion im seriellen Monitor kontrolliert werden.
///////////////////////////////////*DEFINITIONEN*/////////////////////////////////// /*LICHT-DEFINITIONEN*/ #define LICHTPIN A1 //Der Begriff LICHTPIN hat den Wert A1 #define HELLIGKEITSPEGEL 1000 //Ist die helligkeit höher als der HELLIGKEITSPEGEL, ist es dunkel ///////////////////////////////////*SETUP*/////////////////////////////////// void setup(){ Serial.begin(9600); //Startet die serielle Kommunikation } ///////////////////////////////////*LOOP*/////////////////////////////////// void loop(){ /*LICHT*/ LICHTKontrolle(); //Führt ein Programm aus, welches prüft, ob der HELLIGKEITSPEGEL unterschritten wurde } ///////////////////////////////////*WEITERE FUNKTIONEN*/////////////////////////////////// /*LICHT*/ void LICHTKontrolle(){ int helligkeit = analogRead(LICHTPIN); //Die Helligkeit wird am Lichtpin ausgelesen Serial.println(helligkeit); //Gibt die momentan gemessene helligkeit am seriellen Monitor aus if (helligkeit < HELLIGKEITSPEGEL){ Hell(); //Wenn der HELLIGKEITSPEGEL unterschritten wurde, wird das Unterprogramm "Hell" ausgeführt } else{ /*Hier kann ein Befehl stehen, der ausgeführt wird, wenn der Lichtwert nicht unterschritten ist*/ } } void Hell(){ //Diese Funktion wird ausgeführt, wenn es genügend hell ist Serial.println("Es ist hell"); delay(1000); //1 Sekunde Pause }