一、模块介绍

当有震动产生时,就能检测到信号。
购买链接:
https://item.taobao.com/item.htm?spm=a1z10.5-c-s.w4002-18748153240.30.7eda723cVVKOLp&id=576040269349
此模块中使用的震动开关型号是SW-18015P,为密封弹簧型、无方向性震动感应触发开关,任何角度均可触发。
开关在静止时为开路OFF状态,当受到外力碰触而达到相应震动力时,或移动速度达到适当离(偏)心力时,导电接脚会瞬间导通呈瞬间ON状态。当外力消失时,开关恢复为开路OFF状态。在正常使用情况下开关的寿命可达20万次。
此震动开关适用于小电流控制电路的触发,开关的灵敏度是灵敏型,适用于玩具、防盗报警器、鞋灯、发光礼品等产品。
二、原理分析
震动传感器两个引脚默认是断开的状态,当产生震动时,两个引脚相连接。
正常状态下,U2比较器的3引脚被R1电阻上拉至3.3V,根据串联分压的原理可知,比较器1引脚的电位等于R2两端的电压。R2和R3串联,可得比较器1引脚的电压为1.65V,故比较器输出低电平(逻辑0)。
当模块处于震动状态时,传感器两个引脚短接,此时比较器的3引脚直接接地,故比较器输出高电平(逻辑1)。

三、代码解读
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 底板上,连接好 J-link 与 PC 机;
2、将 震动传感器 模块插到底板 P5 口,底板拨码 S1 拨向 ON 端;
3、编译整个工程,打开底板电源,烧写程序到核心板,并按一次复位按键。串口调试助手波特率为115200。
二、实验现象:
用手指轻弹模块上的柱状传感器,串口打印 报警信息。