Lichtsensor/Breakout STM32 / LM393

Hardware

Beschreibung

STM32 wird als Lichtsensor mit Breakout-Ausgang beschrieben. Je nach Lieferung erhält man auch welche, die Pin mit Analog-Ausgang besitzen. Breakout heißt ab einen einen einstellbaren Wert, schaltet der Digital-Ausgang.

Einstellen lässt sich das über ein aufgelötetes Potentiometer. Hier kommen wir zum entscheidenden Nachteil, egal wie man am Potentiometer rum schraubt, der Sensor schaltet bei Tageslicht / Deckenstrahler oder heller an ansonsten aus.

Zur Schaltung bei Dämmerungslicht oder kleinere Lichtquellen eignet sich der Sensor nicht. Für meinen Zweck, nämlich zur Erkennung ob jemand nachts vergessen hat das Licht auszuschalten ist er zumindest im Wohnbereich unbrauchbar. Im Keller, wo es nur ein Deckenfluter gibt, sieht es anders aus.

Ich empfehle daher Sensoren mit zusätzlichen Analog-Ausgang zu kaufen, so kann man später vll. selbst einen Analog-Digital-Wandler nach schalten und ggf. per Software nach eigenen Anforderungen reagieren.

Nett gemeint aber meist störend sind die Status-LEDs, die rote Betriebs-Anzeige leuchtet gar geisterhaft nachts durch dünne Gehäuse. Auf den ersten Blick ist ein Lichtsensor, der selbst Licht spendet doch etwas verwirrend. Im Nachhinein, durch das unsensible Verhalten des Breakouts, stört es zumindest die Funktionsweise nicht. Die grüne Status-LED ist hilfreich, wenn man am Potentiometer versucht den richtigen Breakout-Wert einzustellen.

Intern wurde der Chip LM393 verbaut... alternativ gibt es zahlreiche ähnliche Varianten. Ohne Analog-Ausgang fand ich die Module bei Ebay ab 3,09 Euro pro Stück, ähnliche Varianten mit gleichen Chip fand ich bereits ab 1,49 Euro bei Ebay (auch mit analogen Ausgang). Er kostet weit weniger als ein Bier in den meisten Gaststätten und kann richtig eingesetzt richtig Geld sparen. Apropos, vll. sollte ich die Preise nur noch in Biereinheiten (BE) statt Euro angeben ;-)

Anschluss

Eingesetzt habe ich das Modul an den GPIOs vom Raspberry Pi und Banana Pi, sowie am I2C Expander PCF8574 mit 1,8 K Pull-up Widerstand gegen UCC.

Technische Daten vom Händler

Comparator ChipLM393
Kann die Umgebungshelligkeit und die Lichtintensität erkennen.
Einstellbar
Betriebsspannung 3,3 V -5V
Ausgang: DO digitale Schaltausgänge ( 0 und 1)
AO analogen Spannungsausgang
Netzanzeige und digitale Schaltausgangsanzeige
Mit einer Einbau-schraubenloch
PCB -Größe 3.1cm * 1.5cm

Programmierung

Allgemein

Hier muss man nichts weiter programmieren. Unter Raspberry Pi oder Banana Pi kann man sogar die Werte der GPIOs einfach durch Lesen einer Datei erfragen, denn die GPIOs werde im virtuellen Dateisystem abgebildet.
Hier zum Beispiel wird GPIO 23 zum Lesen vorbereitet

  1. echo "23" > /sys/class/gpio/export
  2. echo "in" > /sys/class/gpio/gpio23/direction

Nun kann der Wert einfach durch folgenden Befehl lesen

  1. cat /sys/class/gpio/gpio23/value
Man sollte man beachten, dass das Modul bei Licht auf low, bei Dunkelheit auf high schaltet.

Fhem

Per define <name> RPI_GPIO <nummer> kann man jeden GPIO lesen oder schreiben.

# Licht Breakout am GPIO am Raspberry PI
# --------------------------
define Pin16 RPI_GPIO 23
attr Pin16 direction input
attr Pin16 interrupt both
Artikel von Karsten Grüttner, letzte Änderung 10.10.2015