BH1750(GY-302)+ LED
- 一、前言
- 三、准备工作
- 四、程序代码
- 五、运行结果
- 六、结束语
一、前言
相信很多人都见过一种路灯,白天的时候它是不亮的,等到了晚上环境变暗时就开始它的照明工作了,不了解的人可能认为是人为操纵它工作的,其实不然,都说科技改变生活,现在路灯的照明工作已经能够实现全自动了,只要设定好程序它就能自行工作,而本篇文章就简单的介绍如何模拟实现自动路灯的工作。
三、准备工作
硬件:
- Arduino Uno开发板
- BH1750(GY-302)光照强度传感器一个
- LED(3~5V发光二极管)一个
- 杜邦线若干和面包板一个
软件:
- Arduino IDE(没安装可看我的另一篇博客点击跳转)
- BH1750支持库(BH1750,IDE内部自行下载安装即可)
电路图:
四、程序代码
#include <BH1750.h>
#define pin_led 7
BH1750 light_sensor;
float light = 0.0; //用于接收所获取的光照值
bool led_state = false; //led的状态
void setup() {
Serial.begin(9600); //设置串口波特率
pinMode(pin_led, OUTPUT); //设置引脚为输出模式(点亮LED)
light_sensor.begin(); //启动光照强度传感器(BH1750)工作
}
void loop() {
light = light_sensor.readLightLevel(); //获取光照强度值(0 ~ 65535)
led_state = light < 50 ? true : false; // 光强小于50把LED状态设为开
digitalWrite(pin_led, led_state ? HIGH : LOW);
//输出光照和led状态
Serial.print("光照:");
Serial.print(light); //串口输出光照值
Serial.print("Lx ");
Serial.print("LED:");
Serial.print(led_state ? "开\n" : "关\n"); //串口输出光照值
delay(500); //0.5s更新一次
}
五、运行结果
按照电路图接好线,把上面代码烧录进Arduino后,打开串口调试窗口,设置好波特率9600,可以看到获取到的光照强度和LED当前的状态。
可以试着用手挡住BH1750光照强度传感器的感应面,可以看到光照值在变化,当光照值小于50lux时会自动点亮LED。
模拟自动路灯
六、结束语
好咯,对于Arduino中BH1750(GY-302)+ LED模拟实现自动路灯的介绍就先到这里了。如果本文有帮助到您,留个痕迹,点个赞即可,我是风行男孩,咱们有缘再见!