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

HC-SR04超声波测距模块

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

超声波测距原理

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

接线

HC-SR04TPYboard
VCCVIN(5V)
TrigX2
EchoX1
GndGND

代码

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)

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

  • 9
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值