使用STM32F103C8T6制作震动感应灯
使用到的模块:
1、STM32F103C8T6
2、震动传感器模块:SW-18010P
3、5V继电器模块
4、CH340串口模块
5、LED灯
模块介绍
(一)震动传感器模块(如图)
该传感器共有四个引脚,分别是:VCC,GND,DO,AO。
其中:
VCC:接电源正极
GND:接电源负极
DO:接数字量信号输出(与单片机相连)
AO:无效
当传感器未检测到震动时,震动开关呈断开状态,输出端为高电平,绿色指示灯不亮。
当传感器检测到震动时,震动开关呈导通状态,输出端为低电平,绿色指示灯亮。
所以我们只需检测输出端的电平即可判断是否有震动。
(二)5V继电器模块(如图)
该模块有如下接口:
VCC:接5V电源正极
GND:接5V电源负极
IN:继电器模组信号触发端(低电平有效)
COM:公共端
NO:常开端
NC:常闭端
当IN接收到了低电平的触发信号时,COM和NO端就会导通,所以在本次设计中,我们只需要将LED 灯的正极接到NO端,负极接到COM端即可。不过需要注意的是,还需要在其中加入一个5V的电压用来给LED灯供电(如图)。
(三)CH340串口模块
3.3V/5V:接单片机3.3V或5V
GND:接单片机地
TX:接单片机PA10
RX:接单片机PA9
本次设计我们使用串口将程序下载到单片机中。在烧录时需要注意,我们要将单片机的boot0用短接片置为1,将boot1用短接片置为0。程序烧录完之后,我们再将boot0用短接片置为0,而boot1不变。随后按下复位按键,就可以看到程序烧录进去之后的效果了。
如果在烧录时提示写芯片超时,先检查boot的状态是否正确。如果正确,则只需在CH340与电脑连接后,将CH340上的3.3V/5V先拔下再插上即可解决。
工作原理
震动感应模块接收到震动之后,会输出一个低电平信号,我们只需用单片机读取这一信号是否为低电平即可。如果为低电平,表示产生了震动。此时我们再给继电器模块输入一个低电平触发继电器进行工作,则与继电器相连的LED灯会被点亮。最后再加上延时程序,我们就实现了当它感应到震动灯被点亮的效果了。