(资料图片)
超声波测距原理很简单: 1、通过记录发送超声波的时间、记录超声波返回的时间,返回时间与发送时间相减得到超声波的持续时间。 2、通过公式:(超声波持续时间* 声波速度) / 2就可以得出距离;
HC-SR04参数: 工作电压: 5V 工作电流:15mA 最短测量距离:3cm 最长测量距离:4m 角度15度 Trig引脚输入信号:10us TTL 脉冲 Echo引脚输出信号:5v脉冲信号
总共4引脚:2电源引脚(Vcc、GND)和2个控制引脚Trig、Echo; Vcc为5v供电 Trig引脚用于接收树莓派信号,可接所有GPIO口。 Echo引脚用于发送测距结果给树莓派,可接所有GPIO口,返回5v信号。
1、树莓派向Trig引脚发送持续10us的脉冲信号; 2、HC-SR04发送超声波,将Echo置位高电平,准备接收超声波返回; 3、HC-SR04收到超声波返回把Echo置位低电平;
通过上面HC-SR04超声波测距模块使用过程,原理的分析,使用Python很容易就写出了超声波测距的Demo程序,具体实现如下: 程序的关键点: 1、获取超声波发送时的时间 2、获取超声波返回时的时间 3、把超声波发送与返回的时间差带入公式:(超声波持续时间 * 声波速度) / 2 即可得到距离
Trig_Pin = 14Echo_Pin = 4GPIO.setmode(GPIO.BCM)#设备GPIO工作方式IN/OUTGPIO.setup(Trig_Pin,GPIO.OUT,initial = GPIO.LOW)GPIO.setup(Echo_Pin,GPIO.IN)def ultrasonic(): #发送高电平到Trig引脚 GPIO.output(Trig_Pin,GPIO.HIGH) #持续10us 微秒 time.sleep(0.00001) GPIO.output(Trig_Pin,GPIO.LOW) #记录发送超声波时刻,发送前Echo_Pin为低电平,当变为高电平是说明超声波已发送 while GPIO.input(Echo_Pin) == GPIO.LOW: pass t1 = time.time() #记录收到返回超声波时刻,当Echo_变为低电平时说明超声波已经返回 while GPIO.input(Echo_Pin) == GPIO.HIGH: pass t2 = time.time() #超声波往返时间:t2-t1 #声波在空气中传播速度340m/s 记录时间 t 来回 2 #高电平时刻时间减去低电平时刻时间,得到超声波传播时间,单位转换为厘米乘以100 distance = (t2-t1) * 340 *100 /2return distance
关键词:
Copyright 2015-2022 起点地质网版权所有 备案号:皖ICP备2022009963号-12 联系邮箱: 39 60 29 14 2@qq.com