光敏電阻是常用的光感元件,但是其感應(yīng)范圍比較窄,響應(yīng)速度慢,且受外界干擾較大。要接收強(qiáng)光時(shí),需要更加精準(zhǔn)的數(shù)字光照傳感器。本篇介紹GY-30模塊的使用,其板載BH1750數(shù)字光傳感器專用IC。
1. 光強(qiáng)傳感器介紹
GY-30模塊基于BH1750FVI芯片,模塊采用IIC通訊方式,內(nèi)置16bit ADC轉(zhuǎn)換器,可以直接數(shù)字輸出,光照強(qiáng)度范圍:0~65525 lx,勒克斯「lux,通常簡(jiǎn)寫為lx」是照度的國(guó)際單位。
主要特點(diǎn)
- 內(nèi)置16Bit ADC轉(zhuǎn)換器。
 - IIC通訊協(xié)議,直接輸出數(shù)字量。
 - 供電:3~5V。
 - 范圍:0~65535lx。
 - 不區(qū)分環(huán)境光源,接近視覺靈敏度的分光特性。
 - 板載通信電平轉(zhuǎn)換。
 
2. 實(shí)驗(yàn)材料
- Uno R3開發(fā)板
 - 配套USB數(shù)據(jù)線
 - 面包板及配套連接線
 - 數(shù)字光強(qiáng)傳感器GY-30模塊
 
3. 實(shí)驗(yàn)步驟
1. 根據(jù)原理圖搭建電路圖。
GY-30模塊的VCC、GND分別連接開發(fā)板的5V、GND,模塊的SDA、SCL分別連接開發(fā)板的A4、A5引腳,模塊的ADD引腳不連接。
實(shí)驗(yàn)原理圖如下圖所示:

實(shí)驗(yàn)原理圖
2. 新建sketch,拷貝如下代碼替換自動(dòng)生成的代碼并進(jìn)行保存。
1/*
 2 * BH1750
 3 * 數(shù)字光照傳感器實(shí)驗(yàn)
 4 */
 5
 6#include < Wire.h > //IIC
 7
 8int BH1750address = 0x23;
 9byte buff[2];
10uint16_t val = 0;
11
12void setup()
13{
14  Wire.begin();
15  BH1750_Init(BH1750address);
16  Serial.begin(9600);
17}
18
19void loop()
20{
21  if (2 == BH1750_Read(BH1750address))
22  {
23    if (buff[0] == 255 && buff[1] == 255)
24    {
25      val = 65535;
26    } else {
27      val = ((buff[0] < < 8) | buff[1]) / 1.2; //芯片手冊(cè)中規(guī)定的數(shù)值計(jì)算方式
28    }
29
30    Serial.print(val, DEC);
31    Serial.println("[lx]");
32  }
33  delay(500);
34}
35
36int BH1750_Read(int address) 
37{
38  int i = 0;
39  Wire.beginTransmission(address);
40  Wire.requestFrom(address, 2);
41  while (Wire.available())
42  {
43    buff[i] = Wire.read();  // receive one byte
44    i++;
45  }
46  Wire.endTransmission();
47  return i;
48}
49
50void BH1750_Init(int address)
51{
52  Wire.beginTransmission(address);
53  Wire.write(0x10);
54  Wire.endTransmission();
55}
                        電子發(fā)燒友App
                    
                
                
          
        