HC-SR04超声波模块掌控下应用
2019-05-099329
AI 快速预览详细
本文介绍了如何使用掌控板和HC-SR04超声波模块进行距离测量。通过mPython X 0.3.0版本的内置积木块,可以轻松实现超声波测距功能。文章详细说明了硬件连接方法、编程步骤以及实际应用心得。适用于STEM教育和初学者项目。
|
掌控板的编程IDE mPython X最近放出来 0.3.0版本(https://mpythonx.readthedocs.io/zh_CN/latest/mPythonX.html) 这次更新,内置了HC-SR04超声波模块的编程积木块。掌控的固件也相应的更新到了2019-5-5的版本。 昨天也体现下了HC-SR04在掌控下的应用,分享下使用心得。 超声波的使用原理简单说就是 Trig引脚给持续10us的高电平,模块就会发出8个40KHz的超声波信号。一旦模块发出超声波信号,Echo引脚就会产生高电平,直到接接收到遇见障碍物反射回来的超声波,高电平才会变成低电平。通过这个Echo引脚高电平到低电平的持续时间,可以换算出超声波行走的路程,即超声波与障碍物之间的距离: distance=time×340m/s÷2 (340m/s--超声波在空气中的传播速度,2--往返) ![]() 先贴程序: ![]() 手头是没有“印堂”(smd贴片晶体)的宽压超声波模块(今天听到的年度梗 ),实测无需外接5V电源,VCC可以直接接掌控的3.3V引脚供电,echo引脚也无需接分压电阻,直接连接掌控的数字输入引脚。此次mPython X 超声波积木还未完全支持所有数字引脚,已反馈,后续会进行完善。对应的编程代码会用到一个名为“hcsr04”的模块,此模块还未内置到掌控的固件中,需要手动下载掌控的hcsr04.py文件到掌控板根目录下,后期也会内置到固件中。 (手动hcsr04.py 代码路径:https://raw.githubusercontent.co ... er/hcsr04/hcsr04.py) 补一个出自台湾赵英杰《超图解Python物联网实作入门》里的超声波传感器的代码,引脚定义做了些许的修改: [mw_shl_code=python,true]# HC-SR04 for mPython # 原代码出自赵英杰《超图解Python物联网实作入门》 # http://swf.com.tw # 如引用,请注明原出处--赵英杰 from machine import Pin import machine import time echoTimeout = 23200 # 58*400 = 23200 trigPin = Pin(Pin.P8, mode = Pin.OUT) echoPin = Pin(Pin.P9, mode = Pin.IN) trigPin.value(0) def distance(): trigPin.value(1) time.sleep_us(10) trigPin.value(0) pulseTime = machine.time_pulse_us(echoPin, 1, echoTimeout) if pulseTime > 0: return round(pulseTime / 58) else: return pulseTime while True: cm = distance() if cm> 0: print('Distance: ', cm, 'cm') else: print('Out of the detection range.') time.sleep(1)[/mw_shl_code] |



),实测无需外接5V电源,VCC可以直接接掌控的3.3V引脚供电,echo引脚也无需接分压电阻,直接连接掌控的数字输入引脚。


machine.time_pulse_us(引脚,0/1,等待时间) 0/1表示测量的是低电平或高电平。如果脉冲信号没有在等待时间内出现,time_pulse_us()将返回 -2,如果脉冲长度超过等待时间,则返回 -1。
还有一点,你手头的HC-SR04超声波是普通5V的还是支持宽电压版本的?