一、震动传感器模块
单片机供电VCC GND接单片机
产品不震动,输出高电平、模块上的DO口
产品震动,输出低电平,绿色指示灯亮
AO口不用
5V:代表正极
GND:代表负极
DO口:do是一种模拟信号或者数字信号接口
二、继电器介绍
简单的说继电器就是小电流、小电压控制大电流、大电压。这就是常见的继电器,这个是一路的。
继电器的IN口:接到单片机的IO口
IN口连接的作用是:IN连接上,单片机会给IN一个低电平信号,这个低电平信号,会让继电器两端的COM口和NO口连接起来上电
继电器配合传感器模块,实现有震动出现,继电器的小绿灯就亮起来
#include "reg52.h" #include <intrins.h> sbit switcher = P1^1; sbit vibrate = P3^3; //Do口接到了P3.3口 void Delay2000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 15; j = 2; k = 235; do { do { while (--k); } while (--j); } while (--i); } void main() { //查询的方式判断是否发生震动 while(1){ if(vibrate == 0){ //模块告诉我们,震动的话,DO输出低电平 switcher = 0; //当发生震动时候,导通继电器,给继电器IN一个低电平 Delay2000ms(); switcher = 1; //高电平,NO和COM不通 }else{ switcher = 1; } } }
三、433M无线发射接收模块
单片机供电VCC,GND接单片机
接收到信号,接收模块对应针脚输出高电平
有D0、D1、D2、D3,对应遥控器的ABCD
1、 无线控制报警器代码
#include "reg52.h" #include <intrins.h> sbit switcher = P1^1; sbit D0_ON = P1^2; sbit D1_OFF = P1^3; sbit D2_ON = P1^4; sbit D3_OFF = P1^5; void main() { //查询的方式判断哪个键被按下 while(1){ if(D0_ON == 1){ //收到遥控信号A,D0表现为高电平 switcher = 0; //A被按下,我们导通继电器,给继电器IN一个低电平 } if(D1_OFF == 1){ //说到遥控信号B,D1表现为高电平 switcher = 1; //B被按下,我们不导通继电器,给继电器IN一个高电平 } if(D2_ON == 1){ //收到遥控信号C,D2表现为高电平 switcher = 0; //C被按下,我们导通继电器,给继电器IN一个低电平 } if(D3_OFF == 1){ //说到遥控信号D,D3表现为高电平 switcher = 1; //D被按下,我们不导通继电器,给继电器IN一个高电平 } } } 2、电动车简易防盗器代码实现 #include "reg52.h" #include <intrins.h> sbit switcher = P1^0; //继电器 sbit D0_ON = P1^1; //433M接收A sbit D1_OFF = P1^2; //433M接收B sbit vibrate = P1^3; //震动传感器 #define J_ON 1 #define J_OFF 0 void Delay2000ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 15; j = 2; k = 235; do { do { while (--k); } while (--j); } while (--i); } void Delay500ms() //@11.0592MHz { unsigned char i, j, k; _nop_(); i = 4; j = 129; k = 119; do { do { while (--k); } while (--j); } while (--i); } void main() { int Mark = J_OFF; while(1){ //1、如果a按键被按下,设定为开启警报模式 if(D0_ON == 1){ //长响,表示进入警报模式 switcher = 0; Delay2000ms(); switcher = 1; //设定警报模式标记 Mark = J_ON; } //2、如果b按键被按下,设定为关闭警报模式 if(D1_OFF == 1){ //短响,表示解除警报模式 switcher = 0; Delay500ms(); switcher = 1; //设定警报解除模式标记 Mark = J_OFF; } //3、如果标记在警报模式下 if(Mark == J_ON){ //3.1 如果发生了震动 if(vibrate == 0){ //喇叭响 switcher = 0; } //3.2 如果没发生震动 if(vibrate == 1){ //喇叭不响 switcher = 1; } } }