文章目录[隐藏]
前言
本文将讲述TCRT5000循迹模块的原理及应用。本文应用于STM32,对于使用循迹模块的你有一定的帮助。
以下是本篇文章的正文内容
一、TCRT5000循迹模块介绍
TCRT5000就是一个红外发射和接收器,不断发射和接收红外线。
产品用途:
1、电度表脉冲数据采样
2、传真机碎纸机纸张检测
3、障碍检测
4、黑白线检测
下面是部分模块的图片
第一个模块是4个管脚的,分别是VCC、GND、A0、D0。A0是模拟信号输出,D0是TTL电平输出。使用TCRT5000主要就是用来循迹,只需要连接VCC、GND、D0就可以了。
第二个模块是3个管脚的,分别VCC、GND、S,S就是输出管脚。
(1)工作电压 3.3V-5V
(2)模块上的电位器是用来调节灵敏度的
(3)检测反射距离:1mm~25mm 适用
(4)输出形式 :数字开关量输出(0 和 1)
(5)设有固定螺栓孔,方便安装
(6)小板 PCB 尺寸:3.2cm x 1.4cm
(7)使用宽电压 LM393 比较器
二、TCRT5000循迹模块原理
循迹原理非常简单,模块上配有一个输出指示灯,部分模块还有电源指示灯,我们主要关注输出指示灯。红外发射器一直发射红外线,红外线经发射后被接收,此时输出低电平,输出指示灯点亮。
黑色是不反射红外线的,也就是说循迹模块遇到黑线,模块输出高电平,输出指示灯熄灭。
当然除了遇到黑线熄灭,当距离太远红外线反射后检测不到,此时指示灯也会熄灭。
那么如果要循迹,模块离地面要近,在没有遇到黑线时确保指示灯长亮,一旦指示灯熄灭就说明遇到黑线了。
例如下图的效果
三、TCRT5000循迹模块应用
了解清楚原理后代码实现就非常简单了,相当于按键检测。
下面用STM32固件库V3.5实现。
下面是源文件,注意要设置为下拉输入模式,输入模式不需要配置速度。
#include "bsp_tcrt5000.h"
void TRC5000_Init(void)
{
GPIO_InitTypeDef GPIO_InitTypeStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIO_InitTypeStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6;
GPIO_InitTypeStructure.GPIO_Mode = GPIO_Mode_IPD;
GPIO_Init(GPIOA, &GPIO_InitTypeStructure);
}
下面是头文件
#ifndef __BSP_TCRT5000_H
#define __BSP_TCRT5000_H
#include "stm32f10x.h"
#define Tracking_DO GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6)
void TRC5000_Init(void);
#endif /*__BSP_TCRT5000_H*/
在mian函数中初始化后判断Tracking_DO是否为1就可以了
int main(void)
{
TRC5000_Init();
while(1)
{
if(Tracking_DO == 1)
{
/*这里写相关应用*/
}
}
}
结语
那么以上就是本篇文章的所有内容了。
本文如果有什么不对的或者需要改进的地方欢迎指出。
版权声明:本文为CSDN博主「微光feng」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46554815/article/details/113477770
暂无评论