Steuerung Lichtkontrolle

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 A0 ausgelesen. Ist eine Taschenlampe auf den LDR gerichtet, sinkt der abgegriffene Wert unter 150 und es kann eine Folgereaktion (Servo schalten) programmiert werden.

Im Beispielprogrammcode kann diese Folrgereaktion im seriellen Monitor kontrolliert werden.

 

///////////////////////////////////*DEFINITIONEN*///////////////////////////////////
/*LICHT-DEFINITIONEN*/
#define LICHTPIN A0 //Der Begriff LICHTPIN hat den Wert A0

///////////////////////////////////*SETUP*///////////////////////////////////
void setup(){
  Serial.begin(9600); //Startet die serielle Kommunikation

  /*LICHT*/
  //Die Lichtkontrolle braucht keine Befehle im setup-Teil
}

///////////////////////////////////*LOOP*///////////////////////////////////
void loop(){
  /*LICHT*/
  LICHTKontrolle();  //Führt ein Programm aus, welches prüft, ob der Lichtwert unterschritten wurde

}

///////////////////////////////////*WEITERE FUNKTIONEN*///////////////////////////////////
  /*MELDUNG*/
void Signal(){
   /*Hier kann ein Programm stehen, welches ausgeführt wird, wenn der Lichtwert unterschritten wurde. Dieses Programm gibt im seriellen Monitor (Werkzeuge) eine Textmeldung aus.*/
  delay(1000); 
  Serial.println("Viel Licht wurde erkannt");
  delay(1000);
}

  /*LICHT*/
void LICHTKontrolle(){
  if (analogRead(LICHTPIN) < 160){
    Signal(); //Wenn der Lichtwert unterschritten wurde, wird das Unterprogramm "Signal" ausgeführt
  }
  else{
    /*Hier kann ein Befehl stehen, der ausgeführt wird, wenn der Lichtwert nicht unterschritten ist*/
}
}