TPYBoardv102——HC-SR04超声波测距模块

文章目录

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

HC-SR04超声波测距模块

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

超声波测距原理

超声测距模块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)

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

你可能感兴趣的:(Micropython)