简易的电动车防盗报警器
- 1、震动传感器模块的使用
- 2、使用震动传感器模块控制继电器开关
- 3、433M无线发射接收模块的使用
需要材料:
1、51单片机
2、震动传感器模块
3、继电器模块
4、高功率喇叭
5、433M无线发射接收模块
6、弱干杜邦线
1、震动传感器模块的使用
接好 VCC 和 GND,电源指示灯将被点亮。
当检测到震动时,板载指示灯点亮;震动停止,板载指示灯熄灭。
用螺丝刀转动「灵敏度调节电位器」可以调节灵敏度。大家可以将电位器旋到最左或最右,然后测试往哪边旋可以提高灵敏度。
使用说明:
1、产品不震动时,震动开关呈断开状态,输出端输出高电平,绿色指示灯不亮。
2、产品震动时,震动开关瞬间导通,输出端输出低电平,绿色指示灯亮;。
3、输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境是否有震动,起到报警作用。
案列1:如下原理图,震动传感器D0引脚接入单片机的P3.3口:使用震动传感器模块让LED1亮,当产生震动时,LED1亮。
#include <REGX52.H>void Delay1000ms() //延迟1S
{unsigned char i, j, k;i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}sbit LED1 = P3^7; //LED1连接的是P3.7
sbit vibrate = P3^3; //模块的D0引脚接入P3.3void main(void)
{while(1){if(vibrate == 0){ //发生震动时LED1 = 0; Delay1000ms(); //亮1秒LED1 = 1; //熄灭}else{ //不发生震动时LED1 = 1;}}
}
2、使用震动传感器模块控制继电器开关
如图为一个继电器模块,右侧引脚为IN,VCC,GND引脚,IN引脚接入单片机的IO口,当继电器的IN引脚接收到一个低电平时,继电器左侧的开关COM和NO进行连接。
案列2:通过震动传感器模块来控制继电器的开关,当发生震动时,开关连接到NO,点亮一个LED3。如下原理图,继电器的IN连接单片机的P1.1口
#include <REGX52.H>void Delay1000ms() //延迟1S
{unsigned char i, j, k;i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}sbit vibrate = P3^3; //模块的D0引脚接入P3.3
sbit switcher = P1^1; //继电器IN接入P1.1void main(void)
{while(1){if(vibrate == 0){ //发生震动时switcher = 0; //单片机引脚输出低电平,IN接收到低电平,NO和COM连接。LED3点亮Delay1000ms(); switcher = 1; //NO和COM不连接}else{ //不发生震动时switcher = 1;}}
}
此时我们将LED3换为高功率的一个小喇叭,当发生震动时,NO和COM连接,小喇叭会响,当不发生震动时,小喇叭不响。
3、433M无线发射接收模块的使用
如图遥控器A,B,C,D分别对应的是D0,D1,D2,D3引脚,当按下遥控器的A按键时,D0引脚发持续送出一个高电平。其他按键同理。
最终案例:按下A键,报警开启,当发生震动时,喇叭响2s;不发生震动时,喇叭不响。
按下B键,报警关闭,发生震动时,喇叭不响。
如下图原理图,遥控模块D0(A)引脚连接单片机的P1.2口,D1(B)引脚连接单片机P1.3口。
#include <REGX52.H>#define J_ON 1
#define J_OFF 0void Delay1000ms() //延迟1S
{unsigned char i, j, k;i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}sbit switcher = P1^1; //继电器IN接入P1.1
sbit D0_ON = P1^2;
sbit D1_OFF = P1^3;
sbit vibrate = P3^3; //模块的D0引脚接入P3.3void main(void)
{int mark = J_OFF;//定义一个警报标志位,先警报标志位关闭while(1){ //1、按下A键if(D0_ON == 1){ switcher = 0; //单片机引脚输出低电平,IN接收到低电平,NO和COM连接,喇叭响Delay1000ms();switcher = 1;mark = J_ON; //喇叭响1s提示代表开启警报}//2、按下B键if(D1_OFF == 1){ switcher = 0; //单片机引脚输出低电平,IN接收到低电平,NO和COM连接,喇叭响Delay1000ms();switcher = 1;mark = J_OFF; //喇叭响1s提示代表关闭警报}if(mark == J_ON)//进入报警{if(vibrate == 0)//发生震动时{ switcher = 0; //单片机引脚输出低电平,IN接收到低电平,NO和COM连接,喇叭响Delay1000ms();Delay1000ms();switcher = 1; //响2s }else//不发生震动时{ switcher = 1;}}if(mark == J_OFF) //关闭警报{switcher = 1;} }
}