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



















