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

    技术2022-07-11  76

    文章目录

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

    HC-SR04超声波测距模块

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

    超声波测距原理

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

    接线

    HC-SR04TPYboardVCCVIN(5V)TrigX2EchoX1GndGND

    代码

    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)

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

    Processed: 0.013, SQL: 12