BH1750FVI是一個帶有16bit ADC的數位式光強度感測器, 採用I2C傳輸通訊, 可以感測1 - 65535 lx的光強度.

規格

控制時序

採用ADDR=L或ADDR=H的控制指令不同,此點要注意。

 

1.硬體操作

控制板:Arduino UNO

材料: GY-30模組(感測器BH1750FVI)

 

2.I/O規劃與Library

(1) 1個輸出控制腳位D13或接VCC,作為ADDRESS控制。2個硬體的IC2腳位,分別控制SDA A4及SCL A5。 

(2) Arduino Library: BH1750FVI

(引用此處原圖)

 

3. 程式

#include 

/*
  This is a simple example to test the BH1750 Light sensor
  
  Connect the sensor to a NodeMCU ESP8266 as follows:
  VCC  <-> 3V3 grijs
  GND  <-> Gnd paars
  SDA  <-> D2  groen
  SCL  <-> D1  blauw
  ADDR <-> RX  geel

  Arduino UNO
  VCC  <-> 3V3 grijs
  GND  <-> Gnd paars
  SDA  <-> A4  groen
  SCL  <-> A5  blauw
  ADDR <-> D13  geel
 */

#include 
#include 

// Settings
uint8_t ADDRESSPIN = 13;
BH1750FVI::eDeviceAddress_t DEVICEADDRESS = BH1750FVI::k_DevAddress_H;
BH1750FVI::eDeviceMode_t DEVICEMODE = BH1750FVI::k_DevModeContHighRes;

// Create the Lightsensor instance
BH1750FVI LightSensor(ADDRESSPIN, DEVICEADDRESS, DEVICEMODE);

void setup() 
{
  Serial.begin(115200);
  LightSensor.begin();  
  Serial.println("Running...");
}

void loop()
{
  uint16_t lux = LightSensor.GetLightIntensity();
 // Serial.print("Light: %d lux", lux);
 Serial.println(lux);
  delay(250);
}

時序分析

因採ADDR=H模式,因此運算結果為讀取值228/1.2=190,與UART顯示的數值一致。


arrow
arrow
    全站熱搜

    門外漢 發表在 痞客邦 留言(0) 人氣()