Arduino使用光敏电阻感受光线变化

这篇教程中,我会展示Arduino如何使用光敏电阻传感器,轻松检测到光的变化。

这个装置非常有用,因为在很多项目中,测量光都非常重要。但是使用光敏电阻很简单,不需要太多的设备,大部分都是非常基本的零件,如果买了入门的电子元件套件,就足够了。

设备清单

我使用了LED只是用于显示,如果你只在命令行中读取输出信息的话,LED不是必须的。

必备设备

  • Arduino Uno
  • 光敏电阻
  • 220欧姆电阻
  • 面包板
  • 面包板线

可选设备

  • 100欧姆电阻x3
  • 红色LED
  • 绿色LED
  • 黄色LED

Arduino光传感器接线

需要建立的电路相当简单,接线不会很麻烦。我会简单介绍一下里面的每一个部件,以及如何把它组装起来。

光传感器或也叫光敏电阻,用它来判断光线的明暗。当它处于暗的环境的时候,会有一个非常高的电阻,最高可达10兆欧。当它处于暗的环境的时候,它的电阻只有几百欧姆。

通常可以通过查看电阻的元器数据表来了解电阻的大致值。它很可能是指照度单位Lux,并提供给你在一定的Lux量下的大致电阻信息。

电路中的LED将代表当前光敏电阻的电阻量。

  • 绿色表示当它处于低电阻(很多光)。
  • 黄色代表它有中等阻力(阴暗)。
  • 红色代表当它处于高电阻(非常暗)。
  1. 首先将Arduino的5V线连接到面包板上的正极轨上。
  2. 接下来,将地线引脚连接地线轨上。
  3. 现在,把光敏电阻放在面包板上。

将一根线从一端钩住正极轨。 在另一端有一根线回到A0(模拟)。 最后,在导线的另一端加一个220欧姆电阻,连接到地线轨。

  1. 将3个LED灯放在面包板上。绿色、黄色、红色

在每个LED上加一个100欧姆电阻,并将其接在地线上。 LED的另一根线接到Arduino上。红色接4针,黄色接3针,绿色接2针。

  1. 现在就完成了接线,可以部署代码了。如果大家有什么问题,请参考下图。
Arduino-Light-Sensor-Circuit-Diagram

编写代码

和电路一样,Arduino光敏电阻的代码也很容易理解。

首先需要设置好所有的变量。在这个程序中,需要4个变量来存储引脚号,1个变量来存储模拟引脚的值。 这些变量都是整数类型的。

int greenLedPin = 2;
int yellowLedPin = 3;
int redLedPin = 4;

int lightSensorPin = A0;
int analogValue = 0;

设置所有的LED引脚作为输出。不需要担心设置模拟引脚的问题。

void setup() {
  pinMode(greenLedPin, OUTPUT);
  pinMode(yellowLedPin,OUTPUT);
  pinMode(redLedPin,OUTPUT);
}

这个循环相当简单,首先从模拟引脚获取值,这是光敏电阻。

拿到值后,进行比较,并打开相关的LED。比如说红色的LED在暗的时候会亮,黄色的是阴暗的,最后绿色的是亮的。这之后,我们延迟200ms,将所有的LED都调到低电平,再检查一遍。

void loop(){
  analogValue = analogRead(lightSensorPin);
  if(analogValue < 50){            
    digitalWrite(redLedPin, HIGH);
  }
  else if(analogValue >= 50 && analogValue <= 100){
    digitalWrite(yellowLedPin, HIGH);
  }
  else{
    digitalWrite(greenLedPin, HIGH);
  }
  delay(200);
  digitalWrite(greenLedPin, LOW);
  digitalWrite(yellowLedPin, LOW);
  digitalWrite(redLedPin, LOW);
}

完成代码后,只需将其上传到Arduino中,电路就会被注入灵魂。可能需要修改if语句中的值,因为这可能会根据你的光照条件而变化。

故障排除

如果你发现进展的不顺利,输入调试代码是很有用的。如果你不知道如何设置调试,一定要看看Arduino串行监控器教程。

我的建议是设置一个调试行,告诉LDR输入的值。

常见的问题是红色LED发出的光会导致光传感器认为有光。对此,最好将光传感器尽可能的远离红色LED。

灵机一动

有很多项目需要光敏电阻。

  • 可以在光敏电阻中使用光敏报警器,当房间变暗或变亮时,它就会提醒你。
  • 也可以使用与床边闹钟一样的设置,当它变亮时,声音会变大。
  • 可以使用LDR来激活灯光,当房间开始变黑时,可以使用LDR来激活灯光。
  • 也可以把它连接到鸡的孵化器上,这样,当早上天亮时,它就会自动打开。

希望你已经能够按照这个教程成功让Arduino和光敏电阻实现了交互。如果你遇到任何麻烦,有反馈或其他任何问题,欢迎留言讨论。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Arduino使用光敏电阻感受光线变化

赞 (0)

评论

5+1=