单片机/MCUwilliam hill官网
直播中

小猫猫爱吃鱼

5年用户 118经验值
擅长:可编程逻辑 光电显示 控制/MCU
私信 关注
[资料]

多点超声波测距报警系统

基本功能包括:
       为了使移动小车能自动避障转弯,就必须在小车上加装测距系统,为了能及时获取距障碍物的距离和方向信息;制作了三方向(前、左、右)超声波测距系统,就是为小车提供一个有效的运动距离信息。
        在超声波测距中,通常因温度和时间检测的误差,使得测距的精度降低,为此,可以在小车上增加温度补偿功能。
        本次制作完成的,只是三个超声波测距延时,没有安装到小车上,后续将陆续实现更多的功能。。。

拓展功能包括:
拓展功能包括:
超声波模块介绍
超声波模块原理图
相关超声波测距参考程序
//超声波声明
char flags=0;
//超声波距离有效
char flag1s=0;
//计算时间
uint time=0;
//计算距离
ULint L_=0;
//温度值
int Temp=0;
//定义 超声波 管脚
***it RX_c***=P1^2;  //对照实物修改
***it TX_c***=P1^1;  //对照实物修改
//初始化 超声波模块
void Init_ultrasonic_wave()
{
    TX_c***=0;             //关发射模式
    TH0=0;                   //定时器0
    TL0=0;
    EX0=1;            
    IT0=1;                   //外部中断
    EA=1;                   //总中断开启   
}
//超声波启动
void StartModule()
{
    TX_c***=1;           //启动模块
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();          //延时
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    TX_c***=0;    //关闭模块
}
//做计算,得到有效距离
void Conut()
{
     time=TH0*256+TL0;
     TH0=0;
     TL0=0;
   L_=(time*1.67)/100;        
     if(L_>300||flags==1)
     {
        flags=0;
        flag1s=0; //无效
        L_=0;
     }   
     else if(L_<=500)
     {
        flag1s=1; //有效
     }
}
制作完成的三向测距实物
有相关探讨问题,可以留言

回帖(4)

nxs

2020-3-23 18:59:14
这个资料不错,谢谢分享,学习学习.
举报

成勇

2020-5-7 15:32:28
谢谢楼主分享!
举报

成勇

2020-5-7 15:32:41
谢谢楼主分享!
举报

hts20100101

2020-5-26 08:54:50
好,很不错,好好学习下先,谢谢分享啊!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分