Luminosity sensor by Texas Advanced Optoelectronic Solutions Inc.. Device combines one broadband photodiode (visible plus infrared) and one infrared-responding photodiode. Sets Gain x1 and 402mS as default.

Dependents:   MusicBoxForFathersDay FTHR_SensorHub Affich_Lum_Moist Projetv0 ... more

Revision:
3:d60d8198d76d
Parent:
2:17591031447b
Child:
4:05d322353720
--- a/TSL2561.cpp	Wed Aug 23 09:27:52 2017 +0000
+++ b/TSL2561.cpp	Tue Feb 20 10:49:43 2018 +0000
@@ -3,11 +3,13 @@
  *  Luminosity sensor -- LIGHT-TO-DIGITAL CONVERTER (light intensity to a digital signal output)
  *  TSL2561 by Texas Advanced Optoelectronic Solutions Inc.
  *
- * Copyright (c) 2015,'17 Kenji Arai / JH1PJL
+ * Copyright (c) 2015,'17,'18 Kenji Arai / JH1PJL
  *  http://www.page.sannet.ne.jp/kenjia/index.html
  *  http://mbed.org/users/kenjiArai/
  *      Created: Feburary   21st, 2015
  *      Revised: August     23rd, 2017
+ *      Revised: Feburary   20th, 2018   bug fix -> read_ID() & who_am_i()
+ *                                       Thanks PARK JAICHANG
  */
 
 #include "TSL2561.h"
@@ -138,19 +140,32 @@
 }
 
 /////////////// ID ////////////////////////////////////////
+#if 0
 uint16_t TSL2561::read_ID()
 {
     dt[0] = CMD_SINGLE + TSL2561_ID;
     _i2c.write((int)TSL2561_addr, (char *)dt, 1, true);
+    _i2c.read(TSL2561_addr, (char *)dt, 1, false);
+    id_number = dt[0] << 8 | dt[1];
+    return id_number;
+}
+#else
+uint8_t TSL2561::read_ID()
+{
+    dt[0] = CMD_SINGLE + TSL2561_ID;
+    _i2c.write((int)TSL2561_addr, (char *)dt, 1, true);
     _i2c.read(TSL2561_addr, (char *)dt, 2, false);
-    id_number = dt[0] << 8 | dt[1];
+    id_number = dt[0];
     return id_number;
 }
+#endif
 
 uint8_t TSL2561::who_am_i()
 {
     read_ID();
-    if ((id_number >> 4) == I_AM_TSL2561) {
+    if ((id_number >> 4) == I_AM_TSL2561CS) {
+        return 1;
+    } else if ((id_number >> 4) == I_AM_TSL2561T_FN_CL) {
         return 1;
     } else {
         return 0;