Library for digital light sensor BH1750 (GY-30). SPI Test Comunication with ArduinoMega
Embed:
(wiki syntax)
Show/hide line numbers
BH1750.cpp
00001 00002 00003 #include "BH1750.h" 00004 00005 BH1750::BH1750 (PinName sda, PinName scl) : i2c(sda,scl) 00006 { 00007 rawDataBuffer[0] = 0; 00008 rawDataBuffer[1] = 0; 00009 status = -1; 00010 } 00011 00012 void BH1750::init(char mode) 00013 { 00014 configure(mode); 00015 } 00016 00017 00018 void BH1750::configure(char mode) 00019 { 00020 char data[1]; 00021 switch (mode) { 00022 case BH1750_CONTINUOUS_HIGH_RES_MODE: 00023 case BH1750_CONTINUOUS_HIGH_RES_MODE_2: 00024 case BH1750_CONTINUOUS_LOW_RES_MODE: 00025 case BH1750_ONE_TIME_HIGH_RES_MODE: 00026 case BH1750_ONE_TIME_HIGH_RES_MODE_2: 00027 case BH1750_ONE_TIME_LOW_RES_MODE: 00028 data[0] = mode; 00029 status = i2c.write(BH1750_I2CADDR, data, sizeof(data), false); 00030 wait_ms(10); 00031 break; 00032 default: 00033 break; 00034 } 00035 } 00036 00037 00038 float BH1750::readIntesity(void) 00039 { 00040 status = i2c.read(BH1750_I2CADDR, rawDataBuffer, 2, false); 00041 if(status != 0) { 00042 return -1; 00043 } 00044 //success 00045 float result = 0; 00046 result = ((rawDataBuffer[0]<<8)|rawDataBuffer[1])/1.2; 00047 return result; 00048 } 00049 00050 int BH1750::getStatus (void) 00051 { 00052 return status; 00053 } 00054 00055 char* BH1750::getRawData(void) 00056 { 00057 return rawDataBuffer; 00058 }
Generated on Tue Jul 19 2022 10:03:50 by 1.7.2