Envorimental Monitoring
Loading...
Searching...
No Matches
bh1750.h
Go to the documentation of this file.
1
26
27#ifndef INC_SENSORS_INC_BH1750_H_
28#define INC_SENSORS_INC_BH1750_H_
29
30#include "stdint.h"
31#include "stddef.h"
32
34typedef int8_t (*BH1750_I2C_Read_Func)(uint8_t dev_addr, uint8_t reg_addr,
35 uint8_t *data, uint16_t len);
37typedef int8_t (*BH1750_I2C_Write_Func)(uint8_t dev_addr, uint8_t reg_addr,
38 uint8_t *data, uint16_t len);
40typedef void (*BH1750_Delay_Func)(uint32_t ms);
41
56
57/* ---------- Address constants ---------- */
58#define BH1750_ADDRESS_GND (0x23 << 1)
59#define BH1750_ADDRESS_VCC (0x5C << 1)
60#define BH1750_ADDRESS BH1750_ADDRESS_GND
61
62/* ---------- Measurement mode commands ---------- */
63#define BH1750_CONTINIOUS_H_RES_MODE 0x10
64#define BH1750_CONTINIOUS_H_RES_MODE2 0x11
65#define BH1750_CONTINIOUS_L_RES_MODE 0x13
66#define BH1750_ONE_TIME_H_RES_MODE 0x20
67#define BH1750_ONE_TIME_H_RES_MODE2 0x21
68#define BH1750_ONE_TIME_L_RES_MODE 0x23
69
70/* ---------- Power / reset commands ---------- */
71#define BH1750_PWR_DOWN 0x00
72#define BH1750_PWR_ON 0x01
73#define BH1750_RST 0x07
74
75/* ---------- Measurement timing (ms) ---------- */
76#define MEASUREMENT_TIME_H_RES_MODE 120
77#define MEASUREMENT_TIME_H_RES_MODE2 120
78#define MEASUREMENT_TIME_L_RES_MODE 16
79
81#define BH1750_LUX_COEFF 1.2f
82
92
105
106#endif /* INC_SENSORS_INC_BH1750_H_ */
int8_t(* BH1750_I2C_Write_Func)(uint8_t dev_addr, uint8_t reg_addr, uint8_t *data, uint16_t len)
Function pointer type for platform I2C write.
Definition bh1750.h:37
int8_t BH1750_Init(BH1750_HandleTypeDef *dev)
Powers on the BH1750 and sends the initial measurement mode command.
Definition bh1750.c:11
int8_t(* BH1750_I2C_Read_Func)(uint8_t dev_addr, uint8_t reg_addr, uint8_t *data, uint16_t len)
Function pointer type for platform I2C read.
Definition bh1750.h:34
int8_t BH1750_Read(BH1750_HandleTypeDef *dev)
Reads the latest illuminance measurement from the BH1750.
Definition bh1750.c:40
void(* BH1750_Delay_Func)(uint32_t ms)
Function pointer type for platform millisecond delay.
Definition bh1750.h:40
BH1750 driver handle.
Definition bh1750.h:48
float lux
Definition bh1750.h:54
uint8_t mode
Definition bh1750.h:53
BH1750_Delay_Func delay_ms
Definition bh1750.h:51
BH1750_I2C_Write_Func i2c_write
Definition bh1750.h:50
BH1750_I2C_Read_Func i2c_read
Definition bh1750.h:49
uint8_t address
Definition bh1750.h:52