一、循迹模块的选用:

二、产品特点:

       该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 2~30cm工作电压为 3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。

三、模块参数说明:

1、当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时 OUT端口持续输出低电平信号,该模块检测距离 2~30cm,检测角度 35°,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离增加;逆时针调电位器,检测距离减少。
2、传感器主动红外线反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色探测距离最小,白色最大;小面积物体距离小,大面积距离大。
3、传感器模块输出端口 OUT 可直接与单片机 IO 口连接即可,也可以直接驱动一个 5V 继电器;连接方式:VCC-VCC;GND-GND;OUT-IO。
4、比较器采用 LM393,工作稳定;
5、可采用 3-5V 直流电源对模块进行供电。当电源接通时,红色电源指示灯点亮;
6、具有 3mm 的螺丝孔,便于固定、安装;
7、电路板尺寸:3.2CM*1.4CM。
8、每个模块在发货已经将阈值比较电压通过电位器调节好,非特殊情况,请勿随意调节电位器。

四、模块接口说明:

1、VCC 外接 3.3V-5V 电压(可以直接与 5v 单片机和 3.3v 单片机相连);
2、GND 外接 GND;
3、OUT 小板数字量输出接口(0 和 1)。

五、循迹模块程序(STM32):

/*******************************************************************************
================================================================================
【平    台】stm32f103zet6_sumjess平台
【编    写】sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2018年09月06日
【相关信息参考下列地址】
【网    站】
           https://blog.csdn.net/qq_38351824
           http://www.openedv.com/
           http://www.stmcu.org/
					 http://www.firebbs.cn/forum.php
---------------------------------------------------------------------------------
【dev.env.】MDK5.14及以上版本
【Target  】stm32f103zet6
第一次修订:2017/11/09
第二次修订:2018/01/21
第三次修订:2018/09/06
---------------------------------------------------------------------------------
没有完美的代码,只有不断的奉献,大家一起努力;
赠人玫瑰手留余香,欢迎大家反馈bug!
================================================================================
********************************************************************************/	
 
//循迹模块初始化
///初始化PB8-11为输出口.并使能这两个口的时钟	    
 
void track_Init(void)
{
 
 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE); //使能PE端口时钟
	
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|             //循迹模块PE2~PE9端口配置
	                             GPIO_Pin_3|
															 GPIO_Pin_4|
															 GPIO_Pin_5|
	                             GPIO_Pin_6|
															 GPIO_Pin_7|
															 GPIO_Pin_8|
															 GPIO_Pin_9; 
 GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN_FLOATING;//浮空输入
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO口速度为50MHz
 GPIO_Init(GPIOE, &GPIO_InitStructure);					       //根据设定参数初始化GPIOE
 
}
 
 
//--------------------------------------------------------------------------------------------//