文章目录

  • ​​HC-SR04超声波测距模块​​
  • ​​超声波测距原理​​
  • ​​接线​​
  • ​​代码​​

HC-SR04超声波测距模块

超声波测距模块HC-SR04是市面上常见的超声波测距模块,价格便宜,精度高,可提供2cm-400cm的非接触式距离感测功能,测距精度可达3mm;模块包括超声波发射器、接收器与控制电路,检测角度为30°,广泛用于DIY制作中:

Micropython——HC-SR04超声波测距模块_超声波测距

超声波测距原理

​超声测距模块HC-SR04的使用​

接线

HC-SR04

TPYboard

VCC

VIN(5V)

Trig

X2

Echo

X1

Gnd

GND

代码

from pyb import Pin

trig = Pin('X2', Pin.OUT_PP)
echo = Pin('X1',Pin.IN)

def distanceMeasure(timeout):
print('Distance Measure...')
trig.value(1)
pyb.udelay(100) #产生宽度100us的高电平脉冲
trig.value(0)
mtime = pyb.millis()
while ((echo.value() == 0) and (pyb.elapsed_millis(mtime) < timeout)):
trig.value(0);#等待Echo输出为低,有效回应的起始
if (echo.value() == 1):
dtime = pyb.micros()
while ((echo.value() == 1) and (pyb.elapsed_millis(mtime) < timeout)):
trig.value(0)#检测到Echo为高电平后,计时等待Echo为低。
if (echo.value() == 0): #Echo在超时前为低电平说明存在障碍物。
distance = pyb.elapsed_micros(dtime)
else:
print('TimeOut.');
return 0; #返回0说明没有障碍物或者检测出错。
print('distance time: ', distance);
print(distance * 34000 / 1000000 / 2, 'cm')
return (distance * 34000 / 1000000 / 2)



while (True):
distanceMeasure(100)
pyb.delay(900)

如果读者按照博主的教程学会了传感器的使用,不要忘了点个赞哦~