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ù)字輸出,省略復(fù)雜的計算,省略標(biāo)定
- 不區(qū)分環(huán)境光源,接近于視覺靈敏度的分光特性
3.應(yīng)用
手機、數(shù)碼相機、車載導(dǎo)航,PDA、LCD顯示等。
硬件接口及原理圖



4.程序設(shè)計
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ā)送應(yīng)答信號**************************
**
**形參:u8 ack -- 0應(yīng)答,1非應(yīng)答
**
***************************************************/
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;
}
//獲取應(yīng)答信號
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()); //等待響應(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ā)送啟動信號
bh_data_send(BHReset); //清除寄存器
bh_data_send(BHModeH1); //設(shè)置為模式2
delay_ms(180); //最高延時180ms
}
數(shù)據(jù)采集效果

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
傳感器
+關(guān)注
關(guān)注
2576文章
55002瀏覽量
791147 -
模塊
+關(guān)注
關(guān)注
7文章
2837瀏覽量
53275 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
41文章
8029瀏覽量
120857
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
OLED屏幕和GY30光照傳感器接在IIC(I2C)總線上
最終效果展示OLED屏幕和GY30光照傳感器(BH1750FVI)都連接在一個IIC(I2C)總線上,所以只需要接4根線即可。獲取到的光照強度可以在OLED上實時顯示并通過串口打印。IIC是IO模擬
發(fā)表于 01-13 08:31
STM32讀取GY30傳感器并通過串口輸出的方法
串口顯示GY30.c#include "GY30.h"http://MPU IIC 延時函數(shù)void GY30_IIC_Delay(void){delay_us(2);}//初始化
發(fā)表于 02-22 06:04
PLC常用程序設(shè)計語言簡介
PLC常用程序設(shè)計語言簡介
在可編程控制器中有多種程序設(shè)計語言,它們是梯形圖語言、布爾助記符語言、功能表圖語言、功能模塊圖語言
發(fā)表于 06-17 14:07
?1509次閱讀
STC_GY-30接線圖
51單片機控制GY-30,里面有接線圖,程序在原來的基礎(chǔ)上多了不少注釋,以便大家理解為什么要這樣寫程序,僅適用于理解學(xué)習(xí)控制GY-30
發(fā)表于 03-05 15:34
?49次下載
使用LCD1602顯示GY30數(shù)字光強度模塊BH1750FVI采集的光照度
GY-30數(shù)字光強度模塊BH1750FVI資料。STC89c52用Lcd1602顯示光照度數(shù)據(jù)的例子程序、還有avr的例子程序。資料是網(wǎng)上找到的,這段時間在用這個
發(fā)表于 07-11 17:40
?34次下載
關(guān)于GY-30的簡介與驅(qū)動及如何操作
GY-30是一款內(nèi)置ROHM-BH1750FLV芯片的數(shù)字光照強度模塊。芯片內(nèi)置16bitAD轉(zhuǎn)換器,可直接數(shù)字輸出,測量光照強度范圍為0-65535lx(精度可選)。
c++程序設(shè)計_基于proteus的51單片機開發(fā)實例30-模塊化程序設(shè)計
1. 基于proteus的51單片機開發(fā)實例30-模塊化程序設(shè)計1.1. 實驗?zāi)康?b class='flag-5'>模塊化程序設(shè)計不知不覺我們的51單片機開發(fā)實例已經(jīng)進行到第
發(fā)表于 11-21 15:36
?13次下載
STM32讀取GY30傳感器并通過串口輸出
串口顯示GY30.c#include "GY30.h" //MPU IIC 延時函數(shù)void GY30_IIC_Delay(void){ delay_us(2);}//初始化IICvoid
發(fā)表于 12-27 19:29
?28次下載
GY30模塊簡介、特性、應(yīng)用及程序設(shè)計
評論