Fotowiderstand (Helligkeitssensor) am Raspberry Pi

20. April 2017
1083 Views
1 Comments

Um z.B. eine Wetterstation zu betreiben ist es auch wichtig die Helligkeit zu kennen. Mit einem Raspberry Pi Helligkeitssensor (Fotowiderstand / Lichtsensor) ist es sehr einfach einen Wert zu ermitteln, womit man bspw. sagen kann ob es Tag, Dämmerung oder Nacht ist.

Damit ließen sich wiederum Projekte zum Steuern der (Außen-)Lichter realisieren, die ab einer gewissen Dunkelheit sich automatisch anschalten. In diesem Tutorial schließen wir einen solchen Helligkeitssensor an und lesen die Lichtwerte entsprechend aus, sodass wir darauf reagieren können.

 

Zubehör

Den verwendeten Fotowiderstand gibt es neben der eigentlichen Fassung auch auf einem PCB (Leiterplatte), worauf u.a. Widerstände aufgelötet sind. Dadurch kann zusätzlich ein digitales Signal ausgelesen werden, dass für „über/unter Schwellwert“ steht. Das Auslesen diesen digitalen Signals ist sehr einfach und wird in einigen anderen Tutorials behandelt (z.B. hier oder hier). Beide Versionen können mit diesem Tutorial genutzt werden, lediglich hat die eine Version eben noch eine zusätzliche Funktionalität. Für Projekte wie das Unterscheiden zwischen Hell/Dunkel ist es sicherlich eine einfache Alternative.

Raspberry Pi Helligkeitssensor PCB Fototransistor

Auf eine Leiterplatte aufgelöteter Fotowiderstand hat ein Potentiometer dabei, sodass Schwellwerte einstellbar sind.

Folgende Bauteile sind für dieses Tutorial jedenfalls nötig:

Falls dich die Funktionsweise von Fotowiderständen (LDR) im Allgemeinen interessieren, kannst du hier mehr dazu lesen. Im Allgemeinen kann man sagen, dass sich der Widerstand je nach Helligkeit verändert.

 

Raspberry Pi Helligkeitssensor anschließen

Raspberry Pi MCP3008 Pinout

Auf der linken Seite des MCP3008 befinden sich die 8 analog auslesbaren Channels.

Bevor wir den Fototransistor jedoch anschließen und auslesen können, müssen wir einen Analog-Digital-Wandler verbinden. Dazu findest du hier einen recht ausführlichen Artikel zum MCP3008, den wir auch in diesem Tutorial verwenden. Um diesen Artikel nicht unnötig aufzublähen gehe ich hier nicht näher auf den MCP3008 ein. Die genaue Verbindung zwischen ADC und Raspberry Pi findest du ebenfalls im Artikel.

Wichtig ist, dass der Helligkeitssensor auch eine Verbindung (über einen 10kΩ Widerstand) zum Masse Anschluss hat, da ansonsten der Wert nicht eindeutig auszulesen ist. Kommt durch den LDR überhaupt keine Spannung, so ist diese bei 0 (durch den Anschluss an GND).Falls Spannung fließt, geht ein Teil durch den 10kΩ Widerstand zurück, allerdings ist dieser Teil sehr gering, da der Widerstand groß ist. Wie bei anderen Widerständen auch spielt es keine Rolle auf welcher Seite die Positive Spannung am Fotowiderstand angelegt wird.

Schematisch sieht der Aufbau wie folgt aus:

Falls später selbst bei weniger Beleuchtung recht hohe Werte angezeigt werden, kannst du zwischen positiven Spannung und dem Pin des Lichtsensors noch einen zusätzlichen Widerstand setzen.

Solltest du einen aufgelöteten Photowiderstand nutzen, muss lediglich 3.3V (Pin 1) vom Raspberry Pi an VCC und GND kommt and GND (Pin 6) vom Pi. Der Pin A0 wird direkt an den Analog-Digital Wandler angeschlossen. Somit ist kein 10k Pullup Widerstand nötig. Der Vorteil besteht darin, dass du den Vorwiderstand per Potentiometer (Drehwiderstand) individuell einstellen kannst – je nach maximaler Helligkeit.

 

 

Helligkeitssensor am Raspberry Pi auslesen

In dem anderen Tutorial zum MCP3008 haben wir eine Klasse erstellt, welche wir auch hier nutzen werden. Stelle sicher, dass SpiDev wie beschrieben installiert ist. Zur Erinnerung findest du den Inhalt der Klasse hier noch einmal:

Sofern diese Klasse im aktuellen Verzeichnis besteht, kannst du einfach die Python Konsole per sudo python öffnen (oder alternativ ein Skript erstellen) und folgendes eingeben:

Bei mir ergab komplette Dunkelheit (Finger darauf gehalten) einen Wert von ca. 600 was bedeutet, dass ca. 1.95V Spannung von den ursprünglichen 3.3V an den MCP3008 kamen. Bei Helligkeit hatte ich dauerhaft einen Wert von 1023.

Die maximalen Widerstandsgrößen unterscheiden sich ein wenig, je nachdem welcher Lichtwiderstand genommen wurde. Sofern die Helligkeit sehr hoch ist (Tageslicht) empfiehlt sich ein Vorwiderstand bzw. ein anderer Pull-Widerstand (bisher 10k).

Ein Kommentar

  1. Prima, da habe ich doch gleich mal 10 St. bestellt…
    Prima, werde ich versuchen als Garagenlichtangelassenmelder zu nutzen. Das mit dem Temp.sensor funktioniert nicht optimal, weil das Kabel zu lang ist…

    Apropos Kabellänge… kann es da zu Problemen kommen, wenn die Kabel vom Lichtsensor zu lang sind (ca. 8 m) oder kann man das mit einem kleineren Widerstand ausgleichen?

    Gruß Ingo

    Antworten

Hinterlasse einen Kommentar

Deine Email Adresse wird nicht veröffentlicht.

Blog abonnieren

Abonniere Tutorials-RaspberryPi, um kein Tutorial mehr zu verpassen!