本帖最后由 roc2 于 2018-6-13 10:10 編輯
轉載自:零知lab
1、簡介
不區分光源數字型環境光強度傳感器BH1750FVI是日本RHOM株式會社近些年推出的一種兩線式串行總線接口的集成電路,可以根據收集的光線強度數據來進行環境監測,其具有1~65535 lx的高分辨率,可支持較大范圍的光強度變化。它是為適應以移動電話手機為首的便攜式機器和液晶電視等的要求而開發出的具有優良光譜靈敏特性、16bit精度串行輸出的單片數字照度傳感器,其結構框圖如下:
151557ub8fcw7toi7bb7om.png (12.33 KB, 下載次數: 35)
下載附件
2018-6-11 17:29 上傳
注:這里的光強度是以 lx,下面給出一些常見的參考數據:
晚上: 0.001-0.02;
月夜: 0.02-0.3;
多云室內: 5-50;
多云室外: 50-500;
晴天室內: 100-1000;
夏天中午光照下: 大約10*6能量;
閱讀書籍時的照明度: 50-60;
家庭錄像標準照明度:1400;
2、編程示例參考
BH1750工作模式有6種,分為一次型和連續型兩類,兩類中有分別包含高精度1,、高精度2、低精度模式,一次型模式在讀取一次數據后就會進入到power down模式。幾種模式的測量時間和精度如下:
152449d28qenh2xzn9e9tk.png (17.55 KB, 下載次數: 42)
下載附件
2018-6-11 17:29 上傳
根據我們自己的需求我們選用合適的測量模式即可,具體的參數寄存器配置要參考技術手冊(附件中可下載)。
程序參考源碼如下:
(1)初始化:
- void bh1750_init(void)
- {
- twi_init(); //I2C 初始化
- //BH1750 按照手冊進行上電操作時序
- nrf_gpio_cfg_output(DVI_PIN);
- nrf_gpio_pin_clear(DVI_PIN);
- nrf_delay_us(2);
- nrf_gpio_pin_set(DVI_PIN);
-
- uint8_t write_buff[1] = {0};
-
- write_buff[0] = 0x10; //連續,高精度模式
-
- //這里我在硬件上把 ADDR 腳接地了,因此,BH1750_ADDR=0x46>>1
- twi_write(BH1750_ADDR, write_buff, 1);
- }
復制代碼 (2)數據采集
- void bh1750_get_sample(void)
- {
- uint8_t read_buff[2] = {0};
復制代碼
|