极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: eagler8

【Arduino】108种传感器模块系列实验(129)---BH1750光照传感器

[复制链接]
 楼主| 发表于 2019-9-27 19:49:57 | 显示全部楼层
15.jpg
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-27 19:51:20 | 显示全部楼层
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验一百二十九:GY-302 数字量光强度检测 光照传感器 BH1750FVI 光线检测模块
  4. 项目:依据光亮度控制LED
  5. Module        UNO
  6. 5 VCC   ——   5V
  7. 6 GND  ——   GND
  8. 7 SCL    ——   A5
  9. 8 SDA   ——   A4
  10. 9 ADD  ——   NC
  11. */

  12. #include <Wire.h> //IIC库

  13. #include <math.h>

  14. int BH1750address = 0x23;//芯片地址为16位23

  15. byte buff[2];

  16. void setup()

  17. {
  18.   pinMode(13,OUTPUT);
  19.   Wire.begin();

  20.   Serial.begin(9600);

  21. }




  22. void loop()

  23. {

  24. int i;

  25. uint16_t val=0;

  26. BH1750_Init(BH1750address);

  27. delay(100);

  28. if(2==BH1750_Read(BH1750address))

  29.   {

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

  31.    Serial.print(val,DEC);     

  32.    Serial.println("[lx]");

  33.   }

  34. delay(150);
  35.    if (val<100)
  36.   {
  37.     digitalWrite(13,HIGH);
  38.   }
  39.   else
  40.   {
  41.     digitalWrite(13,LOW);
  42.   }
  43. }




  44. int BH1750_Read(int address) //

  45. {

  46.   int i=0;

  47.   Wire.beginTransmission(address);

  48.   Wire.requestFrom(address, 2);

  49.   while(Wire.available()) //

  50.   {

  51.     buff[i] = Wire.read();  // read one byte

  52.     i++;

  53.   }

  54.   Wire.endTransmission();  

  55.   return i;

  56. }




  57. void BH1750_Init(int address)

  58. {

  59.   Wire.beginTransmission(address);

  60.   Wire.write(0x10);//1lx reolution 120ms

  61.   Wire.endTransmission();

  62. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-27 20:07:12 | 显示全部楼层
16.jpg
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊 ( 浙ICP备09023225号 )

GMT+8, 2019-11-13 14:03 , Processed in 0.047210 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表