AEQ-WEB

Ardunio Twilight Sensor Switch with LDR Photo Resistor
Arduino
09.12.2018

Arduino Dämmerungsschalter


In den Wintermonaten, wo es sehr früh dunkel wird, spielen Dämmerungssensoren eine größere Rolle. Sie steuern das automatische Licht beim Auto, Straßenlaternen, Lichterketten in der Weihnachtszeit oder auch die Beleuchtung im Garten. Die einfachen Dämmerungsschalter arbeiten mit einem einfachen Fotowiderstand. Dieser ändert je nach Helligkeit den Widerstand. In unserem Aufbau funktioniert dieser Sensor technisch gesehen gleich wie ein Potentiometer. Über das Arduino Board kann in der Software ein bestimmter Punkt definiert werden, ab dem das Board einen digitalen Ausgang einschalten soll. Diese Lösung ist sicherlich nicht die effizienteste, da ein Dämmerungsschalter mit einigen wenigen Bauteilen auch ohne Mikrocontroller gebaut werden kann. Für einen Anfänger ist dieser Weg jedoch sicherlich der einfachste für ein derartiges Projekt.


Arduino Twilight LDR Sensor Wiring

Elektrischer Aufbau

Der Fotowiderstand wird auf der einen Seite mit 5 Volt versorgt und in Serie mit einem 10K Ohm widerstand verbunden. Dieser Widerstand ist wiederum mit der Masse verbunden. In der Mitte zwischen diesem Bauteilen, wird der analoge Eingang (A0) vom Arduino Board verbunden. Je nach Helligkeit hat der Fotowiderstand einen anderen Wert, der am Arduino Board als eine Spannung zwischen 0 und 5 Volt erkannt wird. In der Software steht dieser Wert in 1024 Schritten zur Verfügung. Am analogen Ausgang (D2) wird die LED angeschlossen, die in Serie mit einem 220 Ohm Widerstand geschaltet ist.


Die Software

Die Software liest den analogen Spannungswert ein. Unser Codebeispiel wandelt den wert von 0-1023 in 0-100 Prozent um. Man kann dadurch die gemessene Helligkeit auf einer Skala von 0 bis 100 Prozent sehen. Dies hat den Vorteil, dass man den Schwellwert leichter definieren kann. Bei einer Helligkeit von weniger als 70 Prozent, wird der digitale Ausgang eingeschaltet. Darüber wird der digitale Ausgang ausgeschaltet. Zusätzlich wird der aktuelle Status im Serial Monitor ausgegeben.


Arduino Code:
//More Information at: https://www.aeq-web.com
int ldrPin = A0; //Define analog input pin
int ledPin = 2; //Define LED pin
int switchpoint = 70; //Turn ouptut under 70% on
int ldrValue = 0;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  ldrValue = analogRead(ldrPin) / 10.23; //Convert to %
  Serial.print("LDR Value: ");
  Serial.print(ldrValue);
  Serial.print(" LED: ");
  if (ldrValue < switchpoint) {
    Serial.println("ON");
    digitalWrite(ledPin, HIGH);
  } else {
    Serial.println("OFF");
    digitalWrite(ledPin, LOW);
  }
  delay(2);
}


Von Alex @ AEQ-WEB 367