Zur automatischen Steuerung der Jalousien und Rolladen benötige ich einen Helligkeitssensor der unabhängig die Tageshelligkeit misst. Bis dato habe ich einen einfachen analogen LDR verwendet der über einen analogen Eingang des AVR einfach den Spannungsabfall misst und so "einen" Helligkeitswert bestimmt. Der ist dann jedoch weder kalibriert noch besonders reproduzierbar. Also sollte ein richtiger Sensor her.

Da es nichts Adäquates auf dem Markt gab welches meinen Ansprüchen genügte und - ganz wichtig - die Helligkeit/Soneneinstrahlung über CAN-Bus ausgeben kann, habe ichs eben selbst entwickelt.

Als Sensor habe ich einen kalibrierten "echten" Halbleitersensor verwendet, der mit SPI oder I2C ausgelesen werden kann. Hier habe ich den TSL2561 von TAOS mit I2C-Bus verwendet. Es gibt den gleichen Sensor auch für SPI-Busanschluss. Der Sensor kann mit 16 Bit-Auflösung einen Dynamikbereich von 1:1.000.000 erfassen. Er kann die Helligkeit in zwei Kanälen ch0 und ch1 mit unterschiedlichen (Licht)-Frequenzbereichen messen -  um sowohl den Infrarotpegel als auch den klassichen Helligkeitspegel zu erfassen. Eigentlich recht einfach. Der Sensor ist ein ausgezeichneter Umgebungslichtsensor der zwei Sensorelemente in einem winzigen Gehäuse vereint. Das Gehäuse ist 2.6mm * 3.8mm groß und erfordert zwingend SMD-Bestückung. Als Alternative kann man auch den aktuellen TSL25721 von AMS verwenden. Der hat nochmals einen erheblich weiter gesteigerten Dynamikbereich von 45.000.000 : 1. Allerdings stimmen da dei Anschlussbelegungen der beiden Chips nicht ganz überein und in der Software müssen die Registeradressen angepasst werden.

Pin TSL2561 TSL2572 -1,-2,-3 Function
1 +Ub +Ub  
2 ADR SCL  
3 GND GND  
4 SCL LDR  
5 INT INT  
6 SDA SDA  

Hier muss also nur die SCL-Leitung statt an Pin4 an Pin 2 geleitet werden.Auf der PCB ist dazu ein 0-Ohm Widerstand oder eine Brücke passend zu löten. Aber noch folgende Warnung: Der TSL25721 ist sehr schwer von Hand zu löten.

Zur Ansteuerung und zu Realiserung des CAN-Busses habe ich einen STM32F103CB-Prozessor verwendet. Dies ist ein kleiner Cortex-M3 Prozessor in TQFP 48 Gehäuse (6*6mm).

Die Schaltung soll in einem kleinem ABS-Gehäuse (50*52mm) untergebracht werden und im Hausbussystem mit 4-Draht-Bus (12V DC, GND und CAN+ und CAN-) angesprochen werden können.

Der Sensor bekommt noch einen kleinen LWL-Lichtleiter der an der Rückseite des Gehäuses bis zu 50mm herausschauen kann. Dadurch kann die Elektronik "innen" sein und der LWL-Stab über ein kleines Loch im Fensterrahmen kann nach draußen schauen. Dadurch stimmt zwar die Sensorkalibrierung im Infrarotbreich sicher nicht mehr, aber es krabbeln eben auch keine Insekten in die Elektronik die feuchtigkeitsgeschützt im Innenraum bleiben kann.

Fotos folgen noch.

Das Schaltbild im EAGLE-Format gibts übrigens unter dem nachfolgenbden Link:

Die Platine findet sich hier:

 

 

Der Sensor befindet sich auf der Rückseite der PCB und schaut dann unten am Gehäuse heraus.

 

Software

Die Software zum Betrieb des Boards habe ich in C geschrieben. Diese übernimmt die Funktionen zum zyklischen Auslesen des Helligkeitssensor per I2C oder SPI, sowie die Bedienung des CAN-Bus.  Über einen 3-poligen Pfostenstecker kann man per ASCII-Terminal (z.B. Hyperterm oder Putty) einige Einstellungen (z.B. CAN-Bus Addresse, zyklisches Versenden der Messwerte, oder nur auf Anfrage per Buskommandio, oder beides) des Boards vornehmen und im Flashspeicher abspeichern. Dies ist aber eben nur für die Programmierung nach dem Flashen der Firmware. So kann man mehrere Helligkeitssensoren auf einem Bus betreiben. Ich verwende die Elektronik so, daß ich zyklische CAN-Bus Telegramme mit der aktuellen Helligkeit versende. So können einzelne Rolladen und Jalousiekontroller selbstständig auf Helligkeitspegel reagieren. Zusätzlich versendet die Software die Werte noch auf Anfrage.

Sobald ich die Software mit der Hardware ausreichend getestet habe, gibt es diese zum Download ebenfalls hier.

 der Platine als ELF-Flashfile.

 

Nachtrag:

Ich habe jetzt auch die Software ür den TSL 2572 geschrieben. Funktioniert im Prinzip nahezu gleich. Dieser Sensor war mir aufgrund des hohen Dynamikbereichs dann doch lieber. Den Sensor habe ich jedoch jetzt mir einem kleinen Breakoutboard in einer Plexiglaskuppel im Deckel des Gehäuses untergracht. Über den LWL-Lichtleiter kam bei niedrigen Helligkeiten doch zuwenig Licht durch.

Lichtsensor auf Breakoutboard für Plexiglaskuppel (Schauglas eines Ölsichtfensters)

Das Breakout-Board war nötig, da man den Sensor - für Testaufbauten etc. - sonst nahezu nicht verarbeiten kann.

Hier jetzt der Link zur :