kaiyun官方注册
您所在的位置: 首页> 电子元件> 其他> 教程:制作一个带有Arduino的LDR的光传感器

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

2022-11-23
来源:circuitdigest
关键词: LDR Arduino 光传感器

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

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

  所需材料

  Arduino UNO

  LDR (光相关电阻)

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

  指示灯 - 1

  继电器模块 - 5v

  灯泡/节能灯

  连接线

  面包板

  电路图

poYBAGN3PqyANeGIAABxa2SlDOo730.png

  LDR

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

99.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 控制继电器

98.JPG

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

97.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”);

  }

  }



更多信息可以来这里获取==>>电子技术应用-AET<<

mmexport1621241704608.jpg

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map