如何利用Arduino实现激光绊线

这篇文章来源于DevicePlus.com英语网站的翻译稿。

如何利用Arduino实现激光绊线 激光绊线

 

ARDUINO激光绊线

 

目的

本教程描述了如何使用Arduino Uno制作一个激光绊线。如果您不熟悉Arduino平台,请参阅“Arduino设置教程”。

概述

在本教程中,您将学习如何设置激光绊线传感器,并在光束被阻断时触发执行器,在此例中为点亮LED。您将学习如何使用if/else循环、激光二极管以及光敏电阻。

警告: 激光可能对眼睛有害,切勿直视激光束。

设备

  1. Arduino Uno R3https://www.adafruit.com/product/50
  2. “DOT”激光模https://www.amazon.com/gp/product/B076HKH5NV/ref=od_aui_detailpages00?ie=UTF8&psc=1
  3. 20件光敏电阻套https://www.amazon.com/gp/product/B00H4ZSGXC/ref=od_aui_detailpages00?ie=UTF8&psc=1
  4. 9V、1A电源适配器 https://www.adafruit.com/product/63
  5. 跳线 https://www.amazon.com/GenBasic-Female-Solderless-Breadboard-Prototyping/dp/B01MS9GY7W/ref=sr_1_1_sspa?s=electronics&ie=UTF8&qid=1515705634&sr=1-1-spons&keywords=jumper+wires&psc=1
  6. USB电缆(A-to-B) https://www.amazon.com/AmazonBasics-USB-2-0-Cable-Male/dp/B00NH11KIK
  7. 面包板 https://www.amazon.com/Elegoo-Breadboard-Solderless-Distribution-Connecting/dp/B01EV6LJ7G/ref=sr_1_1_sspa?s=electronics&ie=UTF8&qid=1515705714&sr=1-1-spons&keywords=breadboard&psc=1

 

目录

  1. 电路设计
  2. 编写代码
    1. 引脚定义
    2. 设置
    3. 循环
  3. 上传并运行程序

 

程序

1.1 电路设计

这个项目的电路设计相当简单。电路分为三部分:激光电源、光敏电阻接收器(传感器)和LED指示灯(执行器)。一般来讲,单片机通过传感器接收来自外界的信息,并通过执行器传递信息或执行操作。我选择使用LED指示灯作为我的执行器,但是执行器可以是警报、短信,甚至是门锁。

我总是喜欢用Fritzing绘制原理图(图1:电路原理图)。Fritzing是一款开源原理图设计和PCB布线软件。这样,将来可以作为参考。Fritzing的下载地址(可选)如下:https://fritzing.org/home/

如何利用Arduino实现激光绊线 图1

图1:电路原理图

电路的第一部分是激光二极管的电源。您可以用5V引脚(红色导线)为激光二极管供电。我希望能够打开/关闭激光器,但是Arduino上的数字输出引脚无法为激光二极管提供足够的功率。负极应接地(黑色导线)。确保您的激光二极管不需要限流电阻。如果需要,请选择适当的阻值。

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

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

如何利用Arduino实现激光绊线 图2

图2:光敏电阻

2.0 编写代码

2.1 引脚定义

代码的第一部分是定义引脚。这一步是可选操作,但是为了便于记忆和跟踪,我为引脚添加了描述性名称。另外,如果我改变电路的连接方式,只需改变引脚定义即可,无需改变引用引脚编号的每一行代码。

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

如何利用Arduino实现激光绊线 图3

图3:引脚定义

2.2 设置

在代码的设置部分,我将LED引脚配置为数字输出。

如何利用Arduino实现激光绊线 图7

图4:设置代码

我们还将光敏电阻配置为带上拉电阻(INPUT_PULLUP)的数字输入。我们正在创建的电路与下面的电路类似,这是一种常用电气电路。在这种情况下,上拉电阻和电压源位于单片机(Arduino)内部,“按钮”则是我们的光敏电阻。当激光二极管照射在光敏电阻上时,它呈现高电阻,并且上拉电阻将输入的电压拉到数字高电平。当光束被阻断时,光敏电阻的电阻下降,输入电压变为数字低电平。

如何利用Arduino实现激光绊线 图5

图5:上拉电阻输入电路

2.3 循环

对于重复循环,我编写了一个连续查询光敏电阻数字输入的IF/ELSE语句。如果数字输入为高电平,LED输出关闭;否则LED输出开启。

如何利用Arduino实现激光绊线 图6

图6:循环代码

3.0 上传并运行程序

如何利用Arduino实现激光绊线 图7

图7:激光绊线的Arduino电路

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

如何利用Arduino实现激光绊线 图8

图8:激光绊线

如何利用Arduino实现激光绊线 图9

图9:绊线断开

提示:如果您的LED没有点亮,请使用万用表分别检查激光照射到光敏电阻上时光敏电阻的阻值以及光束阻断时光敏电阻的阻值。光照射到光敏电阻上时,光敏电阻的阻值应该在数千欧姆;没有照射时,阻值应为几百欧姆或更低。

附件:激光绊线代码

/*       Project: Laser Tripwire Tutorial      
 *       Written by: Chris Marella                 
 *       Date: January 24, 2018
 *       Version: 1.0   
 *       
  */

//Pin Definitions
const int photo = 7;
const int LED = 9;

void setup() {
  //Pin Configurations
  //Outputs
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);

  //Inputs
  pinMode(photo, INPUT_PULLUP);

}

void loop() {
  //if/else loop checks if photoresistor is high or low
  if(digitalRead(photo)==HIGH){
    digitalWrite(LED, HIGH);
  }else{
    digitalWrite(LED, LOW);
  }

}

 

DevicePlus 编辑团队
DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

利用接近传感器制作Arduino LED节日彩灯

用于多功能显示器的新型光响应LED

相关文章

  1. how-to-make-eobot_02_19

    “魅力四射”的机器人制作【下篇】

  2. “魅力四射”的机器人制作【上篇】

  3. 用Arduino和TOF距离传感器制作甜甜圈播放器【后篇】

  4. 用Arduino和TOF距离传感器制作甜甜圈播放器【前篇】

  5. 1-1

    Arduino电子制作总结!基于微控制器的电子制作基础之基础篇

  6. 用Arduino制作的太阳能电池板供电数字养殖箱【前篇】

    用Arduino制作的太阳能电池板供电数字养殖箱【前篇】

  7. 使用D/A转换器灵活控制电压并使用Arduino输出模拟信号的方法

  8. 在最后一刻停下来!用Arduino和距离传感器制作小鸡赛车!(第3篇•最终篇)

Arduino入门指南

基础知识

EMC


TECH INFO

  • Sugiken老师的电机驱动器课堂
  • 重点必看
  • 技术分享
  • Arduino入门指南
  • Raspberry Pi初学者指南
  • 技术动态
PAGE TOP