Digital 16bit Serial Output Type Ambient Light Sensor IC by ROHM, Ambient light sensor (Illuminance to digital converter)

Revision:
1:4a02a8fbf021
Parent:
0:d95f6ac4c8d6
--- a/BH1750.cpp	Sat Mar 07 23:44:42 2015 +0000
+++ b/BH1750.cpp	Wed Aug 23 09:21:39 2017 +0000
@@ -3,40 +3,38 @@
  *  light intensity sensor module with built-in a 16 bit AD converter generating digital signal.
  *  BH1750 by ROHM Co.,Ltd.
  *
- * Copyright (c) 2015 Kenji Arai / JH1PJL
+ * Copyright (c) 2015,'17 Kenji Arai / JH1PJL
  *  http://www.page.sannet.ne.jp/kenjia/index.html
  *  http://mbed.org/users/kenjiArai/
- *      Created: March      7th, 2015
- *      Revised: March      8th, 2015
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
- * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
- * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *      Created: March       7th, 2015
+ *      Revised: August     23rd, 2017
  */
 
 #include "BH1750.h"
 
-BH1750::BH1750 (PinName p_sda, PinName p_scl) : _i2c(p_sda, p_scl)
+BH1750::BH1750 (PinName p_sda, PinName p_scl)
+ : _i2c_p(new I2C(p_sda, p_scl)), _i2c(*_i2c_p)
 {
     BH1750_addr = BH1750_G_CHIP_ADDR;
     init();
 }
 
-BH1750::BH1750 (PinName p_sda, PinName p_scl, uint8_t addr) : _i2c(p_sda, p_scl)
+BH1750::BH1750 (PinName p_sda, PinName p_scl, uint8_t addr)
+ : _i2c_p(new I2C(p_sda, p_scl)), _i2c(*_i2c_p)
 {
     BH1750_addr = addr;
     init();
 }
 
-BH1750::BH1750 (I2C& p_i2c) : _i2c(p_i2c)
+BH1750::BH1750 (I2C& p_i2c)
+ : _i2c(p_i2c)
 {
     BH1750_addr = BH1750_G_CHIP_ADDR;
     init();
 }
 
-BH1750::BH1750 (I2C& p_i2c, uint8_t addr) : _i2c(p_i2c)
+BH1750::BH1750 (I2C& p_i2c, uint8_t addr)
+ : _i2c(p_i2c)
 {
     BH1750_addr = addr;
     init();
@@ -49,7 +47,7 @@
 
     _i2c.read(BH1750_addr, (char *)dt, 2, false);
     lux = (float)(dt[0] << 8 | dt[1]);
-    lux = lux / 1.2 * ((float)sensitivity/69);
+    lux = lux / 1.2f * ((float)sensitivity/69);
     return lux;
 }
 
@@ -97,3 +95,5 @@
 {
     _i2c.frequency(hz);
 }
+
+