这篇教程中,我会展示Arduino如何使用光敏电阻传感器,轻松检测到光的变化。
这个装置非常有用,因为在很多项目中,测量光都非常重要。但是使用光敏电阻很简单,不需要太多的设备,大部分都是非常基本的零件,如果买了入门的电子元件套件,就足够了。
设备清单
我使用了LED只是用于显示,如果你只在命令行中读取输出信息的话,LED不是必须的。
必备设备
- Arduino Uno
- 光敏电阻
- 220欧姆电阻
- 面包板
- 面包板线
可选设备
- 100欧姆电阻x3
- 红色LED
- 绿色LED
- 黄色LED
Arduino光传感器接线
需要建立的电路相当简单,接线不会很麻烦。我会简单介绍一下里面的每一个部件,以及如何把它组装起来。
光传感器或也叫光敏电阻,用它来判断光线的明暗。当它处于暗的环境的时候,会有一个非常高的电阻,最高可达10兆欧。当它处于暗的环境的时候,它的电阻只有几百欧姆。
通常可以通过查看电阻的元器数据表来了解电阻的大致值。它很可能是指照度单位Lux,并提供给你在一定的Lux量下的大致电阻信息。
电路中的LED将代表当前光敏电阻的电阻量。
- 绿色表示当它处于低电阻(很多光)。
- 黄色代表它有中等阻力(阴暗)。
- 红色代表当它处于高电阻(非常暗)。
- 首先将Arduino的5V线连接到面包板上的正极轨上。
- 接下来,将地线引脚连接地线轨上。
- 现在,把光敏电阻放在面包板上。
将一根线从一端钩住正极轨。 在另一端有一根线回到A0(模拟)。 最后,在导线的另一端加一个220欧姆电阻,连接到地线轨。
- 将3个LED灯放在面包板上。绿色、黄色、红色
在每个LED上加一个100欧姆电阻,并将其接在地线上。 LED的另一根线接到Arduino上。红色接4针,黄色接3针,绿色接2针。
- 现在就完成了接线,可以部署代码了。如果大家有什么问题,请参考下图。
编写代码
和电路一样,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和光敏电阻实现了交互。如果你遇到任何麻烦,有反馈或其他任何问题,欢迎留言讨论。
欢迎转载,请留下出处链接:Labno3 » Arduino使用光敏电阻感受光线变化