You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
KED/ked/oldDevFiles/developpment/drivers/bh1750/bh1750.cpp

62 lines
1.1 KiB

#include "bh1750.h"
Bh1750::Bh1750(I2C *i2c)
{
i2c_bh1750 = i2c;
currentMode = 0; // no mode selected
}
uint8_t Bh1750::sleep()
{
i2c_bh1750->writeByte(BH1750_ADDR,BH1750_POWER_DOWN);
return 0;
}
uint8_t Bh1750::wake()
{
i2c_bh1750->writeByte(BH1750_ADDR,BH1750_POWER_ON);
return 0;
}
uint8_t Bh1750::reset()
{
i2c_bh1750->writeByte(BH1750_ADDR,BH1750_RESET);
return 0;
}
float Bh1750::oneShot(uint8_t mode)
{
if(mode > 0)
{
if( mode == BH1750_ONE_TIME_HIGH_RES_MODE_1 ||
mode == BH1750_ONE_TIME_HIGH_RES_MODE_2 ||
mode == BH1750_ONE_TIME_LOW_RES_MODE)
{
return i2c_bh1750->readWord(BH1750_ADDR,mode) / 1.2 ;
}
}
std::cout<< "please seelct a one shot mode "<< std::endl;
exit(1);
return 0;
}
float Bh1750::continious(uint8_t mode, uint8_t delayMs)
{
if(mode > 0)
{
if( mode == BH1750_CONTINUOUS_HIGH_RES_MODE_1 ||
mode == BH1750_CONTINUOUS_HIGH_RES_MODE_2 ||
mode == BH1750_CONTINUOUS_LOW_RES_MODE)
{
return i2c_bh1750->readWord(BH1750_ADDR,mode) / 1.2;
}
}
std::cout<< "please seelct a continious mode "<< std::endl;
exit(1);
return 0;
}