案例介绍

超声波测距模块

作者[Author]:chen1111 验证[Verified]:FPGA 浏览次数 [Views]:323
字体大小 [Fonts]: 14px 16px 18px

概要[Abstract]超声波模块在竞赛中应用广泛。实时测距、定点停车、机器人避障都可用此模块协助完成。

实现功能: 此模块实现基于HC-RS04/RCWL-1601超声波器件的测距。本模块适用于HC-SR04、RCWL-1601等型号超声波传感器器件的驱动,只要启动方式为向i/o口发送脉冲,模块自动发送特定频率(8个40KHz)脉冲测距的超声波器件,一般都适用。 实现原理: 其基本原理就是利用声波遇到障碍物返回,在此期间计算声波往返的时间,再结合声音在空气中的传播速度(约340m/s)计算发射源到障碍物之间的距离。 这里对部分模块源码作下说明: 测距为什么选择产生17KHz不规则“时钟”,超声波测距公式:距离 = (echo高电平时间×34000cm/s) / 2 (单位:cm)。如果我们用17KHz的时钟进行计时,那么就有:距离 = (((1/17K) × m) × 34000cm/s) / 2 (其中m为17KHz时钟的周期个数),化简之后:距离 = m (单位:cm)。我们发现用17KHz时钟计数非常方便,这也是采用这个频率时钟的主要原因。特别地:我们这里制造地17KHz“时钟”和一般时钟有区别,我们仅用它来计算有多少个17KHz周期,因此只需要维持一个系统时钟的高电平即可,结合我们在下面的always块里面使用17KHz的高电平作为计数器的累加触发条件,制造这样特别的时钟反而更方便,若我们制造的一个高低电平时长一致的普通时钟,则我们还需要额外去检测17KHz时钟的上升沿作为累加条件。 另外,此模块已经将测试距离数值按照个、十、百、千的顺序分别存放在data的[3:0]、[7:4]、[11:8]、[15:12],如果要将距离数值显示在数码管上也非常方便。
近似设计 [Similar] 更多 [More]

 
Copyright © Robei | | 鲁ICP备14018662号 |