一、模块介绍
接近开关的簧片跟角度有关,红外反射根据红外线反射原理,当检测到物体时会被反射回去。
购买链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-18748153240.18.7eda723cVVKOLp&id=576039573738
接近开关-红外反射模块有俩个触发点,一个是模块侧边的簧片触发,另一个是模块正面的红外感知部分触发。
簧片触发方式是利用物理原理,将簧片一端固定在模块上,使模块与簧片之间有一个夹角,在这个夹角中放置一个按键,当簧片翘起的一端被按下时正好可以压下按键。模块的触发距离与角度的大小有关。
红外感知触发方式是根据红外线的反射原理,利用红外发射器发射红外线,当红外线碰到物体时会被反射回去,反射回的红外线如果正好被红外接收器接收到,就会触发模块产生中断。
二、原理分析
按键部分原理非常简单,当按键被按下时,电源与地导通,EINT4引脚为低电平,反之为高电平。红外部分使用了红外发射器与接收器,红外发射器直接被通过的电流点亮。接收器如果接收到红外光,电流将通过接收器,导通三极管,通过三极管的电流流向地端,所以EINT6引脚为低电平。反之电流不通过红外接收器,三极管呈关闭状态,EINT6引脚为高电平。
三、代码解读
1、初始化IO口为输入。
GPIO_Init();
2、开启IO口复用时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
3、设置IO口与中断线的映射关系。
void GPIO_EXTILineConfig();
4、初始化线上中断,设置触发条件等。
XTI_Init();
5、配置中断分组(NVIC),并使能中断。
NVIC_Init();
6、编写中断服务函数。
EXTIx_IRQHandler();
7、清除中断标志位
EXTI_ClearITPendingBit();
四、实践操作
一、实验操作步骤:
1、将 STM32F407 核心板正确插接到魔法师 M3/M4 底板上,连接好 J-link 与 PC 机;
2、将接近开关-红外反射模块插到底板 P5 口,底板拨码 S1 拨向 ON 端;
3、编译整个工程,打开底板电源,烧写程序到核心板,并按一次复位按键。串口调试助手波特率为115200。
二、实验现象:
1、用手靠近红外传感器,串口打印报警信息。
2、按下模块侧面的按键,串口打印报警信息。