1.GY30簡介
GY-30是一款內(nèi)置ROHM-BH1750FLV芯片的數(shù)字光照強度模塊,用于光照強度采集。
BH1750FVl是一種用于RC總線接口的數(shù)字環(huán)境光傳感器LC。該芯片最適合于獲取移動電話液晶顯示器和按鍵背光功率的環(huán)境光數(shù)據(jù)。在高分辨率(1~65535 l×)范圍內(nèi)檢測是可行的。
2.特性
- IIC總線接口
- 光強數(shù)字轉(zhuǎn)換器
- 16位分辯率(1~65535)
- 直接數(shù)字輸出,省略復雜的計算,省略標定
- 不區(qū)分環(huán)境光源,接近于視覺靈敏度的分光特性
3.應用
硬件接口及原理圖



4.程序設計
BH1750指令集

#define BHAddWrite 0x46 //寫地址
#define BHAddRead 0x47 //讀地址
#define BHPowDown 0x00 //關(guān)閉模塊
#define BHPowOn 0x01 //打開模塊等待指令
#define BHReset 0x07 //重置數(shù)據(jù)寄存器僅在BHpowOn模式下有效
#define BHModeH1 0x10 //高分辨率 模式1 單位 11X 測量時間 120ms
#define BHModeH2 0x11 //高分辨率 模式2 單位 11X 測量時間 120ms
#define BHModeL 0x13 //低分辨率 單位4lx 測量時間16ms
#define BHSigModeH 0x20 //一次測量高分辨率模式1,然后轉(zhuǎn)到powerdown模式
#define BHSigModeH2 0x21 //同上類似
#define BHSigModeL 0x23 //同上類似
模塊驅(qū)動時序

//發(fā)送起始信號
void IIC_Start(void)
{
IIC_SDAout_Mode();//輸出模式
IIC_SCL=1;
IIC_SDAout=1;
delay_us(2);
IIC_SDAout=0;
IIC_SCL=0;//方便后續(xù)數(shù)據(jù)收發(fā)
}
//停止信號
void IIC_Stop(void)
{
IIC_SDAout_Mode();//輸出模式
IIC_SCL=0;
IIC_SDAout=0;
delay_us(2);
IIC_SCL=1;
delay_us(2);
IIC_SDAout=1;
}
/***********發(fā)送應答信號**************************
**
**形參:u8 ack -- 0應答,1非應答
**
***************************************************/
void IIC_SendAck(u8 ack)
{
IIC_SDAout_Mode();//輸出模式
IIC_SCL=0;//告訴從機,主機開始發(fā)送數(shù)據(jù)
IIC_SDAout=ack&0x01;
delay_us(2);
IIC_SCL=1;//告訴從機,主機數(shù)據(jù)發(fā)送完成
//方便下一次數(shù)據(jù)收發(fā)
delay_us(2);
IIC_SCL=0;
}
//獲取應答信號
u8 IIC_Wait_Ack(void)
{
u8 cnt=0;
IIC_SDAIN_Mode();//配置為輸入模式
IIC_SDAout=1;
IIC_SCL=0;//告訴從機,主機需要獲取數(shù)據(jù)
delay_us(2);
IIC_SCL=1;//從機數(shù)據(jù)發(fā)送完成,主機開始讀取數(shù)據(jù)
while(IIC_SDAin)
{
cnt++;
delay_us(1);
if(cnt>=100)return 1;
}
delay_us(2);
IIC_SCL=0;//方便下一次數(shù)據(jù)收發(fā)
return 0;
}
BH1750發(fā)送數(shù)據(jù)
void bh_data_send(u8 command)
{
do{
IIC_Start(); //iic開始
IIC_Send_Byte(BHAddWrite); //寫地址
}while(IIC_Wait_Ack()); //等待響應
IIC_Send_Byte(command); //發(fā)送命令
IIC_Wait_Ack(); //等待響應
IIC_Stop(); //iic停止
}
BH1750初始化
void BH1750init(void)
{
IIC_Init();//GPIO初始化
bh_data_send(BHPowOn); //發(fā)送啟動信號
bh_data_send(BHReset); //清除寄存器
bh_data_send(BHModeH1); //設置為模式2
delay_ms(180); //最高延時180ms
}
數(shù)據(jù)采集效果

審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2561文章
52198瀏覽量
761707 -
模塊
+關(guān)注
關(guān)注
7文章
2771瀏覽量
49050 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
40文章
6764瀏覽量
115272
發(fā)布評論請先 登錄
相關(guān)推薦
OLED屏幕和GY30光照傳感器接在IIC(I2C)總線上
STM32讀取GY30傳感器并通過串口輸出的方法
PLC常用程序設計語言簡介
STC_GY-30接線圖
使用LCD1602顯示GY30數(shù)字光強度模塊BH1750FVI采集的光照度

關(guān)于GY-30的簡介與驅(qū)動及如何操作

c++程序設計_基于proteus的51單片機開發(fā)實例30-模塊化程序設計

STM32讀取GY30傳感器并通過串口輸出

評論