【DigiKey“智造万物,快乐不停”创意大赛】远程监控系统+第四帖 红外感应模块
[复制链接]
本帖最后由 常见泽1 于 2023-12-20 14:22 编辑
人体感应模块,在通过放大器是BISS0001将脉冲信号转化为更直观的高低电平输出,有人输出高,无人输出低。
并在放大电路上设置电位器,调节输出信号的灵敏度,调节高电平持续时间。
模块接口只有三个脚,地、电源、数据线;分别计为GND、VCC、OUT
探头检测到有人移动时,OUT=1;没人移动时,OUT=0;
因此我们可以把它当成一个独立按键,按下时(有人移动)为1,松开时(没人移动)为0。
这个模块是5V供电,
这个板子后面正好有个5V的电源输出
板子供上了5V电源
模块和MCU板卡相连的时候一定要注意电平,MCU选择一个FT口
能够兼容5V
这边IO的检测采用外部中断输入方式
外部中断反正是MCU的最常用的功能
static void EXTI15_10_IRQHandler_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Enable GPIOC clock */
__HAL_RCC_GPIOI_CLK_ENABLE();
GPIO_InitStructure.Mode = GPIO_MODE_INPUT;
/* Configure PC.13 pin as input floating */
GPIO_InitStructure.Mode = GPIO_MODE_IT_RISING_FALLING;
GPIO_InitStructure.Pull = GPIO_NOPULL;
GPIO_InitStructure.Pin = GPIO_PIN_11;
HAL_GPIO_Init(GPIOI, &GPIO_InitStructure);
/* Enable and set EXTI lines 15 to 10 Interrupt to the lowest priority */
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
}
通过软件仿真调试
当手放在红外感应模块前的时候,立马进入中断函数
|