0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用环境光传感器控制灯光

李超 来源:DevicePlus 作者:DevicePlus 2023-02-23 09:33 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

当太阳落山时,您的房子会开始变暗,您可能需要打开几盏灯才能看清。那么,如果这些灯光可以自动打开不是更方便吗?使用光敏电阻传感器Arduino,您就可以实现根据周围的环境光线变化对照明灯、百叶窗或者其他任何物件进行控制了。

光敏电阻的工作原理

在本项目中,我们的重点在于介绍光敏电阻以及如何将它们整合到您的项目中。光敏电阻是一种电阻器,它会根据照射的光亮来改变其电阻值。典型的电阻器以恒定的电阻值来阻止电子在电路中的流通,而光敏电阻会在受到更多的光线照射时允许更高的电压通过电路。反而言之,当受到较少的光线照射时,其电阻值会增加。

可以通过Arduino的模拟引脚读取其电阻值,读数范围在0到1023之间。有了这些信息,您可以使您的项目对明亮的日光、黄昏或没有光亮的夜晚作出不同的响应,比如在外面很亮的时候打开百叶窗,或者在天黑的时候打开照明灯。
pYYBAGPy0riAXs3vAAAVi-eHsKQ989.jpg

光敏电阻体积小,价格便宜,而且通常在入门套件和其他传感器套件里都包含该组件。如果您买过电子套件,可能会发现其中就有一两个光敏电阻。为了演示它们是如何工作的,我们将控制两个LED,当有光线时其中一个亮起,没有光线时另外一个亮起。

所需组件

在本项目中,不需要很多标准电子套件中以外的东西。但是,如果您想要使用光敏电阻控制大型项目则需要注意准备一些特殊组件。例如,如果您想控制百叶窗,就需要准备一些伺服,如果您想要控制一盏灯,那么需要使用一个继电器。现在,我们将仅介绍如何使用该传感器。

Arduino Uno pYYBAGPy0keAIANsAAA5UDjpMbU093.png
Arduino IDE poYBAGPy0ryAIDUTAAAu1K0ZSy8062.png
两个LED
功能完好,具有不同颜色!
poYBAGPy0r6AR_hLAAAbcpN9W8Y982.jpg
光敏电阻 poYBAGPy0sCAVOmsAAAZAW1gRcQ057.jpg
一个220 欧姆电阻
进一步降低通过光敏电阻的阻值,将其降低到更有效的水平
poYBAGPy0sOABcqwAAANEeXO6C0812.jpg
两个100 欧姆 电阻
防止烧坏LED

如果您没有一根躺在某个角落里的USB数据线,还需要购买USB数据线。

在本项目的原型构建中使用面包板也会很有帮助。同样,所有这些材料通常都可以在任何入门电子套件中找到,因此请事先查看您是否已经具备这些组件。

代码

在本项目中,我们将使用Arduino上的一个引脚读取光敏电阻阻值,并使用两个引脚来控制两个独立的LED。当光敏电阻检测到高于某个阈值的光线强度时,其中一个LED将会亮起。当光线强度低于该阈值时,另一个LED将会亮起。实现以上功能的全部代码如下所示:

int redLED = 7;
int blueLED = 8;
int photoresistorPIN = A0;
int lightValue = 0;

void setup() {
pinMode(redLED, OUTPUT);
pinMode(blueLED,OUTPUT);
Serial.begin(9600);
}

void loop(){
lightValue = analogRead(photoresistorPIN);
Serial.println(“Light value: “);
Serial.println(lightValue);
if(lightValue < 50){
digitalWrite(redLED, HIGH);
}
else{
digitalWrite(blueLED, HIGH);
}
delay(200);
digitalWrite(redLED, LOW);
digitalWrite(blueLED, LOW);
}

这段代码中有几个部分需要解释,我们从要设置的变量开始。

int redLED = 7;
int blueLED = 8;
int photoresistorPIN = A0;
int lightValue = 0;

在这里,我们将红色LED分配给引脚7,蓝色LED分配给引脚8。这些可以分配给Arduino上的任何数字引脚。接下来,我们将光敏电阻分配给A0。该引脚必须分配给六个模拟引脚之一,因为它需要读取来自光敏电阻的模拟值。

最后,我们将创建一个名为lightValue的变量来存储光敏电阻返回的值。

void setup() {
pinMode(redLED, OUTPUT);
pinMode(blueLED,OUTPUT);
Serial.begin(9600);
}

在setup()部分中,前两行用于将红色和蓝色LED 引脚分配为输出引脚。

我们还将初始化串行监视器,这样就可以查看光敏电阻的返回值。这在设定用于切换两个LED开关的阈值时会很有用。

根据设置项目时所在房间的环境光强度,您可以基于自己的需要对阈值进行调整。

void loop(){
lightValue = analogRead(photoresistorPIN);
Serial.println(“Light value: “);
Serial.println(lightValue);
if(lightValue < 50){
digitalWrite(redLED, HIGH);
}
else{
digitalWrite(blueLED, HIGH);
}
delay(200);
digitalWrite(redLED, LOW);
digitalWrite(blueLED, LOW);
}

在loop()部分中,第一行用于读取光敏电阻的模拟值,并将其分配给lightValue变量。然后该值将会被立即打印到串行监视器上。

接下来,如果光传感器读取的值低于50,循环代码中的一部分代码将会被启用,红色LED灯将会亮起,如果值高于50,则蓝色LED将会亮起。如果50对您的环境光线来说太低,红灯一直亮起,那么请使用串行监视器为您的项目设定一个合适的值。

接线

现在您已经理解了代码,接下来请将其上传到您的Arduino。然后,我们将开始设置接线—幸运的是,这非常简单,并且很容易将其添加到您的其他项目中。要完成接线设置,请按照下列步骤操作:

● 将蓝色LED的长端连接到Arduino的引脚8。将LED的短端连接到一个100欧姆的电阻上,然后将该电阻的另一端连接到GND。
● 对红色LED重复上一步骤,LED连接到Arduino上的引脚7。
● 将光敏电阻的一端连接到5V引脚,另一端连接到引脚A0。此外,在光敏电阻的第二个端口连接一个220欧姆的电阻,并将该电阻连接到GND。
● 如果需要,将之前的电路与面包板上的正负轨连接。

完成所有接线后,您可以将Arduino插入电源以启动项目。在光敏电阻上挥动您的手,将会从蓝色LED亮起切换到红色LED亮起。如果只有其中一个LED保持亮起的状态,请尝试调整草图中if()语句中的值,直到传感器按照预期方式进行工作。当您对结果感到满意的时候,项目就完成了!

pYYBAGPbhjqAbi1JAAAGd6_rQT0867.png

DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 光传感器
    +关注

    关注

    3

    文章

    167

    浏览量

    29829
  • Arduino
    +关注

    关注

    187

    文章

    6453

    浏览量

    185915
收藏 人收藏

    评论

    相关推荐

    近似人眼感知的传感器——环境传感器

    近似人眼感知的传感器——环境传感器   电子发烧友网报道(文/李诚)环境
    的头像 发表于 10-29 09:33 8197次阅读

    环境传感器的介绍

    会从被照射物体上发射回来。反射回来的红外被红外传感器探测到,与物体的接近程度与探测到的红外的量级成正比。应用包括接近探测;反射物体感测,环境
    发表于 11-05 16:11

    光电式传感器的识别与检测

    的特性如图2所示。它的特性是,当周围较暗时,其电阻值变大;而当周围较亮时,它的电阻值又变小。  光电式传感器在汽车灯光控制器上的应用如图3所示。
    发表于 11-15 15:02

    你是我的眼:环境传感器

    传感器? 用环境传感器实现车载屏幕亮度自动化调节 TI官网上的参考设计: 汽车自动调光镜参考设计 光学传感器
    发表于 08-07 04:45

    Maxim推出环境传感器

    Maxim Integrated Products, Inc.推出Santa Cruz (MAXREFDES23#)环境传感器(ALS),能够在工厂快速配置和监测多路红、绿、蓝(RGB)可见光和红外(IR)信号
    发表于 05-06 06:55

    如何选择一款环境传感器环境传感器有哪些应用?

    环境传感器的基本原理是什么?如何选择一款环境传感器环境
    发表于 05-12 07:24

    环境传感器是如何工作的

    当夜幕降临,汽车仪表盘上有一双“眼睛”默默地感知周围的光线,从而自动调节背光亮度,以保证用户最佳的驾驶体验且降低功耗。这双神奇的 “眼睛”便是今天的主角---环境传感器。为什么要使用环境
    发表于 11-10 07:16

    MAX44007环境传感器

    MAX44007环境传感器提供I²C数字输出,理想用于智能手机、笔记本电脑、工业传感器等便携产品。器件工作电流小于1µA,是业内功耗最低的环境
    发表于 07-08 11:59 1491次阅读
    MAX44007<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>

    环境传感器封装近距离传感器的优点

    本文档内容用环境传感器封装近距离传感器的优点,供网友参考。
    发表于 09-14 18:50 29次下载
    用<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>封装近距离<b class='flag-5'>传感器</b>的优点

    环境传感器有什么用_环境传感器的作用

    环境传感器可以感知周围光线情况,并告知处理芯片自动调节显示背光亮度,降低产品的功耗。例如,在手机、笔记本,GPS等移动等手持设备应用中,显示
    发表于 09-17 10:50 1.1w次阅读

    digilentPmodALS:环境传感器介绍

    作为一个环境传感器,DigilentPmodALS可以用来演示到数字的传感
    的头像 发表于 12-02 11:25 2703次阅读
    digilentPmodALS:<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>介绍

    环境传感器发展趋势

    环境传感器是一种通过感知周围光照强度,实时输出电信号的一种传感器环境
    的头像 发表于 11-01 09:38 2940次阅读

    为什么要使用环境传感器

    的驾驶体验且降低功耗。这双神奇的 “眼睛”便是今天的主角---环境传感器。 为什么要使用环境传感器
    的头像 发表于 01-14 10:22 3000次阅读
    为什么要使用<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>

    你是我的眼:环境传感器

    你是我的眼:环境传感器
    发表于 11-01 08:26 1次下载
    你是我的眼:<b class='flag-5'>环境</b><b class='flag-5'>光</b><b class='flag-5'>传感器</b>

    红外水位传感器能否用于黑暗环境中,灯光环境光是否受影响?

    红外传感器的工作原理根据反射情况判断传感器处于水里还是空气中。 因此置于密闭类、黑暗的环境中使用都不会受到任何影响。常规的LED灯光环境
    的头像 发表于 08-31 09:00 1628次阅读
    红外水位<b class='flag-5'>传感器</b>能否用于黑暗<b class='flag-5'>环境</b>中,<b class='flag-5'>灯光环境</b>光是否受影响?