步骤1:LDR
代表“光敏电阻”。这是一种电阻,其电阻值随强度或所照射的光量而变化。随着落在它上面的光量的增加,其电阻会降低,反之亦然。
我们制作了一个电路,为Arduino开发板给出1或0的逻辑。可以反转电路以更改逻辑。
任何微控制器或数字操作设备不能直接在模拟电压下运行。我们必须将模拟转换为数字值,为此我们使用ADC。 Arduino内置了ADC,因此我们只需插入跨接线即可。
它接受一个模拟值(在本例中为LDR两端的电压)并将其转换为10位数字。由于我们有10位,因此ADC的输出范围是0-1023(即1024个值2 ^ 10)。 0 – 5V之间的每个电压都映射到0-1023之间的值。为什么要到1023年?原因是我们的ADC的分辨率。在这里,我们用10位组合表示每个值。随着用于表示一个值的位数的增加,输出值将变得更加准确。
值位表示形式
0 – 1.25 00
1.25- 2.5 01
2.5-3.75 10
3.75-5 11
步骤3:PWM(脉冲宽度调制)
脉冲宽度调制是一种可以根据消息信号改变脉冲宽度的技术。在这种情况下,LED连接到arduino板的PWM输出引脚,并使用AnalogWrite()函数使该引脚上的脉冲宽度变化。脉冲宽度的变化可以看作是引脚上平均电压的变化。因此,尽管我们仅更改LED点亮或熄灭的时间,但由于视觉的持久性,好像我们正在改变LED两端的电压一样,导致其褪色和变亮。
第4步:所需的组件
现在是该项目所需的组件。我保证这些都是非常便宜和简单的物品(除了Arduino开发板本身:p)
Arduino Mega 2560开发板
LED(我用了白色和红色)
10 K电位计
220欧姆电阻
面包开发板或性能开发板(我都进行过测试)
跳线
步骤5:连接/电路
连接如下:
连接电阻的一端(我有一个1k的电阻…如果愿意,可以使用任何其他值。确保它不是太高或太低)到arduino板的5V引脚。将电阻器的另一端连接到LDR的一端。 LDR的另一端应连接到地面(GND)。
从电阻器和较早连接的LDR的连接处接一根线,然后将其连接到arduino板上的模拟输入5。
接下来,从板上的任何PWM引脚上接一根电线,然后将其连接到LED的阳极。将LED的阴极连接到电阻的一端,另一端连接到GND。
步骤6:编程
如果需要帮助,请附加使用arduino软件制作的文件。
步骤7:面包板测试
我测试了电路板上的电路,并通过稍微移动电位器来找到正确的调整。令我满意之后,我制作了一个下面的视频。现在是时候制作一个更可靠,更永久的电路板了。
步骤8:最终和完整模型
所以我焊接了一块更坚固的板进行最终实验。我在这里使用了红色LED,因为它显示的暗淡和亮度比晶体光更好。
-
Arduino
+关注
关注
188文章
6477浏览量
187993 -
mega2560
+关注
关注
0文章
17浏览量
5861 -
LDR
+关注
关注
0文章
99浏览量
7648
发布评论请先 登录
相关推荐
如何使用Arduino实现CAN总线通信呢
基于Arduino的串口通信项目
如何使用Arduino实现CAN总线通信
USB PD3.1协议芯片-LDR6020
![USB PD3.1协议芯片-<b class='flag-5'>LDR</b>6020](https://file1.elecfans.com/web2/M00/0A/82/wKgZomch04yAIGeWAALvv8OmL1A259.png)
光纤光强影响因素都有哪些
一种基于光强度相关反馈的波前整形方法
![一种基于<b class='flag-5'>光强度</b>相关反馈的波前整形方法](https://file1.elecfans.com/web2/M00/0B/3D/wKgaomcd-maAR2liAAAIzDC2aQU423.jpg)
16位数字输出型环境光强度传感器集成电路bh1750FVI中文数据手册
为什么无法在nodemcu和arduino mega之间交换数据?
如何将ESP2866更新到正确的AT Command固件?
使用ESP8266板和AT命令集构建一个多客户端HTTP服务器遇到的疑问求解
ESP8266为什么不响应Arduino?
ESP8266干扰arduino的ADC采样怎么解决?
关于镭神智能M10系列激光雷达抗环境光强度参数的严正声明
![关于镭神智能M10系列激光雷达抗环境<b class='flag-5'>光强度</b>参数的严正声明](https://file.elecfans.com/web2/M00/44/28/poYBAGKDa72ATVamAAAgZd2JgHc390.png)
评论