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

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

通知公告
编辑观点
理事会
参考资料
版权声明

凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。

《网络安全与数据治理》(原《信息技术与网络安全》)编辑部