【雕爷学编程】Arduino动手做(69)---GY-30环境光传感器

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)与否,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

实验六十九: GY-30 数字光强度模块光照传感器(BH1750FVI芯片)


BH1750FVI

是日本罗姆(ROHM)半导体生产的数字式环境光传感IC,内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明"lx"。当物体在均匀的光照下它能够在每平方米获得1lx的光通量,它们的光强度是1lx。有时为了充分利用光源,你可以增加一个光源的反射装置。那样在某些方向就能获得更多的光通量,以增加被照表面的亮度。


光亮度

光亮度(luminance)又称光照强度,发光率,是指一个表面的明亮程度,以L表示, 即从一个表面反射出来的光通量。或者说是指在某方向上单位投影面积的面光源沿该方向的发光强度。表示发光面明亮程度的,指发光表面在指定方向的发光强度与垂直于指定方向的发光面的面积之比,单位是坎德拉/平方米。对于一个漫散射面,尽管各个方向的光强和光通量不同,但各个方向的亮度都是相等的。电视机的荧光屏就是近似于这样的漫散射面,所以从各个方向上观看图像,都有相同的亮度感。不同物体对光有不同的反射系数或吸收系数。


BH1750FVI主要特性

I2C数字接口,支持速率最大400Kbps

输出量为光照度(Illuminance)

测量范围1~65535 lux,分辨率最小到1lux

低功耗(Power down)功能

屏蔽50/60Hz市电频率引起的光照变化干扰

支持两个I2C地址,通过ADDR引脚选择

较小的测量误差(精度误差最大值+/-20%)


BH1750FVI内部结构图

BH1750FVI特点与功能

支持I2CBUS接口

接近视觉灵敏度的光谱灵敏度特性

输出对应亮度的数字值

对应广泛的输入光范围(相当于1-65535lx)

通过降低功率功能,实现低电流化

通过50Hz/60Hz除光噪音功能实现稳定的测定

支持1.8v逻辑输入接口

无需其他外部件

光源依赖性弱

有两种可选的I2Cslave地址

可调的测量结果影响较大的因素为光入口大小

使用这种功能计算1.1lx到100000lx马克斯/分钟的范围

最小误差变动在±20%

受红外线影响很小


GY-30 数字光强度模块光照传感器(BH1750FVI芯片)

采用ROHM原装BH1750FVI芯片

供电电源  :3-5v

光照度范围:0-65535 lx

传感器内置16bitAD转换器

直接数字输出,省略复杂的计算,省略标定

不区分环境光源

接近于视觉灵敏度的分光特性

可对广泛的亮度进行1勒克斯的高精度测定

GY-30 数字光强度模块电原理图


电路连接

由于模块本身已经带有了3.3V稳压芯片和I2C电平转换电路,因此可将模块直接与UNO板的I2C接口相连。对于UNO板,I2C总线的SDA信号线对应A4管脚,SCL时钟线对应A5管脚。


测量程序步骤


指令集合结构



/*

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

实验六十九:GY-30 数字光强度模块光照传感器(BH1750FVI芯片)

Module            UNO

5 VCC  <----->  5V

6 GND  <----->  GND

7 SCL  <----->  A5

8 SDA  <----->  A4

9 ADD  <----->  NC

*/

#include <Wire.h> 

#include <math.h> 

int BH1750address = 0x23; 

byte buff[2];

void setup()

{

 Wire.begin();

 Serial.begin(57600);

}

void loop()

{

 int i;

 uint16_t val=0;

 BH1750_Init(BH1750address);

 delay(200);

 if(2==BH1750_Read(BH1750address))

 {

  val=((buff[0]<<8)|buff[1])/1.2;

  Serial.print(val,DEC);   

  Serial.println("[lx]"); 

 }

 delay(150);

}

int BH1750_Read(int address) 

{

 int i=0;

 Wire.beginTransmission(address);

 Wire.requestFrom(address, 2);

 while(Wire.available()) 

 {

  buff = Wire.read(); 

  i++;

 }

 Wire.endTransmission(); 

 return i;

}

void BH1750_Init(int address) 

{

 Wire.beginTransmission(address);

 Wire.write(0x10);

 Wire.endTransmission();

 delay(500);

}


/*

【Arduino】168种传感器模块系列实验(资料+代码+图形+仿真)

实验六十九:GY-30 数字光强度模块光照传感器(BH1750FVI芯片)

Module        UNO

VCC  <----->  5V

GND  <----->  GND

SCL  <----->  A5

SDA  <----->  A4

ADD  <----->  NC

程序之二,串口打印光照度的波形

*/


#include <Wire.h> 

#include <math.h> 

int BH1750address = 0x23; 

byte buff[2];

void setup()

{

 Wire.begin();

 Serial.begin(57600);

}

void loop()

{

 int i;

 uint16_t val=0;

 BH1750_Init(BH1750address);

 delay(200);

 if(2==BH1750_Read(BH1750address))

 {

  val=((buff[0]<<8)|buff[1])/1.2;

  Serial.println(val,DEC);   

 }

 delay(150);

}

int BH1750_Read(int address) 

{

 int i=0;

 Wire.beginTransmission(address);

 Wire.requestFrom(address, 2);

 while(Wire.available()) 

 {

  buff = Wire.read(); 

  i++;

 }

 Wire.endTransmission(); 

 return i;

}

void BH1750_Init(int address) 

{

 Wire.beginTransmission(address);

 Wire.write(0x10);

 Wire.endTransmission();

 delay(500);

}


上图是傍晚自然光的变化曲线,下图是用手电筒照射模块的波形


实验开源图形编程(Mind+、编玩边学)


实验开源仿真编程(linkboy3.7)


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容