简易的电动车防盗报警器
- 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.3
void 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.1
void 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 0
void 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.3
void 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;
}
}
}