loto示波器实践——超声波测距模块
我们这里用到的超声波测距模块,一般是用于arduino智能小车自动避障的。经常见到的应用是使用单片机或者stm32和这种模块结合进行开发的。
我们使用LOTO示波器可以更直观和快速的看到超声波测量距离模块的工作波形和结果。使用LOTO示波器测量超声波距离测量模块,可以直接省去了单片机编程环节,让测试更快速和直观。
对于LOTO示波器而言,如果你手里的是带有DE2扩展接口的型号,就直接把线缆接在DE2上,如果是只有DE1接口的型号,就把线缆接在DE1上。目前而言,带有DE2接口的型号是肯定支持这个模块的,只有DE1接口型号中,OSC482系列是肯定可以的。
这根线缆很简单,是根据LOTO的扩展口的定义把电源和iO引脚引出来制作的。
这个超声波距离测量传感器只需要很少几根线,一根3.3V/5v的电源,一根地线,一根IO线作为触发就可以了。还有一个输出引脚是距离输出,我们直接用示波器探头接就可以了。
loto示波器定义的DE-15扩展口上 14引脚是5V,15引脚是GND。DE-15有3个可以被上位机软件控制的GPIO,我们使用其中的一个作为模块的触发输入即可。我们使用引脚3的IO2。
我们把示波器的两个通道,分别用探头接到模块的触发输入和它的距离测量输出,这样我们就能同时观察输入和输出的波形了。
超声波模块距离测量的原理很简单,只要在它的输入引脚发送一个低电平到高电平的跳变,持续10微秒以上,再跳变到底电平,模块就会被触发进行测量距离。
我们手动操作示波器的上位机软件来控制IO口的触发变化,那么它的高电平持续时间是远远大于10微秒的,所以是可行的。
模块的输入被触发了以后,它的内部会做一系列的操作,这个我们就不用管了,我们只要等待它的距离输出结果就可以了。
测量完成模块的输出引脚会出现一个高电平,高电平的宽度就代表着实际距离前方障碍物的距离。我们只需要捕捉这个高电平宽度,就可以利用转换公式将电平宽度转换成距离。
这种用LOTO示波器接超声波模块测量距离的方法,可以用在智能检测应用的二次开发中。
我们先随便设置一个时间档位,比如1毫秒,通道A我们接的是模块的输入信号,通道B接的是模块的输出信号。输入信号是我们手动控制的IO口,是一个3.3V逻辑的GPIO,所以通道A的档位我们选择1V/DIV就可以。因为我们给模块供电是5V的,所以模块的输出电平是5V的,我们可以使用探头的X10档,然后软件设置使用0.2V/DIV。两个通道都使用直流耦合。
我们使用示波器的触发功能来捕获模块的触发输入。我们将触发电平设置在0~3.3V之间即可,用下降沿触发。
我们在软件的扩展标签页里设置IO口控制为IO输出,并且把IO2设置成低电平输出状态。这样就都设置完毕了,我们可以开是在IO2输出一个高电平触发信号了。
我们先输出高电平,然后输出低电平,来触发模块开始测量距离。
我们看到已经触发到了信号了,蓝色的是通道A的IO2触发信号,黄色的就是模块的距离输出电平信号。
黄色波形的高电平宽度就代表着被测量到的距离。
在LOTO示波器上有多种方式对这个时间宽度结果进行测量。我们可以拖动标尺测量,也可以用鼠标框选一个测量区域自动计算出时间跨度,也可以在波形的跳动边沿放置浮动光标显示时刻数值,也可以打开自动多点测量功能,让系统自动标记跳变边沿并直接自动显示跳变边沿之间的时间差值。
我们用挡板放在超声波模块前面不同的距离处,可以测到不同的高电平宽度的输出信号。
相关测试过程的演示视频可以参考:
B站: https://www.bilibili.com/video/BV1wp4y187jB
西瓜:https://www.ixigua.com/6947962707840598541