ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

多点超声波测距报警系统

2021-02-17 13:35:04  阅读:244  来源: 互联网

标签:TX 超声波 csb 多点 模块 nop 测距


基本功能包括:

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

超声波模块介绍

             超声波模块原理图      相关超声波测距参考程序 //超声波声明
char flags=0;
//超声波距离有效
char flag1s=0;
//计算时间
uint time=0;
//计算距离
ULint L_=0; //温度值
int Temp=0; //定义 超声波 管脚
sbit RX_csb=P1^2;  //对照实物修改
sbit TX_csb=P1^1;  //对照实物修改 //初始化 超声波模块
void Init_ultrasonic_wave()
{
    TX_csb=0;             //关发射模式
    TH0=0;                   //定时器0
    TL0=0;
    EX0=1;                 IT0=1;                   //外部中断
    EA=1;                   //总中断开启   
} //超声波启动
void StartModule()
{
    TX_csb=1;           //启动模块
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();          //延时
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    TX_csb=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; //有效
     }
}
制作完成的三向测距实物                                                有相关探讨问题,可以留言

标签:TX,超声波,csb,多点,模块,nop,测距
来源: https://www.cnblogs.com/xmdz/p/14408691.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有