#ifndef _BH1750_H_ #define _BH1750_H_ #include #include #include #include "../../periferals/i2c/i2c_ch1_pImpL.hpp" //Start measurement at 4lx resolution. Time typically 16ms. #define BH1750_CONTINUOUS_LOW_RES_MODE 0x13 //Start measurement at 1lx resolution. Time typically 120ms #define BH1750_CONTINUOUS_HIGH_RES_MODE_1 0x10 //Start measurement at 0.5lx resolution. Time typically 120ms #define BH1750_CONTINUOUS_HIGH_RES_MODE_2 0x11 //Start measurement at 1lx resolution. Time typically 120ms //Device is automatically set to Power Down after measurement. #define BH1750_ONE_TIME_HIGH_RES_MODE_1 0x20 //Start measurement at 0.5lx resolution. Time typically 120ms //Device is automatically set to Power Down after measurement. #define BH1750_ONE_TIME_HIGH_RES_MODE_2 0x21 //Start measurement at 1lx resolution. Time typically 120ms //Device is automatically set to Power Down after measurement. #define BH1750_ONE_TIME_LOW_RES_MODE 0x23 #define BH1750_POWER_DOWN 0x00 // No active state #define BH1750_POWER_ON 0x01 // Power on #define BH1750_RESET 0x07 // Reset data register value #define BH1750_ADDR 0x23 // Device Adress class Bh1750 { public: Bh1750(i2c_ch1_pImpL *i2c); uint8_t sleep(); // To be testes uint8_t wake(); // To be tested uint8_t reset(); // To be tested float oneShot(uint8_t mode); // ok float continious(uint8_t mode, uint8_t delayMs); // IMplment delay or make a delay class ??? private: i2c_ch1_pImpL* i2c_bh1750; uint8_t high; uint8_t low; uint8_t currentMode; uint8_t currentState; }; #endif // _BH1750_H_