“这辈子是不可能打工的,做生意又不会,只有做这个才能维持的了生活这样子。”害怕被偷电瓶吗,不如做个电动车报警器,防止被偷电瓶。#51单片机制作简易电动车报警器

本文详细介绍了如何使用51单片机配合震动传感器、继电器和433M模块制作简易电动车报警器,包括震动检测、控制灯光和喇叭响应,以及遥控器操作和报警逻辑。适合初学者跟随实践。
摘要由CSDN通过智能技术生成

前言

  本篇博文介绍的是用51单片机制作简易电动车报警器,里面包含震动传感器介绍及实战,震动控制继电器常开口吸合,震动控制喇叭,433M控制继电器吸合,整个项目思路,项目实现代码。看到这篇博文的朋友,可以跟着做哟。

1.预备知识

  完成本篇博文所实现功能,需要会以下知识。
  一、串并联电路知识
  二、高低电平的识别
  三、电源正负极识别
  四、C变量
  五、基本输入输出
  六、流程控制
  七、函数

  如果以上知识不清楚,请自行学习后再来浏览。

2.震动传感器介绍及实战

1.如何给震动传感器供电

  单片机供电 VCC GND接单片机

2.震动传感器工作原理

  产品不震动,输出高电平,模块上的DO口产品震动,输出低电平,DO是数字信号输出,AO为模拟信号输出。

3.注意事项

  接通电源绿色灯亮,注意接线,接错了灯不会亮,会冒烟。
  此项目不用接AO,因为用不到模拟信号。

4.震动模块介绍图

在这里插入图片描述

5.震动控制灯如何接线。

  GND VCC分别接单片机GND VCC,
  AO接P3.3。

6.如何调节震动传感器灵敏度

  震动传感器上面的旋钮顺时针灵敏度加大,逆时针灵敏度减小。

7.震动控制灯程序代码

#include "reg52.h"

sbit LED1 = P3^7;  //位定义,单片机上的P3口的第7口连接着LED灯的负极。
sbit vibrate = P3^3; //震动模块数字信号输出端DO连接到单片机的P3.3口

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


void main()
{
	//用查询的方式来判断震动传感器DO是否输入出低电平
	while(1)
	{
		if(vibrate == 0)
		{
			LED1 = 0; //灯亮
			Delay1000ms();
			LED1 = 1;
		}
		else
		{
			LED1 = 1; //灯灭
		}
	}
} 

3.震动控制继电器常开口吸合

1.继电器如何供电

  单片机供电 VCC GND接单片机

2.继电器参数

  最大负载电路交流250V/10A,直流30V/10A

3.继电器触发方式

  继电器模块可以通过跳线设置高电平触发或者电平触发(默认)

4.继电器模块工作原理

  继电器IN口可以通过低电平输入使NO常开口吸合,高电平打开。
  低电平使NC长闭口打开,高电平是长闭口吸合。

5.继电器介绍图

在这里插入图片描述

6.震动控制继电器NO吸合如何接线

  GND VCC分别接单片机GND VCC,
  IN接P1.1。

7.震动控制继电器NO吸合程序代码

#include "reg52.h"

sbit LED1 = P3^7;  //位定义,单片机上的P3口的第7口连接着LED灯的负极。
sbit vibrate = P3^3; //震动模块数字信号输出端DO连接到单片机的P3.3口
sbit switcher = P1^1; //继电器输入端子IN接单片机P1.1口

void Delay1000ms()		//@11.0592MHz
{
	unsigned char i, j, k;

	i = 8;
	j = 1;
	k = 243;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


void main()
{
	//用查询的方式判断震动传感器DO是否输入出低电平
	while(1)
	{
		if(vibrate == 0)
		{
				switcher = 0; //继电器IN端子低电平,继电器常开口NO闭合,SW+灯点亮
			  Delay1000ms();
			  switcher = 1;
		}
		else
		{
				LED1 = 1; //灯灭
		}
	}
} 

4.震动控制喇叭

1.如何接入喇叭

  1.在电池盒中装入两节5号电池
在这里插入图片描述
  2.将喇叭负极接上电池盒负极
在这里插入图片描述
  3.将电池盒的正极继电器COM端,喇叭的正极接继电器NO。

在这里插入图片描述
  4.给单片机上电,打开电池仓开关,用震动控制继电器NO吸合程序,触碰震动传感器,喇叭就向了。

5.433M控制继电器吸合

1. 433M使用原理

  433M接收到ABCD按键遥控信号后会在D0,D1,D2,D3中输出高电平

2.实现433M控制继电器吸合的思路

  可以通过433M返回的高电平来作为判断条件是否让继电器吸合。
  通过扫描法来判断遥控按键是否被按下。

3.程序代码

#include "reg52.h"


sbit switcher = P1^1; //继电器输入端子IN接单片机P1.1口
sbit D0_ON    = P1^3; //433M模块的D0输出口接单片机P1.3口
sbit D1_OFF   = P1^2; //433M模块的D1输出口接单片机P1.2口

void main()
{
	//通过查询法来判断遥控按键是否被按下。
	while(1)
	{
		if(D0_ON == 1)  //当遥控按键A被按下,D0_ON = 1;
		{
			switcher = 0; //继电器IN端子低电平,继电器常开口NO闭合,SW+灯点亮
		}
		if(D1_OFF == 1) //当遥控按键B被按下,D0_OFF = 1;
		{
			switcher = 1; //继电器IN端子高电平,继电器常开口NO打开,SW+灯点灭
		}
	}
}

6.简易电动车报警器制作

1.项目思路

1.项目接线图

在这里插入图片描述

2.项目主体思路

  一、通过查询法来判断报警器是否工作

  二、如果按遥控器A键启动报警器

  三、喇叭响2秒后关闭

  四、设置警报开启标志

  五、如果按遥控器B键关闭报警器

  六、喇叭响半秒后关闭

  七、设置报警器关闭标志

  八、如果检测到报警器开启标志

  九、开始检测震动传感器是否震动

  十、震动传感器震动喇叭就响。

  十一、震动传感器不震动喇叭就不响。

2.项目实现代码

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

#define ON  1
#define OFF 0

/*
   时间:    2023年9月6日16:10:31
	 程序功能:简易电动车报警器制作
*/

sbit vibrate  = P3^3; //震动传感器DO口接单片机P3.3口
sbit switcher = P1^1; //继电器输入端子IN接单片机P1.1口
sbit D0_ON    = P1^3; //433M模块的D0输出口接单片机P1.3口
sbit D1_OFF   = P1^2; //433M模块的D1输出口接单片机P1.2口

void Delay2000ms()		//@11.0592MHz 延时2秒函数
{
	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 = OFF; //让开启警报标志处于关闭状态
	//通过查询法来判断报警器是否工作
	while(1)
	{
	  //如果按遥控器A键开启报警器
	  if(D0_ON == 1)
		{
			switcher = 0;
			//喇叭响2秒后关闭
			Delay2000ms();
			switcher = 1;
			//设置警报开启标志
			mark = ON;
		}
	  //如果按遥控器B键关闭报警器
		if(D1_OFF == 1)
		{
          switcher = 0;
			//喇叭响半秒后关闭
			Delay500ms();
			switcher = 1;
			//设置报警器关闭标志
			mark = OFF;
		}
	  //如果检测到报警器开启标志
		if(mark == ON)
		{
			//开始检测震动传感器是否震动
			if(vibrate == 0)
			{
				//震动传感器震动喇叭就响。
				switcher = 0;
				Delay2000ms();
			}
			else
			{
				//震动传感器不震动喇叭就不响。
				switcher = 1;
			}
		}
	}
} 

结束语

  很高兴您能看到这里,点个赞再走呗。谢谢您啦!!!

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是一段Python代码,可以在爱心中加入循环播放的语句: ``` import time while True: print("我爱你") time.sleep(1) ``` 这段代码会不断地在控制台打印出“我爱你”,并且每隔1秒钟暂停一次,然后继续执行循环。你可以将这段代码嵌入到你的爱心程序中,让爱心在不停闪烁的同时,不断地表达你对TA的爱意。 ### 回答2: 在这个爱心中加上几句循环播放的语句,用来强调爱的力量永恒而无处不在。爱不分时间和地点,它始终循环,不断传递给每一个需要的人。 首先,我们可以说:“爱是一束光,它无所畏惧地照亮黑暗的世界。”无论是在失落的时候还是在困境中,爱的力量都能照亮前路,带来希望和温暖。 其次,我们可以说:“爱是一阵和风,它轻轻拂过每一个心灵。”爱的力量不是炫目而强大的,而是温柔而包容的。它可以温暖人心,使人感到宁静和安慰。 再者,我们可以说:“爱是一首动听的歌,它永不停息地在我们心中奏响。”无论是快乐还是悲伤,爱的旋律将伴随我们一辈子。它的歌声让我们感到宽慰和勇气,激励我们面对生活中的挑战。 最后,我们可以说:“爱是一朵绽放的花朵,它给世界带来美丽。”爱的力量像花朵一样绽放,给予我们勇气和力量去传递爱与善意。它的美丽不仅仅存在于我们内心,也通过我们的行动传递给他人。 在这个爱心中不断循环播放这些语句,可以让我们记住爱的力量是永恒而不会消失的。每当我们需要勇气或者需要给予他人关怀时,这些语句的循环播放会提醒我们,爱是无处不在的,我们可以通过它来改变世界。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值