超聲波模塊介紹
??超聲波測距原理很簡單:
??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 = 14
Echo_Pin = 4
GPIO.setmode(GPIO.BCM)
#設備GPIO作業方式IN/OUT
GPIO.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 /2
return distance
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/553630.html
標籤:其他
上一篇:Python 使用ConfigParser操作ini組態檔
下一篇:返回列表