大家好,今天为大家分享一个设计叫51单片机小车倒车警报系统。顾名思义,开过车的朋友都知道,在倒车的过程中要是车尾有障碍且小于一定距离,车子就会发出警报,告诉你不要再继续倒车了。
我第一次方案采用的是红外传感器,原理呢是红外光发出是否有反射回来从而判断有无障碍,但是做出来的效果不佳
所以本设计采用的是超声波模块HC-SR04配合蜂鸣器发出警报。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能, 测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。基本工作原理:(1)采用IO口 TRIG触发测距,给至少10us的高电平信号;(2)模块自动发 送8个40khz的方波,自动检测是否有信号返回;(3)有信号返回,通过 IO 口 ECHO输出一个高电平,高电平持续的时间就是超声发射到返回的时间。
计算公式:测试距离=(高电平时间t * 340m/S)/2 简化 L=340*t/2(计算出来单位是米,如果是厘米再除以100)
(直接在车尾固定好该模块)
void main(void)
{
TMOD=0X11;
TH1=(65536-100)/256; //100US定时
TL1=(65536-100)%256;
TH0=0;
TL0=0;
TR1= 1;
ET1= 1;
ET0= 1;
EA = 1;
while(1) //无限循环
{
if(timer>=1000) //80MS检测启动检测一次 800
{
timer=0;
StartModule(); //启动检测
Conut(); //计算距离
if(S<20) //后边检测到红外信号
{
stoprun(); //调用小车停止函数
fmq(); //调用蜂鸣器警报函数
delay(40);
}
else
{
if(S>20)
{
backrun(); //调用小车后退函数
FM=1;
delay(40);
}
}
}
}
附上main函数,这个小设计大概花半小时就能完成了,是不是很有意思呢
附件有完整代码和演示视频。
全部资料51hei下载地址:
倒车警报.zip
(6.61 MB, 下载次数: 27)
|