Lichtsensor an PoKeys verwenden (I2C)

Alternativ zum analogen Lichtsensor habe ich mir einen Lichtsensor bestellt, der über den Bus I²C kommuniziert und die Lichtwerte in Lux an das angeschlossene System übermitteln kann. Leider habe ich erst beim Testen herausgefunden, dass man pro I²C-Bus maximal zwei dieser Sensoren anschließen kann. Dennoch möchte ich meine Erfahrungen nicht vorenthalten. Wie eine solche I²C-Komponente an PoKeys anzuschließen und zu beitreiben ist, zeigt dieser Artikel.

 

 

 

 

 

 

Anschließen an den I²C-Bus von PoKeys

PoKeys unterstützt einige Sensoren, die über den I²C-Bus kommunizieren, darunter der hier verwendete BH1750-Lichtsensor. Wir nutzen dafür die Pins, die eigentlich für die Kommunikation mit PoKeys-Extensions wie den „PoExtBusRE“ gedacht sind. Da an diesen Pins jedoch das von uns benötigte Protokoll gesprochen wird, können wir die Pins problemlos für unsere Zwecke nutzen. Dafür installieren wir den Sensor, wie in folgender Skizze gezeigt.

 

 

 

 

 

 

 

 

 

 

 

 

Die Adressierung des Lichtsensors

Wie ich bereits erwähnte, können pro Bus maximal zwei dieser Sensoren eingesetzt werden. Wie bei jedem anderen Bus müssen die Busteilnehmer genau adressiert werden, damit eine Kommunikation möglich ist. Der Lichtsensor BH1750 verfügt über einen Pin mit der Bezeichnung „ADD„. Über diesen Pin können wir zwischen zwei fest definierten Adressen wählen. Legen wir eine Spannung von 5V an diesen Pin, vergibt sich der Sensor die Busadresse „0x5C„. Verbinden wir diesen Pin mit dem GND von PoKeys oder lassen diesen Pin unbelegt, ist der Sensor unter der Adresse „0x23“ addressierbar.

 

 

 

Konfiguration und Auslesen der Werte

Wir wenden uns der PoKeys-Konfigurationssoftware zu und öffnen im Menü „Peripherie“ den Punkt „EasySensors„.

 

Im sich öffnenden Fenster wählen wir den Menüpunkt „Scan for I²C-Sensors„. Wurde unser Sensor wie in der Skizze gezeigt angeschlossen, erscheint dieser nun in den Scanergebnissen. Wir wählen den gefundenen Sensor mit der Aktivierung des nebenstehenden Kästchens aus.

 

 

Sollte der Sensortyp nicht automatisch ermittelt worden sein, wählen wir aus der Liste den Sensortyp „BH1750“  und beenden die Suche mit „Finish„.

 

 

Zurück bei der vorherigen Tabelle erscheint nun unser I²C-Lichtsensor BH1750 in der Liste der konfigurierten Sensoren und liefert uns nach einem Klick auf „Send to Device“ den aktuellen Helligkeitswert gemessen in Lux (lx).

 

 

Leider muss ich an dieser Stelle zugeben, dass es mir nicht gelungen ist, den zweiten Sensor unter der alternativen Adresse „0x5C“ zu erreichen. Bei der Suche via PoKeys erscheint lediglich ein „Unknown Device„. Da für meine Zwecke nur zwei Lichtsensoren ohnehin nicht ausreichen würden, verzichte ich auf diese und setze analoge Lichtsensoren ein, dessen Betrieb in diesem Beitrag beschrieben ist.