|
在本篇文章中,我们将主要介绍如何使用Arduino Uno开发板创建一个激光绊线,您将学习到如何设置激光绊线传感器,并且在光束断裂时触发执行器,本文中使用LED作为执行器。您还将学习到如何使用if / else循环、激光二极管和光敏电阻。
警告:激光可能对眼睛造成伤害,因此请勿直视光束。
使用到的材料 ● Arduino Uno R3开发板 ● “DOT”激光模块 ● 20片光敏电阻套装 ● 9V/1A的电源适配器 ● 跳线 ● USB电缆(A到B) ● 面包板
电路原理图设计 这个项目的电路设计相当简单。电路包含有三部分:激光电源、光敏电阻接收器(传感器)和LED指示灯(执行器)。微控制器通过传感器接收来自外界的信息,并通过执行器传递信息或执行操作。我选择使用LED指示灯作为执行器,你也可以选择其他方式,如警铃、短信、甚至是门锁。
一直以来,我都是使用Fritzing软件来制作原理图,后者是非常有名的开源原理图捕获和PCB布线软件。您可以使用以下链接下载Fritzing:http://fritzing.org/home/
电路的第一部分是激光二极管的电源。使用5V引脚(红线)向激光二极管供电。尽管我希望能够打开/关闭激光电源,但Arduino上的数字输出引脚不能为激光二极管提供足够的电源。负极导线将接地(黑线)。请确保您使用的激光二极管不需要限流电阻。如果需要,请串联一个合适的限流电阻。
接下来,我们将制作执行器(LED指示灯)。执行器的目的是告诉我们激光二极管光束已经断开。 LED和电阻应串联在引脚9(浅蓝色导线)和GND(黑线)之间。电阻用于限制通过LED的电流,并根据LED指示灯的亮度进行相应调整阻值大小,以防止烧毁。请记住,LED上较长的导线是正极,应连接到引脚9。
最后,电路的最后一部分是光敏电阻,即我们的传感器。光敏电阻是一种电阻,其阻值会根据电阻面上的光线而变化。使用一根导线连接到引脚7(浅蓝色导线),另一根导线连接到GND(黑色导线)。我使用的光敏电阻在光线照射时具有高电阻,而在没有光线时具有低电阻。
代码分析与说明
本项目使用的完整代码会在文章末尾给出。
代码的第一部分是定义相关引脚。这一步是可选的,我使用了一些描述性的名字重新定义了引脚,以便易于记忆和跟踪。另外,如果我改变了电路的连接方式,我只需要改变引脚定义,而不是改变提到引脚的每一行代码。 在我们的电路中,光敏电阻定义为“Pin 7”,LED定义为“Pin 9”。
在setup()函数中,将LED引脚配置为数字输出。
我们还将光敏电阻配置为带上拉电阻(INPUT_PULLUP)的数字输入。我们创建的电路类似于下面的电路。在该电路中,上拉电阻和电源连接到MCU(Arduino)内部,“BUTTON”代表我们的光敏电阻。当激光二极管照射在光敏电阻上时,它具有高电阻,并且上拉电阻将输入的电压拉到数字高电平。当光束断裂时,光敏电阻的电阻下降,输入电压变为数字低电平。
在loop()函数中,我使用了一个的IF / ELSE语句,用来连续轮询光敏电阻数字输入。如果数字输入为高电平,关断LED输出;否则打开LED输出。
上传代码和运行
将代码上传到Arduino开发板。 确保Arduino使用9V电源适配器连接,因为USB供电可能不足以为Arduino开发板和激光二极管供电。 程序开始后,激光二极管应该输出一束光。 如果光束照射在光敏电阻上,LED将熄灭。 当光束断裂时,LED点亮,表明激光绊线已经断开(Tripwire断裂)。
提示:当激光二极管发光并且光束断裂时,如果您的LED没有点亮,请使用万用表检查光敏电阻的电阻。 光敏电阻应该有千欧姆的数值,光照射到光敏电阻上,数值低到几百欧姆或更低。
代码 基于Arduino开发板的激光绊线项目的完整代码如下:
main.txt
(584 Bytes, 下载次数: 25)
。如有您在开发类似项目中遇到问题,敬请回帖,我会及时回复。
|