【雕爷学编程】Arduino动手做(212)---9合1 扩展板完成Arduino的第10类扩展实验之BH1750FVI 数字光强度模块光照传感器

在这里插入图片描述

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

【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百一十二:9合一多功能扩展板 DHT1器温湿度 LM3 温度5蜂鸣1兼容UNO

在这里插入图片描述

采取"Arduino程序代码"+“Mind+图形编程”+"Linkboy仿真编程’三者相结合的方式

互为补充,打好基础,促进理解

在这里插入图片描述

实验目录(Arduino动手做)
一、LED 实验
01 Blink:D13蓝色 LED 闪烁
02 Blink2:D12、D13红蓝色 LED 交替闪烁
03 Blink3:模拟爆闪警灯
04 Breath_LED:D9 全彩 LED 模拟红色呼吸灯
二、按键实验
05 Button:D2 按键控制 D13蓝色 LED
06 Button_Lock:D3 按键控制 D13 蓝色LED 自锁实验
三、电位器实验
07 RS232_AD:串口读取 A0 电位器采集数值(旋转角度270°输出0-3.3V/5V电压信号电位器阻值10K)
08 Rotation_LED:A0 电位器控制 D11 全彩 LED 蓝色端亮度
09 RC_Motor:A0 电位器控制 D7 输出口的舵机控制其转动角度(舵机需自备Arduino 需要外部供电)
四、RGB 全彩 LED 实验
10 LED_RGB_Text:全彩 LED 基本颜色变化
11 LED_RGB:全彩 LED 彩虹变化
五、红外传感器D6实验(红外遥控器需自备)
12 IRrelay:按红外遥控器任意键,可以控制 D13 LED 开关(控制距离1-8米,频率38KHz,兼容市面上大部分红外遥控器)
13 IRrecord:串口显示读取的红外遥控代码
六、温度传感器实验
14 LM35_RS232AD:串口显示 A2 口 LM35 温度传感器读取的温度(可测试室内外温度,范围-50-150°C,灵敏度好)
七、温湿度传感器实验
15 DHT11_Test:串口显示 D4 口 DHT11 温湿度传感器读取的温湿度数据(测温范围0-50°C,湿度范围20%-90%PH)
八、亮度传感器实验
16 Light Sensor:串口显示 A1 口光敏电阻采集的数值
17 Light_LED:A1 口光敏电阻控制 D13 LED 开关(感光比较灵敏,适合教学实验及民用设备)
九、蜂鸣器实验
18 Buzzer:D5 口无源蜂鸣器模拟救护车警笛(可发出简单的音乐声,音乐需要通过程序编写)
十、扩展实验
19 模拟超声波测距传感器(探测类I,IIC/I2C接口)
20 总线DS18B20温度传感器(数值类,接扩展板数字D7接口)
21 TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口)
22 GY-BMP280-3.3 大气压强高度计传感器模块 ( 数值类,IIC/I2C接口)
23 GY-NEO-6MV2新款飞控GPS卫星信号接收模块 (数值类,TTL接口)
24 5V低电平触发单路继电器模块(执行类,数字D7接口)
25 带驻极话筒4线制声音传感器模块(触发类,数字D7接口)
26 BH1750FVI 数字光强度模块光照传感器(数值类, IIC/I2C接口)
27 开源DFPlayer Mini TF卡MP3播放模块(输出执行器类D7/D8数字接口)
28 LCD1602液晶屏模块(输出显示器类, IIC/I2C接口)
29 人体红外热释电运动传感器模块 (触发类,数字D7接口)
30 DS1307时钟模块 Tiny RTC I2C模块(探测传感器类, IIC/I2C接口)
31 兼容HC-06从机蓝牙模块(通信与存储类,TTL接口)
32 0.96寸OLED12864液晶屏模块(显示器类,IIC接口)

在这里插入图片描述

十、扩展实验
26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)

知识点:BH1750FVI芯片
BH1750 是日本罗姆(ROHM)半导体开发的 16 位数字环境光传感器,可以在很宽的范围内准确测量光强度。其主要特性有:
I2C数字接口,支持速率最大400Kbps
输出量为光照度(Illuminance)
测量范围1~65535 lux,分辨率最小到1lux
低功耗(Power down)功能
屏蔽50/60Hz市电频率引起的光照变化干扰
支持两个I2C地址,通过ADDR引脚选择
较小的测量误差(精度误差最大值+/-20%)

在这里插入图片描述

BH1750FVI 数字光强度模块光照传感器
基于BH1750传感器GY-302模块非常适合测量照度。该传感器专为测量背景光而设计,灵敏度高,灵敏度光谱与人眼的灵敏度曲线重合。BH1750 通过通用 I2C 接口连接到 Arduino。BH1750 的内部逻辑无需任何复杂的计算,因为它直接输出有意义的勒克斯 (lx) 数字数据。使用 BH1750,您可以在 Arduino 上制作自制测光表。该传感器模块有一个分线板,由 BH1750 传感器和一个 16 位模数转换器组成。

在这里插入图片描述
在这里插入图片描述

模块主要特点
(1)采用ROHM原装BH1750FVI芯片
(2)电源:3-5v
(3)光强范围:0-65535 lx
(4)传感器内置16bitAD转换器
(5)直接数字输出,省去复杂的计算和校准
(6)不区分环境光,接近光谱特性的视觉灵敏度
(7)可以在很宽的亮度范围内进行1 lux的高精度测量
(8)标准NXP IIC通信协议
(9)模块包含通信级转换,5v微控制器直接连接

在这里插入图片描述

4、模块引脚说明
GND:Pin1 为接地引脚。
ADDR:设置I2C接口的地址。通过 I2C 选择地址后,将此引脚连接到地或 Vcc。
SDA:串行数据地址引脚通过 I2C 总线传输数据。
SCL:它是一个串行时钟引脚,用于通过 I2C 接口进行通信。
Vcc:在此引脚上施加 3.3V-5V。

在这里插入图片描述

在这里插入图片描述

第十类 扩展实验
26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)
项目:测试A3模拟接口,串口读取环境光照波形

Arduino实验开源代码

/*
Eagler8系列实验程序列表
第十类 扩展实验
26 BH1750FVI 数字光强度模块光照传感器(数值类 I2C接口)
项目:测试A3模拟接口,串口读取环境光照波形

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[i] = Wire.read();  
    i++;
  }
  Wire.endTransmission();  
  return i;
}

void BH1750_Init(int address)
{
    
    
  Wire.beginTransmission(address);
  Wire.write(0x10);
  Wire.endTransmission();
}

实验串口返回情况

在这里插入图片描述
实验开源图形编程(Mind+、编玩边学)

在这里插入图片描述
实验串口返回情况
在这里插入图片描述

实验开源仿真编程(Linkboy V5.33)

在这里插入图片描述
Arduino实验场景图

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41659040/article/details/132464407