1.GY30簡(jiǎn)介
GY-30是一款內(nèi)置ROHM-BH1750FLV芯片的數(shù)字光照強(qiáng)度模塊,用于光照強(qiáng)度采集。
BH1750FVl是一種用于RC總線接口的數(shù)字環(huán)境光傳感器LC。該芯片最適合于獲取移動(dòng)電話液晶顯示器和按鍵背光功率的環(huán)境光數(shù)據(jù)。在高分辨率(1~65535 l×)范圍內(nèi)檢測(cè)是可行的。
2.特性
- IIC總線接口
- 光強(qiáng)數(shù)字轉(zhuǎn)換器
- 16位分辯率(1~65535)
- 直接數(shù)字輸出,省略復(fù)雜的計(jì)算,省略標(biāo)定
- 不區(qū)分環(huán)境光源,接近于視覺(jué)靈敏度的分光特性
3.應(yīng)用
手機(jī)、數(shù)碼相機(jī)、車載導(dǎo)航,PDA、LCD顯示等。
硬件接口及原理圖
4.程序設(shè)計(jì)
BH1750指令集
#define BHAddWrite 0x46 //寫地址
#define BHAddRead 0x47 //讀地址
#define BHPowDown 0x00 //關(guān)閉模塊
#define BHPowOn 0x01 //打開(kāi)模塊等待指令
#define BHReset 0x07 //重置數(shù)據(jù)寄存器僅在BHpowOn模式下有效
#define BHModeH1 0x10 //高分辨率 模式1 單位 11X 測(cè)量時(shí)間 120ms
#define BHModeH2 0x11 //高分辨率 模式2 單位 11X 測(cè)量時(shí)間 120ms
#define BHModeL 0x13 //低分辨率 單位4lx 測(cè)量時(shí)間16ms
#define BHSigModeH 0x20 //一次測(cè)量高分辨率模式1,然后轉(zhuǎn)到powerdown模式
#define BHSigModeH2 0x21 //同上類似
#define BHSigModeL 0x23 //同上類似
模塊驅(qū)動(dòng)時(shí)序
//發(fā)送起始信號(hào)
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ā)
}
//停止信號(hào)
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ā)送應(yīng)答信號(hào)**************************
**
**形參:u8 ack -- 0應(yīng)答,1非應(yīng)答
**
***************************************************/
void IIC_SendAck(u8 ack)
{
IIC_SDAout_Mode();//輸出模式
IIC_SCL=0;//告訴從機(jī),主機(jī)開(kāi)始發(fā)送數(shù)據(jù)
IIC_SDAout=ack&0x01;
delay_us(2);
IIC_SCL=1;//告訴從機(jī),主機(jī)數(shù)據(jù)發(fā)送完成
//方便下一次數(shù)據(jù)收發(fā)
delay_us(2);
IIC_SCL=0;
}
//獲取應(yīng)答信號(hào)
u8 IIC_Wait_Ack(void)
{
u8 cnt=0;
IIC_SDAIN_Mode();//配置為輸入模式
IIC_SDAout=1;
IIC_SCL=0;//告訴從機(jī),主機(jī)需要獲取數(shù)據(jù)
delay_us(2);
IIC_SCL=1;//從機(jī)數(shù)據(jù)發(fā)送完成,主機(jī)開(kāi)始讀取數(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開(kāi)始
IIC_Send_Byte(BHAddWrite); //寫地址
}while(IIC_Wait_Ack()); //等待響應(yīng)
IIC_Send_Byte(command); //發(fā)送命令
IIC_Wait_Ack(); //等待響應(yīng)
IIC_Stop(); //iic停止
}
BH1750初始化
void BH1750init(void)
{
IIC_Init();//GPIO初始化
bh_data_send(BHPowOn); //發(fā)送啟動(dòng)信號(hào)
bh_data_send(BHReset); //清除寄存器
bh_data_send(BHModeH1); //設(shè)置為模式2
delay_ms(180); //最高延時(shí)180ms
}
數(shù)據(jù)采集效果
審核編輯:湯梓紅
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753067 -
模塊
+關(guān)注
關(guān)注
7文章
2695瀏覽量
47431 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
38文章
6053瀏覽量
113619
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論