全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > MEMS传感器 >

制作一个带有Arduino的LDR的光传感器

时间:2022-11-18 16:13

人气:

作者:admin

标签: 光传感器  arduino  LDR 

导读:在这个电路中,我们正在制作一个使用带有Arduino的LDR的光传感器,根据房间或外部区域的光线条件控制灯泡/ CFL。...

我们都希望我们的家用电器根据某些条件自动控制,这称为家庭自动化。今天我们要控制外面基于黑暗的光,当外面黑暗时灯会自动打开,当它变亮时关闭。为此,我们需要一个光传感器来检测光线状况,并需要一些电路来控制光传感器。这就像黑暗和明亮探测器电路,但这次我们使用Arduino来更好地控制光线。

在这个电路中,我们正在制作一个使用带有Arduino的LDR的光传感器,根据房间或外部区域的光线条件控制灯泡/ CFL。

所需材料

Arduino UNO

LDR (光相关电阻

电阻器 (100k-1;330ohm-1)

指示灯 - 1

继电器模块 - 5v

灯泡/节能灯

连接线

面包板

电路图

poYBAGN3PqyANeGIAABxa2SlDOo730.png

LDR

LDR 是光相关电阻器。LDR由半导体材料制成,使其具有光敏特性。有很多类型,但有一种材料很受欢迎,那就是硫化镉(CdS)。这些LDR或光敏电阻器的工作原理是“光导率”。现在这个原理说的是,每当光落在LDR表面(在这种情况下)时,元件的电导就会增加,或者换句话说,当光落在LDR表面时,LDR的电阻就会下降。LDR电阻降低的这一特性之所以得以实现,是因为它是表面使用的半导体材料的特性。

LDR.jpg

我们之前使用LDR制作了许多电路,这些电路使用LDR根据需要使灯光自动化。

使用Arduino的LDR控制LED的工作

根据电路图,我们使用LDR和100k电阻制作了分压器电路。分压器输出馈送到 Arduino 的模拟引脚。模拟引脚感测电压并为Arduino提供一些模拟值。模拟值根据LDR的电阻而变化。因此,当光落在LDR上时,它的电阻会降低,因此电压值会增加。

光强度 ↓ - 电阻↑ - 模拟引脚电压↓ -灯亮起

根据Arduino代码,如果模拟值低于700,我们认为它是黑暗的并且灯打开。如果该值高于 700,我们认为它是明亮的,并且灯关闭。

代码说明:

在这里,我们定义了继电器、LED 和 LDR 的引脚。

#define relay 10
int LED = 9;
int LDR = A0;
将 LED 和继电器设置为输出引脚,将 LDR 设置为输入引脚。

pinMode(LED, OUTPUT);
pinMode(relay, OUTPUT);
pinMode(LDR, INPUT);
通过 Arduino 的 A0 引脚读取电压模拟值。该模拟电压将根据LDR的电阻增加或减少。

int LDRValue = analogRead(LDR);
给黑暗和明亮的条件。如果该值小于 700,则表示颜色较暗,LED 或指示灯亮起。如果该值大于 700,则它很亮,LED 或灯熄灭。

if (LDRValue <=700)
{
digitalWrite(LED, HIGH);
digitalWrite(relay, HIGH);
Serial.println("It's Dark Outside; Lights status: ON");
}
else
{
digitalWrite(LED, LOW);
digitalWrite(relay, LOW);
Serial.println("It's Bright Outside; Lights status: OFF");
}

使用 LDR 和 Arduino 控制继电器

pYYBAGN3PlmAOFULAAE5mlHgm8Y295.png

我们可以控制家庭灯或任何电气设备,而不是根据亮度和暗度控制LED。我们所要做的就是连接继电器模块并设置参数以根据光的强度打开和关闭任何交流电器。如果该值低于 700,这意味着它为暗,则继电器运行并且灯亮起。如果该值大于 700(表示其白天或明亮),则继电器将不运行,指示灯保持熄灭。 在此处了解有关继电器以及如何将交流设备连接到继电器的更多信息。

pYYBAGN3PrWAc4HXAAC9chO0GU0734.jpg

#define relay 10

int LED = 9;

int LDR = A0;


void setup()

{

Serial.begin(9600);

pinMode(LED, OUTPUT);

pinMode(relay, OUTPUT);

pinMode(LDR, INPUT);

}


void loop() {

int LDRValue = analogRead(LDR);

Serial.print("sensor = ");

Serial.print(LDRValue);


if (LDRValue <=700) 

{

digitalWrite(LED, HIGH);

digitalWrite(relay, HIGH);

Serial.println("It's Dark Outside; Lights status: ON");

}

else

{

digitalWrite(LED, LOW);

digitalWrite(relay, LOW);

Serial.println("It's Bright Outside; Lights status: OFF");

}

}


温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信