51单片机入门项目总结:简易版防盗报警器

好久没有更新博客了,今天开始有时间就写写博客,总结一下之前做过的项目,以及对一些技术的思考。因为目前做过的项目都是为了学习单片机的某个知识点而做的,完成程度并不完整,后面也会对这些做过的项目进行完善和拓展,同样会记录在csdn博客。

简单介绍一下项目

当你将电动车的警报模式开启之后,如果有人接触到了电动车,报警器就会发出警报。

未来完善项目的设想

后续我想加入通信功能,再使用一个简单的app,可以在发出预警的同时,将预警信息发送到车主的手机app上,在app上可以显示车子的实时定位。

需要用到的模块

  1. 一块51单片机

  2. 震动传感器

  3. 继电器

  4. 一个小喇叭

  5. 433M无线收发模块

  6. 足够的杜邦线

  7. 一台能用的电脑

这个项目用到的技术

为何说这个项目比较基础?因为这个项目完全可以用IO口来实现,就是把各个需要调用的模块接到单片机的IO口上,然后就可以通过编写程序来控制这些硬件模块。

那就开始实现这个项目吧

首先需要用到的就是51单片机,刚开始的时候可以先测试一下板子是否可用,可以先搞一个点亮LED灯的程序来测试一下单片机是否可以成功烧录程序。没问题的话,就可以继续往下一步走。当然,这个步骤是可以省略,毕竟碰到板子出问题的概率还是蛮低的。也不是没有吧,像我之前就碰到了,害。如何使用上述模块,看下面。

震动传感器

 上面这个图就是震动传感器,可以看到上面有四个针脚,VCC和GND是负责给传感器供电的,DO口就是负责数字信号输出,这个口一般就是接在单片机的IO口上。当VCC和GND接上单片机的时候,震动传感器的电源指示灯就会亮。当前面的SW-18010P感受到震动时,开关信号指示灯就会亮,关于接收震动的灵敏度可以通过调节电位器来调节。

继电器模块

 

 VCC和GND分别接电源正极和负极,IN接单片机的IO口。在这个项目中,可以看一下第二张图的原理图,接喇叭的正负极分别接到NO和COM口上,就形成了一个电路。在这里面起控制作用的就是继电器里面的铁片,当IO口发来的是低电平时,NO和COM口就会接到一起,电路接通,喇叭就会响;当IO口发来的是高电平时,COM端就会和NC端接在一起,电路处于不接通的状态。

433M无线发射接收模块

还是老样子,VCC和GND负责供电。上面的D0到D3管脚,分别对应的是遥控器上的ABCD。

这些模块如何使用之后,就可以开始制作报警器了。 关于433M无线发射接收模块的内容,可以参考一下这个网站:https://wenku.baidu.com/view/8fe8f444bed5b9f3f80f1c33.html

话不多说,直接上代码: 

#include "reg52.h"
#include <intrins.h>

#define J_ON 1     //状态位
#define J_OFF 0    //状态位
sbit virate = P3^3;   //震动传感器
sbit switcher = P1^3; //继电器

sbit D0_ON = P1^2;  //433M打开
sbit D1_OFF = P1^1; //433M关闭



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)
  {
   //查询哪一个按键被按下
   if(D0_ON == 1)  
   {
      //这个时候就会进入警报模式
     switcher = 0;
     delay2000ms();
     switcher = 1;
    //这个时候状态就变成警报状态
     mark = J_ON;
   }
   
   //B按键被按下
   if(D1_OFF == 1){
     switcher =0;
     delay500ms();
     switcher = 1;
    //警报状态解除,变成正常状态
     mark = J_OFF;
   }
   //判断状态位
   if(mark == J_ON)
   {
     //震动传感器发低电平时
    if(virate == 0)
    {
     switcher = 0;
    //下面的可要可不要,不要的话,一旦有震动就会一直响。
     //delay2000ms();
     //switcher = 1;
    }
    else
    {
     switcher = 1;
    }
   }
  }
}

项目效果

最后呈现出来的效果:遥控器按下A,进入警报模式,喇叭会响2秒钟;然后就会监测是否震动。当感受到震动时,喇叭就会发出警报声(在这里因为我不想他响这么久,就设置了只响两秒,正常的话会一直长响)。遥控器按下B,就会退出警报模式,不管怎么震,都不会响。

效果视频可以看看我主页的里面的视频栏目,因为上传视频需要时间审核,等上传成功后我会在后面补上。

简易版电动车报警器效果图

第一次写项目总结,有不足的地方或者不对的地方请多多指教。

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
振动传感器的种类丰富,按照工作原理的不同,能分为电涡流式振动传感器、电感式振动传感器、电容式振动传感器、压电式振动传感器和电阻应变式振动传感器等。以下是这几种振动传感器的工作原理和用途。 1、电涡流式振动传感器 电涡流式振动传感器是涡流效应为工作原理的振动式传感器,它属于非接触式传感器。电涡流式振动传感器是通过传感器的端部和被测对象之间距离上的变化,来测量物体振动参数的。电涡流式振动传感器主要用于振动位移的测量。 2、电感式振动传感器 电感式振动传感器是依据电磁感应原理设计的一种振动传感器。电感式振动传感器设置有磁铁和导磁体,对物体进行振动测量时,能将机械振动参数转化为电参量信号。电感式振动传感器能应用于振动速度、加速度等参数的测量。 3、电容式振动传感器 电容式振动传感器是通过间隙或公共面积的改变来获得可变电容,再对电容量进行测定而后得到机械振动参数的。电容式振动传感器可以分为可变间隙式和可变公共面积式两种,前者可以用来测量直线振动位移,后者可用于扭转振动的角位移测定。 4、压电式振动传感器 压电式振动传感器是利用晶体的压电效应来完成振动测量的,当被测物体的振动对压电式振动传感器形成压力后,晶体元件就会产生相应的电荷,电荷数即可换算为振动参数。压电式振动传感器还可以分为压电式加速度传感器、压电式力传感器和阻抗头。 5、电阻应变式振动传感器 电阻应变式振动传感器是以电阻变化量来表达被测物体机械振动量的一种振动传感器。电阻应变式振动传感器的实现方式很多,可以应用各种传感元件,其中较为常见的是电阻应变。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值