室内容积超声波自动测量仪研究与设计
汪扬埔
摘 要 本设计采用51单片机来控制整个系统。通过单片机控制步进电机从而控制超声波探头进行多个方向的测距,然后通过单片机计算出容积。最后通过显示屏显示出相应的数据。
关键词 AT89C52 超声波 步进电机 测距
中图分类号:TP873 文献标识码:A
整个硬件电路由超声波发射电路、超声波接收电路、电源电路、显示电路等模块组成。探头的信号经单片机综合分析处理,实现了超声波测距仪的测距功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。相关部分附有硬件电路图、程序流程图,给出了系统构成、电路原理及程序设计。此系统具有易控制、工作可靠、测距准确度高、可读性强和流程清晰等优点。实现后的作品可用于需要测量容积参数的各种应用场合。
1系统的硬件设计
1.1单片机最小系统
本系统采用的单片机是AT89C52单片机。这一款单片机的工作性能非常稳定,能够完全满足本设计的要求。很好的兼容了本设计的各个硬件模块,使各个模块能够协同工作,实现本设计的要求。
1.2电源电路
为方便起见,本设计采用的是5v稳压电源供电,通过数据线输入+5V稳恒直流电作为电路的电源。LED是电源指示灯,通电后会发光。
1.3复位电路
复位功能是一个好的设计必不可少的功能,由于在系统运行的过程中,容易发生死机,系統命令出错等现象。我们通过复位按键就能够使系统立刻终止正在进行的指令并且恢复到最初始的工作状态。本设计采用的是传统的电平式开关与上电复位电路,从而能使运行中的系统经过手动干预使系统恢复到初始工作状态。
1.4显示电路
显示电路时一个设计的最直观的部分,本设计的采用显示屏是TC1602液晶显示屏。该显示屏能够显示2行16个字的内容。该液晶显示的体积小、重量轻、功耗低、显示容量大、接入电路简单方便等优点,与传统的数码管相比显得更精致与美观。使用时,可将串口与LCD的数据线和控制线相连。 TC1602第4脚RS为寄存器选择,第5脚RW为读写信号线,第6脚E为使能端。第7~14脚:D0~D7为8位双向数据线。我为了方便布线工作,单片机端的D0~D7端口接到LCD1602的D1~D7,端口的顺序刚好完全是相反的。因此在软件编写过程中时需要进行相应的处理,从而使读取数据更准确清晰。
1.5步进电机电路
本系统采用步进电机来控制超声波探头的旋转,使超声波探头自动测出三个方向的距离。本设计采用的是42步进电机42BY250C,工作电压为5v扭矩为0.55nm长度为48MM,工作温度为-40℃到50℃范围内。该步进电机的工作能力非常好,符合本设计的要求。我们通过单片机对于步进电机的控制,使得超声波探头在水平和垂直的方向上能够准确的测量出距离。
2系统的软件设计
2.1超声波发送子程序及超声波接收中断子程序
超声波子程序的功能是通过控制两个端口来发射超声波。在发射超声波的同时启动计时器T1开始工作,记录下传播的起始时间。超声波测距模块的工作方式首先通过外部中断1来不断检测反射回来的超声波信号,当反射回来的超声波信号进入到检测范围以内时就能立刻检测到,并且此时系统会立即启动中断程序,同时使计时器T1停止计时,这种情况下表示测距成功。如果当计时器超出计时范围仍然没能够检测到反射回来的超声波信号时,这种情况的出现一般是由测量角度过大或者被测物处于测量盲区范围导致的,此时定时器T1的中断会将外中断1关闭,这种情况下表示测距结果是失败的。
2.2距离计算子程序
测量出超声波往返时间之后,就可以通过计算公式进行对于距离的测算。具体的程序如下:void Conut(void)
{ ultrasonic_time = TH1*256+TL1;
TH1=0;
TL1=0;
// time是us级别的,t/1000/1000 * 340m/s / 2 = t*1.7/1000/10 m = t*1.7 / 100 cm
// 下在的S算出来是mm级别的t/1000/100 m
S = (ultrasonic_time*1.7)/100;
if( (S >= 700) || flag == 1)
{ flag=0;
distance_buffer[0] = '-';
distance_buffer[1] = '-';
distance_buffer[2] = '-';
}
else
{
distance_buffer[0] = S/100 + 0X30;
distance_buffer[1] = S%100/10 + 0X30;
distance_buffer[2] = S%10 + 0X30;
}
2.3实现体积计算的程序
本设计的最终目的是对于规则房屋体积的测量。我们先通过对于三个方向的距离进行测算,同时取得一个准确值。之后,通过V=X*Y*Z这个计算式对于体积进行计算。
2.4显示子程序
LCD1602显示屏的主要功能是能够方便在距离选取时选择一个比较稳定的值。同时显示出测试的距离与计算得出的体积。
3系统的测试
当系统的硬件和软件设计都完成时,最后需要对系统的功能进行测试,查询设计时的错误并修改,最终完成整个温湿度控制系统的设计。根据超声波传播的特性,距离测量时必须满足以下的条件:(1)被测目标必须垂直于超声波测距仪。(2)被测目标表面必须要平坦。(3)测量时在超声波测距仪周围没有其他可反射超声波的物体。因此当不满足以下的条件时,就会有很大的几率不能接收到超声波,从而导致没有测量结果。测试结果如表1:
经过实际的测量结果显示,测量得到的值普遍存在误差,测量值都要比准确值小。虽然说本设计的测量精度能够到达一定的高度,但是由于超声波测距在进行过程中会受很多因素的影响。同时,由于超生波自身的盲区问题以及发射探头与接收探头之间的共振问题也会使测量的精度受到影响。
4结论
利用51单片机控制的体积测量仪结构简单,使用方便。经过实际测试证明,本设计的性能稳定,能够测量出量程范围以内的体积参数,且制作的成本较低、有较高的性价比。由于本设计在测量距离时容易产生误差,在一般的体积测量的应用中可忽略不计;但在相对精度要求较高的高科技应用方面,我们不能忽略这点误差,我们一般可以通过改变硬件的本身精度实现对超声波测距的高精度测量或根据任务的需求在程序中编入相应的距离补偿程序,使得本设计的精度达到更高的标准。