Raspberry Pi Mod 3B:    Sensor TSL 45315
 

 
Sensorplatine Watterott mit dem AMS-Sensor TSL 45315
 
Der Sensor TSL 45315 mißt Helligkeiten zwischen 3 und 220.000 Lux.
Datenblatt der Fa. AMS.pdf
 
Die vorliegende Platine der Fa. Watterott Electronik kann mit einer Spannung zwischen 3,3V bis 5V betrieben werden. Sie besitzt ein I2C- Interface. Die I2C-Adresse des Bausteins lautet 0x29. Die Beschaltung des I2C-Interface ist im obigen Bild eingezeichnet.
Herkunft des Sensors: www.watterott.com/de/TSL45315-Breakout
Anmerkungen zu Helligkeitswerten:
 
5 mW Laserpointer, grün (532 nm), 3 mm Strahldurchmesser 427.000 lx
5 mW Laserpointer, rot (635 nm), 3 mm Strahldurchmesser 105.000 lx
Heller Sonnentag 100.000 lx
Bedeckter Sommertag 20.000 lx
Im Schatten im Sommer 10.000 lx
Bedeckter Wintertag 3.500 lx
Büro-/Zimmerbeleuchtung 500 lx .. Flurbeleuchtung 100 lx
 
Vollmondnacht 0,05–0,36 lx
Sternklarer Nachthimmel (Neumond) 0,001 lx

PHYTON-Programm für den Rasbberry Pi 2/3
 
# python compiler unter: /usr/bin/python
# -*- coding: utf-8 -*-

import smbus
import time

# --------------------- # Konfiguration ------------------ #
                  # Pi-Version 1 benutzt Kanal 0
KANAL = 1         # Pi-Version 2 u. 3 benutzen Kanal 1
I2Cadr = 0x29     # I2C Adresse des TSL 45315
# -------------------------------------------------------- #

# Wahl des I2C-Kanals am Raspberry Pi
bus = smbus.SMBus(KANAL)

# Control Register, 0x00
# START: normale operation
bus.write_byte_data(I2Cadr, 0x80, 0x03)

# Konfigurations-Register, 0x01
# Faktor = 1, (00b) Integrationszeit 400 ms
# Je nach gewaehlter Integrationszeit muss der Messwert
# laut Datenblatt mit dem Faktor multipliziert werden ..
bus.write_byte_data(I2Cadr, 0x81, 0x00)

# Wartezeit in Sekunden (hier 0,5 sek)
time.sleep(0.5)

# Aus dem Konfigurations-Register 0x0A die chipID lesen.
# Der Rückgabewert kann hier nur 0x0A = TSL 45315 sein
id = bus.read_byte_data(I2Cadr, 0x8A) >> 4

# Die DATA-Register 0x04 und 0x05 lesen
# 2 Bytes beginnend mit Register 0x04 lesen
# Rückgabe: LSB first
data = bus.read_i2c_block_data(I2Cadr, 0x84, 2)

# 16-Bit-Helligkeits-MessWert in Lux
# da der Faktor hier 1 ist wird nicht mit ihm multipliziert
helligkeit = (data[1] << 8) + data[0] # (* Faktor)
# -------------------------------------------------------- #

# Ausgabe zum Bildschirm
print "chipID: 0x0%X" %id
print "Helligkeit: %d lux" %helligkeit

 

Der Start des Programms
Wird das Programm im Ordner /usr/ mit dem Namen TSL4531.py abgelegt, kann es aus dem Terminal, durch ..
.. gestartet werden.
python /usr/TSL45315.py