风筝
发表于: 2018-5-6 00:23:48 | 显示全部楼层

s_lasers.jpg


在本篇文章中,我们将主要介绍如何使用Arduino Uno开发板创建一个激光绊线,您将学习到如何设置激光绊线传感器,并且在光束断裂时触发执行器,本文中使用LED作为执行器。您还将学习到如何使用if / else循环、激光二极管和光敏电阻。


警告:激光可能对眼睛造成伤害,因此请勿直视光束。


使用到的材料

●    Arduino Uno R3开发板

●    “DOT”激光模块

●    20片光敏电阻套装

●    9V/1A的电源适配器

●    跳线

●    USB电缆(A到B)

●    面包板


电路原理图设计

这个项目的电路设计相当简单。电路包含有三部分:激光电源、光敏电阻接收器(传感器)和LED指示灯(执行器)。微控制器通过传感器接收来自外界的信息,并通过执行器传递信息或执行操作。我选择使用LED指示灯作为执行器,你也可以选择其他方式,如警铃、短信、甚至是门锁。


一直以来,我都是使用Fritzing软件来制作原理图,后者是非常有名的开源原理图捕获和PCB布线软件。您可以使用以下链接下载Fritzing:http://fritzing.org/home/

Laser-Tripwire_Fig1.png


电路的第一部分是激光二极管的电源。使用5V引脚(红线)向激光二极管供电。尽管我希望能够打开/关闭激光电源,但Arduino上的数字输出引脚不能为激光二极管提供足够的电源。负极导线将接地(黑线)。请确保您使用的激光二极管不需要限流电阻。如果需要,请串联一个合适的限流电阻。


接下来,我们将制作执行器(LED指示灯)。执行器的目的是告诉我们激光二极管光束已经断开。 LED和电阻应串联在引脚9(浅蓝色导线)和GND(黑线)之间。电阻用于限制通过LED的电流,并根据LED指示灯的亮度进行相应调整阻值大小,以防止烧毁。请记住,LED上较长的导线是正极,应连接到引脚9。


最后,电路的最后一部分是光敏电阻,即我们的传感器。光敏电阻是一种电阻,其阻值会根据电阻面上的光线而变化。使用一根导线连接到引脚7(浅蓝色导线),另一根导线连接到GND(黑色导线)。我使用的光敏电阻在光线照射时具有高电阻,而在没有光线时具有低电阻。

Laser-Tripwire_Photoresistor-Fig2.jpg


代码分析与说明

本项目使用的完整代码会在文章末尾给出。


代码的第一部分是定义相关引脚。这一步是可选的,我使用了一些描述性的名字重新定义了引脚,以便易于记忆和跟踪。另外,如果我改变了电路的连接方式,我只需要改变引脚定义,而不是改变提到引脚的每一行代码。

在我们的电路中,光敏电阻定义为“Pin 7”,LED定义为“Pin 9”。

Laser-Tripwire_Pin_Definitions_Fig3.png


setup()函数中,将LED引脚配置为数字输出。

Laser-Tripwire_Setup_Code_Fig4.png

我们还将光敏电阻配置为带上拉电阻(INPUT_PULLUP)的数字输入。我们创建的电路类似于下面的电路。在该电路中,上拉电阻和电源连接到MCU(Arduino)内部,“BUTTON”代表我们的光敏电阻。当激光二极管照射在光敏电阻上时,它具有高电阻,并且上拉电阻将输入的电压拉到数字高电平。当光束断裂时,光敏电阻的电阻下降,输入电压变为数字低电平。

Laser-Tripwire_Pullup_Resistor_Input_Circuit_Fig5.jpg


loop()函数中,我使用了一个的IF / ELSE语句,用来连续轮询光敏电阻数字输入。如果数字输入为高电平,关断LED输出;否则打开LED输出。

Laser-Tripwire_Loop_Code_Fig6.png


上传代码和运行

Laser-Tripwire_Arduino-Circuit-Fig7.jpg


将代码上传到Arduino开发板。 确保Arduino使用9V电源适配器连接,因为USB供电可能不足以为Arduino开发板和激光二极管供电。 程序开始后,激光二极管应该输出一束光。 如果光束照射在光敏电阻上,LED将熄灭。 当光束断裂时,LED点亮,表明激光绊线已经断开(Tripwire断裂)。

Laser-Tripwire_Fig8.jpg


Laser-Tripwire_Broken_Fig9.jpg


提示:当激光二极管发光并且光束断裂时,如果您的LED没有点亮,请使用万用表检查光敏电阻的电阻。 光敏电阻应该有千欧姆的数值,光照射到光敏电阻上,数值低到几百欧姆或更低。


代码

基于Arduino开发板的激光绊线项目的完整代码如下: main.txt (584 Bytes, 下载次数: 25)

。如有您在开发类似项目中遇到问题,敬请回帖,我会及时回复。

跳转到指定楼层
1153635534
发表于: 2018-11-1 20:02:22 | 显示全部楼层

我实现的时候有点问题,对亮度好像没反应
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 716 | 回复: 1508

精彩推荐



手机版|

GMT+8, 2025-2-23 07:07 , Processed in 0.045154 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表