一、模块介绍
红外对射模块原理一端发射一端接收。
购买链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-18748153240.36.7eda723cVVKOLp&id=576039777785
红外对射全名叫“主动红外入侵探测器”(Active infrared intrusion detectors),其基本的构造包括发射端、接收端、光束强度指示灯、光学透镜等。其侦测原理是利用红外发光二极管发射的红外射线,再经过光学透镜做聚焦处理,使光线传至很远距离,最后光线由接收端的光敏晶体管接收。当有物体挡住发射端发射的红外射线时,接收端无法接收到红外线,就会产生一个中断信号。
二、原理分析
接通电源状态时,发射端的红外发光二极管发射红外射线。接收端的光敏晶体管接收到红外射线,电源通过光敏晶体管导通三极管,中断引脚EINT4为低电平状态。当有物体遮挡住红外发光二极管发射的红外射线时,光敏晶体管没有接收到红外线时电流无法通过,所以三极管呈阻塞状态,中断引脚EINT4为高电平状态。
三、代码解读
1、初始化IO口为输入。
GPIO_Init();
2、开启IO口复用时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
3、设置IO口与中断线的映射关系。
void GPIO_EXTILineConfig();
4、初始化线上中断,设置触发条件等。
EXTI_Init();
5、配置中断分组(NVIC),并使能中断。
NVIC_Init();
6、编写中断服务函数。
EXTIx_IRQHandler();
7、清除中断标志位
EXTI_ClearITPendingBit();
四、实践操作
一、实验操作步骤:
1、将STM32F407核心板正确插接到魔法师M3/M4底板上,连接好JLink与PC机。
2、将红外对射传感器模块插到底板P5口,底板拨码S1拨向ON端。
3、编译整个工程,打开底板电源,烧写程序到核心板,并按一次复位按键。
二、实验现象:
用不透明纸板遮挡在模块的两个传感器之间,串口会输出报警信息。