Küchenlicht
DIY-Projekt

Küchenlicht

Arduino Uno · MOSFET · Bewegungsmelder · Helligkeitssensor · LED-Leiste
Dieses Projekt schaltet eine blaue LED-Leiste in der Küche automatisch ein, wenn es dunkel genug ist und gleichzeitig eine Bewegung erkannt wird. Die Steuerung übernimmt ein Arduino Uno.
Da die LED-Leiste mehr Strom benötigt, als der Arduino direkt liefern kann, wird sie nicht direkt über den Arduino-Ausgang betrieben. Der Arduino steuert stattdessen einen MOSFET an, der die LED-Leiste schaltet.

Aufbau

Verwendet wurden unter anderem:

- ein Arduino Uno
- ein PIR-Bewegungsmelder
- ein Helligkeitssensor / LDR
- eine blaue LED-Leiste
- ein MOSFET (IRLZ34 N-Kanal) zum Schalten der LED-Leiste
- passende Widerstand am LDR (bei mir 2,5 kΩ)
- Kabel und einfache Stromversorgung

Küchenlicht Schaltung

Verkabelung und Funktion

Der Arduino Uno wird mit einem 12-V-Netzteil über die Buchse mit Strom versorgt.

Der Vin-Pin (Kabelfarbe: cyan) versorgt dann das Steckbrett auf der linken Stromleiste ebenfalls mit 12 Volt, Masse (grau) kommt vom GND-Pin. Die rechte Stromleiste des Steckbretts wird vom Arduino mit dem 5-Volt-Ausgang (grün) versorgt, Masse (schwarz) ebenfalls von GND.
Die linke und rechte Stromleiste auf dem Breadboard (Steckbrett) ist jeweils rot und blau markiert. Auf strikte Trennung der Spannungen ist zu achten, denn die Sensoren vertragen nur 5 V, die LED-Leiste braucht hingegen 12 V.

Der PIR (Bewegungsmelder) bekommt 5 Volt (rot) und Masse (schwarz) von der rechten Seite des Steckbretts. Die Datenleitung des PIR (orange) geht zum Arduino auf Pin 7.

Der LDR (Helligkeitssensor) bekommt 5 Volt ebenfalls direkt über das Steckbrett (dunkelrot). Seine Masse wird auf dem Steckbrett über einen Widerstand mit GND verbunden (schwarz). Dazwischen wird ein Kabel (orange) zum Arduino an Pin A0 gelegt. Der Sensor verändert je nach Lichteinfall seinen Widerstand. So kann der Arduino an A0 messen, wie hell oder dunkel es ist.

Der MOSFET wird am linken Beinchen mit dem Arduino auf Pin 3 verbunden (gelb). Das rechte Beinchen wird auf dem Steckbrett mit GND der linken Stromleiste verbunden (schwarz). Das mittlere Beinchen wird über das Steckbrett zur LED-Leiste an den Minuspol geführt (braun).

D3 → Gate (linker Kontakt)
LED-Leiste - → Drain (mittlerer Kontakt)
GND → Source (rechter Kontakt)

Der Pluspol der LED-Leiste wird, ebenfalls über das Steckbrett, mit der linken 12-V-Spannung verbunden (weiß).

In der Programmierung des Arduino ist hinterlegt, dass zuerst die Helligkeit geprüft wird. Wenn es dunkel genug ist, kann der Bewegungsmelder die LED-Leiste einschalten. Gleichzeitig prüft der PIR-Bewegungsmelder aber, ob sich jemand im Erfassungsbereich bewegt. Nur wenn beide Bedingungen erfüllt sind, aktiviert der Arduino die blaue LED-Leiste.

Das Licht bleibt für etwa acht Sekunden eingeschaltet und geht danach wieder aus, sofern keine neue passende Auslösung erfolgt. Also genau die Zeit, um ein neues Bier aus dem Kühlschrank zu holen. 🍺 😋

Tagsüber bleibt die LED-Leiste also aus, bei Dunkelheit ohne Bewegung ebenfalls. Der Arduino hat dann nicht viel zu tun und verbraucht ein bisschen Strom. 😉
Küchenlicht LED-Leiste

Küchenlicht LED-Leiste

Kabelsalat unterm Küchenschrank: Arduino, Steckbrett, Sensoren und MOSFET sind bewusst einfach gehalten.

Arduino-Code

Der Sketch kann hier markiert und kopiert werden.

int LDR = A0; // Analoger Pin als LDR Eingang
int LED = 3; // LED-Pin
int Bewegungsmelder = 7;

int Helligkeit = 0; // Variable für die Helligkeit mit 0 als Startwert
int Bewegungsstatus = 0;


void setup()
{
  Serial.begin(9600);
  pinMode (LED, OUTPUT);
  pinMode(Bewegungsmelder, INPUT);

}

void loop()
{
  Bewegungsstatus = digitalRead(Bewegungsmelder);

  Helligkeit = analogRead(LDR); //
  Serial.println(Helligkeit); //Ausgabe am Serial-Monitor.

if (Bewegungsstatus == LOW)
  {
    digitalWrite(LED, LOW);
  }


  if (Helligkeit < 350 && Bewegungsstatus == HIGH) // Wenn der Schwellenwert 350 unterschritten wird, soll die LED leuchten
  {
    digitalWrite(LED, HIGH); // LED an
    delay (8000);
  }
  // ansonsten...
  else {
    digitalWrite(LED, LOW); // LED aus
    delay (50);
  }
}

← Zurück zu den DIY-Projekten