项目
arduino控制的光传感器
2015年6月1日通过蒂姆血性小子通过监控光相关电阻或光敏电阻的输出,Arduino可以知道它的亮度或暗度。当光线低于一定水平时,Arduino会打开两个led。
通过监控光相关电阻或光敏电阻的输出,Arduino可以知道它的亮度或暗度。当光线低于一定水平时,Arduino会打开两个led。
光相关电阻或光敏电阻是一种传感器,其电阻随着照射在其上的光量的增加而减小。当黑暗时,光敏电阻的电阻可能高达几个MΩ。然而,在光线较弱时,光敏电阻的电阻可能低至几百欧姆。
在这个实验中,我们将一个光敏电阻连接到一个Arduino模拟输入,并使用analogRead()函数读取值。根据Arduino读取的值,程序将设置引脚3 HIGH或LOW来打开或关闭LED夜灯。阈值为150。当模拟值读取小于150时,Arduino会打开led。当它读取的模拟值低于150时,Arduino将关闭led。
Arduino光传感器硬件要求
- 1 x光敏电阻
- 2 x领导
- 2个470欧姆电阻
- 1 × 1 ω电阻
- 1 x Arduino Mega2560
- 1 x电路试验板
- 跳线
接线图
您可以按照下图所示连接组件。将led连接到Arduino的引脚3。两个470欧姆电阻是限流电阻。光敏电阻的一引线连接到5V,另一引线连接到1 kohm电阻。10kohm电阻的另一引线连接到地。这就形成了一个分压器,分压器的输出连接到Arduino的引脚A1。当照射在光敏电阻上的光变强时,电阻减小,分压器的输出电压增加。当入射光变弱时,情况就相反了。
![](http://m.bettowin66th.com/uploads/projects/p2.png)
这里有一张设置的照片:
![](http://m.bettowin66th.com/uploads/projects/p6.png)
设置
- 通过1千欧姆电阻将LDR的两个端子中的一个连接到5V,另一个连接到GND。
- 将一根导线的一端连接到模拟引脚A1,另一端连接到1K电阻的非接地端子。
- 连接两个led并联,都通过一个470欧姆电阻和负极接地如图所示的电路图。
- 通过470欧姆电阻将引脚3连接到led的正端。
- 将所有接地端子连接到Arduino的GND引脚。
- 使用Arduino USB线连接Arduino,使用Arduino IDE软件将程序上传到Arduino。
- 通过电源、电池或USB线为Arduino板供电。
代码
const int领导= 3;//变量存储pin数void setup() {pinMode(led, OUTPUT);//配置引脚3作为输出}void loop() {int sensor_value = analogRead(A0);if (sensor_value < 150)// led状态改变的点{digitalWrite(led, HIGH);//设置led ON} else {digitalWrite(led,LOW);//关闭led}}
An_Arduino-controlled_light.zip
视频
自己试试这个项目吧!BOM。
它显然可以工作,然而,大多数mcu的ADC输入需要不超过10k欧姆阻抗的最佳结果。难道不应该在mcu和输入之间使用缓冲区或比较器吗?你为什么在设计中忽略了这一点?
谢谢。
Arduino Uno可以使用吗,还是必须是mega?