第三十六篇、基于Arduino uno,获取红外寻迹传感器的原始值——结果导向_怎么检测红外寻迹模块返回值-程序员宅基地

技术标签: arduino单片机的实际应用  arduino  嵌入式硬件  单片机  

0、结果

说明:先来看看串口调试助手显示的结果,没有障碍物的时候串口打印1,有障碍物的时候串口打印0,如果是你想要的,可以接着往下看。


1、外观

说明:虽然红外寻迹传感器形态各异,但是原理和代码都是适用的。


2、连线

说明:只需要连接三根线。
uno————红外寻迹传感器

 3、源程序

说明:采用非阻塞方式编写,一定时间检测一次传感器的值,并将对应功能进行函数化,方便移植。

/*
  wire:
  VCC------VCC
  GND------GND
    2------OUT*/
/****************************************infrared part****************************************/
#define infraredPin 2
#define infraredTimeInterval 100                            //Detect the time interval of a trip
unsigned long infraredTimes = 0;                            //Record the device running time//Define a pin
boolean infraredVal = false;                                //Define a variable
/****************************************set up and loop part*********************************/
void setup() {
  Serial.begin(9600);                                   //Example Set the baud rate of the serial port to 9600

  pinMode(infraredPin, INPUT_PULLUP);                       //The pin is set to pull-up input

  //digitalWrite(relayPin, HIGH);
  Serial.println("Go online!");                         //The serial port displays the corresponding value
}
void loop() {
  getinfraredData();                                        //Get Hall's data
}
/****************************************infrared part****************************************/
/*Get infrared's data*/
void getinfraredData() {
  if (millis() - infraredTimes >= infraredTimeInterval) {      //This command is executed once in a while
    infraredTimes = millis();

    infraredVal = digitalRead(infraredPin);                    //Read the status of the sensor pins

    Serial.println(infraredVal);                           //The serial port displays the corresponding value
  }
}

4、注意事项

说明:如果有什么问题可以评论@我,我将帮助你。电位器可以调节灵敏度。在光比较强的场景下会不准,例如在光照情况下,会不准。反应速度很快。

5、基本原理

        红外寻迹传感器是一种常用于智能小车、机器人等项目的传感器,可以检测地面上黑线、白线等轨迹,从而实现小车或机器人沿着指定路径自动行驶的功能。其工作原理基于红外线灰度测量。

        当光照射在红外寻迹传感器上时,传感器内部的红外发射管会发射出一定频率的红外线,照射到地面上的黑线或白线等轨迹表面后,会反射回来,经过传感器内部的红外接收管检测。由于黑线和白线反射红外线的程度不同,因此传感器通过检测红外线的强度就可以判断所处位置是否在轨迹上,以实现跟踪轨迹的功能。

        为了提高传感器的检测精度,通常还会在传感器外部加上一些凸起的结构,使传感器与地面保持一定的距离,并且只能检测到轨迹上方向传感器的光线,避免干扰。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_55490300/article/details/131156064

智能推荐

python 子函数调用父函数的变量_python中子类调用父类函数的方法示例-程序员宅基地

文章浏览阅读1.7k次。前言本文主要给大家介绍了关于python子类调用父类函数的相关内容,Python中子类中的__init__()函数会覆盖父类的函数,一些情况往往需要在子类里调用父类函数。下面话不多说了,来一起看看详细的介绍:如下例程里,???处是需要调用父类函数的地方,接下来结合例程具体介绍。# -*- coding:utf-8 -*-class Student:def __init__(self,name):s..._python函数中的变量可以在子函数中访问吗

动画Animation_必须为“system.windows.media.animation.doubleanimation-程序员宅基地

文章浏览阅读543次。Animation概述System.Windows.Media.Animation 命名空间提供一些类型,这些类型支持属性动画功能,包括时间线、演示图板和关键帧。.17个“类型名+Animation”类,这些类使用插值。 22个“类型名+AnimationUsingKeyFrames”类,这些类使用关键帧动画。 3个“类型名+AnimationUsingPath”类,这些类使用基于路径的动画。简单动画DoubleAnimation在指定的Duration上使用线性..._必须为“system.windows.media.animation.doubleanimationusingkeyframes”指定 t

文献阅读:RoFormer: Enhanced Transformer with Rotary Position Embedding-程序员宅基地

文章浏览阅读3k次,点赞6次,收藏19次。文献阅读:RoFormer: Enhanced Transformer with Rotary Position Embedding1. 工作简介2. 常见位置编码方式1. 绝对位置编码1. Bert2. Attention Is All You Need2. 相对位置编码1. 经典相对位置编码2. XLNet3. T54. DeBerta3. RoPE方法介绍4. 实验效果考察1. 翻译任务上的表现2. 预训练任务上的表现3. GLUE下游Finet.._enhanced transformer with rotary position embedding

电赛 | 坡道行驶电动小车(省电赛一等奖作品)_爬坡小车电赛设计方案-程序员宅基地

文章浏览阅读1.1w次,点赞20次,收藏154次。本文为读者投稿,分享的是一个四川省电子设计竞赛一等奖作品。竞赛题目 今年的四川省电子设计竞赛共有四道题目,基于我们对做车比较了解,所以选择了c题————坡道行驶电动小车,该题目要求如下:..._爬坡小车电赛设计方案

Embarcadero Dev-C++怎么解决中文不显示问题-程序员宅基地

文章浏览阅读3.7k次。在 Dev-C++ 中输入中文有两种方法:使用输入法。你可以在 Dev-C++ 的编辑器窗口中使用中文输入法,这是最常见的方法。在代码中使用转义字符。你可以使用转义字符来在代码中输入中文字符。例如,如果你想在代码中输入中文字符“你”,你可以使用 \u4f60 这样的转义字符。如果你在编辑器中输入了中文,但是显示为乱码,这可能是因为编码问题造成的。你可以尝试在 Dev-C++ 的“编辑..._dev软件输入汉字不显示

QT实现快捷键的三种方式_qt 程序设置快捷键-程序员宅基地

文章浏览阅读2.4w次,点赞5次,收藏35次。QT实现快捷键的三种方式今天下午开发类似于QQ的聊天软件的时候,需要用到键盘快捷键的开发,下面我以在QLineEdit这个控件为例,在用户输入文本之后,想要输入enter健直接快速的发送编辑好的信息。1、方法一,用信号和槽机制建立起连接,具体的做法如下。connect(ui.LineEdit,SIGNAL(returnPressed(),ui.PushButton,SLOT(click_qt 程序设置快捷键

随便推点

Xilinx之FPGA器件系列简介_ultrascale和7系列区别-程序员宅基地

文章浏览阅读3.5k次,点赞7次,收藏39次。赛灵思xilinx是FPGA领域的领头企业,去年已被ADM收购,在产品市场规模上能与之匹敌的只有Altera,Alter也是在2015就被因特尔收购。赛灵思的产品众多,如果是初次接触可能对各种英文名称及简称感到困惑,对于使用vivado进行工程设计时无法选择符合自己需求的器件,本文将其分类进行概述。同时,为保证准确性,内容以官网信息为主。_ultrascale和7系列区别

获取每个部门中当前员工薪水最高的相关信息,mysql的group by一个我踩过的坑_求各个部门薪资最高多少,如果为空显示没有薪资-程序员宅基地

文章浏览阅读274次。获取每个部门中当前员工薪水最高的相关信息,mysql的group by一个我踩过的坑描述有一个员工表dept_emp简况如下:有一个薪水表salaries简况如下:获取每个部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary,按照部门编号dept_no升序排列,以上例子输出如下:这篇在牛客上看到的sql题目,瞅了一眼想就是求部门里面最大薪水而已,于是写下:SELECT dept_no,dp.emp_no,max(salary) maxSalaryf_求各个部门薪资最高多少,如果为空显示没有薪资

window下hadoop、hbase的安装和eclipse开发环境配置_安装和配置 eclipse 下的 hadoop 开发环境-程序员宅基地

文章浏览阅读4.8k次,点赞3次,收藏7次。全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程hadoop下载这里下载的hadoop-2.7.5.tar.gz http://mirror.bit.edu.cn/apache/hadoop/common/或者下载hadoop-2.7.3.tar.gz http://archive.apache.org/dist/hadoop/core/had..._安装和配置 eclipse 下的 hadoop 开发环境

linux的source命令,Linux中source命令的用法-程序员宅基地

文章浏览阅读7.8k次。Linux中source命令的用法Linux系统中,source命令通常用“。”来代替,是一个点命令,与一般的命令有所不同,下面小编就给大家介绍下Linux中source命令的用法。用法:source filename 或 。 filenamesource 命令是bash shell的内置命令,从C Shell而来source 命令的.另一种写法是点符号,用法和source相同,从 Bourne ..._linux source

oracle数据库后plsql登陆界面不显示数据库问题_plsql连接oracle配置完没有数据库显示-程序员宅基地

文章浏览阅读1.1w次。打开PL/SQL准备登录的时候出现Could not load "F:\app\USER\product\11.2.0\dbhome_1\BIN\oci.dll"1、很多人安装了PL/SQL后,打开的时候出现如下问题:2、网上不少资料说要在pl/sql的安装目录下的default.ini把OCIFile改为对应Oracle安装目录下的路径OCIFile=D:\Program..._plsql连接oracle配置完没有数据库显示

会议OA系统04_ufrusx-程序员宅基地

文章浏览阅读3k次。代码】会议OA系统04。_ufrusx

推荐文章

热门文章

相关标签