怎么用51单片机做超声波测距实验 超声波 测距
怎么用51单片机做超声波测距实验
设计软件时传感器在发射超声波时输出高电平,在接收到反射信号后,将输出复位成低电平。这个高电平时间就是超声波在某块与障碍物之间往返一次所需的时间。当无障碍物时,高电平会无限期延续下去,可这样就无法启动下一个超声波发送,你可以在一段合适的时间后,用软件将其强制复位。这个时间决定这个模块的最大检测距离。
超声波测距我也没用过,我在网上查了下,感觉也不是太难,你用的什么型号的超声波传感器的质料找到,硬件连接应该在网上也能找的到。自己多动手学的会快点。我也是新手,呵呵。
超声波 测距
这要看你要测多远的距离,距离3米以上的,发射和接收电路比较复杂,需要用到IR2301、IRF540、AD8307、甚至DSP等技术,主要原因是超声波在空气中的衰减比较大,而且声速较慢,你也可以考虑下FMCW微波雷达。如果只是测3米以下的距离,可以参考车用的倒车雷达,我给你的建议是用51单片机自己做。1、去淘宝网买一对TR分体超声波探头,大概3-10元一对;2、用单片机的1个IO脚输出发射信号,脉宽25uS占空比为50%连续发10个波,然后等20-100mS再发下一个。这个IO脚接一个S8050之类的三极管,集电极接超声波T发射头(若有条件就接一个铁氧体变压器);接收头接一个用TL082、TL084做的正向放大器,注意信号要钳位(建议用1N4937,对小信号损耗小)以免偶尔超大信号击穿IC,若想改用其它IC,请注意它在40KHz下的频率响应。第一级信号放大后需经一次LC滤波器(3.3mH 4700pF)再进行2次放大,总放大倍数至少要100倍(40KHz检测10米大面积物体须要放大3-30万倍),最后经滤波和电压比较器,接至单片机的另一个IO口(中断也行),若用检波电路 单片机AD进行电压比较,那就更好了。单片机的程序里,用一个死循环,用2个8位16bit变量累加记录。超声波在发射时的回波触发是无效的,而且在一段时间内(大概1-5mS)存在余震,因此需要屏蔽掉此时段的触发,作为盲区。而若在此之后收到了超声波回拨信号(或中断)将即停止计数。在每次超声波发射时,输出累计计数结果,并将此变量清零。输出的累计数值,乘以一个系数在加上一个系数(盲区),就是你想要的实际距离,这两个系数可以在你的实测中找到。还有要说明的是,超声波发射不仅需要你的电路要驱动出40KHz(例子)信号,还要求超声波探头的本振频率也是40KHz,否则转换效率极低,得不偿失。不过如果频率相差不大,倒也是可以,例如你拿40KHz的探头用在了38KHz上,也能凑副用的。字数有限,也许没有说的太清楚,具体哪里有问题可以给我来信:cuidong@vip.163.com
超声波测距
对于第一个问题:
超声波测距,通常在10米以内,但也有个别厂家做到几十米甚至百米的。超声波测距有以下几个特点:1、频率越高,精度也越高,但检测距离越近(空气衰减增大);2、输出功率越高、灵敏度越高,检测距离也越远(虽然是废话,但我必须写上);3、通常检测角度小的,测距范围略远;4、以上因素所造成的影响加起来,可能没有被测物体带来的影响更大:例如一个刚性表面(例如钢板)和一根铁丝、或者在钢板表面铺满吸音绵、或者把钢板与探头法线夹角从垂直改为倾斜45度等等,这些因素所带来的影响最大的。这也许不太容易理解,如果把超声波比作可见光,那么刚性表面可以理解成镜子,要想让你发现距离很远的人,对方用镜子‘晃’你是最好不过的了。但如果把镜子罩上黑纸,或者把镜子倾斜45度所带来的影响,你我可想而知,超声波也一样。
第二个问题:
一个单片机上同时使用几个不同频率的超声波模块,这就是软件程序的问题,没有什么难度,大学生就可以做,我想你一定也没问题。关于测距模块,从20KHz~400KHz,测距范围从0.1m~30m这些都不难购到,技术也不是很难。问题是,你能找到这么多频率的探头么?虽然超声波探头的各种频率都有,但它是针对量程来划分的,同一个量程里,频率都很接近(例如3-10米测距基本都是40KHz)。你要在同一个量程里找出4种不同频率来,恐怕是有难度的。当然你也可以用4种不同的频率来驱动同一种探头。可是,若4个频率中的某个频率与探头的中心频率差别大了(例如超过5%),会导致效率大幅减低,如果频率差别小了,识别、区分他们又有困难,例如对于一个40KHz的探头,一般厂家规定的下限和上限也就是38KHz~42KHz,我们就算冒险用到37KHz~43KHz(从可靠性和稳定性考虑,我不赞成这么用),你需要区分37KHz、39KHz、41KHz、43KHz四种频率的反馈信号,如此以来,常规的测距电路是不能用了,你需要研究一种全新的测距方案来识别他们,而且不能影响正常的计时精度,我建议你参考一些微波雷达的技术。
超声波测距程序分析
程序我没有仔细看,有些思路你考虑一下:
1、不知道你用的哪个型号的单片机,计数器所用的时钟频率是多少?5cm意味着约300uS的声波传输时间,结合你的计数频率和计数器的位数,看看300uS你的计数器有没有溢出;
2、超过5cm的时候,用示波器探一下有没有收到声波信号,可能是你的放大倍数不够,信号太弱导致信号没有被识别;
3、仔细考虑一下你的收发探头的安装方式,有没有可能接收到直射波,我觉得这种可能性要大一些;超声测距,接收探头必须只接收到反射波,否则测出来肯定不准确;
4、测试不准确,可以考虑进行多次测量,去掉一半的异常值(比如说测回来8个数,去掉2个最大的,再去掉2个最小的),然后取平均;这样测出来的结果相对准确一些。
就是这些了,希望对你有帮助。