Hallo
Zur Messung der Helligkeit verwende ich einen TSL 2561 mit I2C und
Anzeige auf einem Display. Das auslesen der 4 Register (0x8c, 0x8d,
0x8e, 0x8f)
erfolgt damit und das berechnen der Werte.
1 | // Gesamthelligkeit auslesen
|
2 | i2c_write(0x8c);
|
3 | i2c_rep_start((TSL_w<<1)+I2C_READ);
|
4 | data1 = i2c_readAck();
|
5 |
|
6 | i2c_write(0x8d);
|
7 | i2c_rep_start((TSL_w<<1)+I2C_READ);
|
8 | data2 = i2c_readAck();
|
9 |
|
10 | datag1 = (data2 << 8) + data1;
|
11 |
|
12 | // Infrarothelligkeit auslesen
|
13 | i2c_write(0x8e);
|
14 | i2c_rep_start((TSL_w<<1)+I2C_READ);
|
15 | data3 = i2c_readAck();
|
16 |
|
17 | i2c_write(0x8f);
|
18 | i2c_rep_start((TSL_w<<1)+I2C_READ);
|
19 | data4 = i2c_readNak();
|
20 |
|
21 | datag2 = (data4 << 8) + data3;
|
Als Adress habe ich 0x39 eingestellt. Wenn ich mit die errechneten Werte
für Gesamthelligkeit ind Infrarothelligkeit anzeigen lasse, sind beide
Werte gleich gross. Wenn ich dann von der Gesamthelligkeit die
Infrarothelligkeit subtrahiere ergibt sich eine Helligkeit von 0.
Da stimm was nicht. Bei unterschiedlicher Helligkeit und Lichtquellen
müssten sich doch unterschiedliche Werte ergeben.
Denkfehler?
LG Kl