HC-SR04 超聲波測距模塊可提供 2cm-400cm 的非接觸式距離感測功能,測距精度可達(dá)高到 3mm;模塊包括超聲波發(fā)射器、接收器與控制電路。
基本工作原理:
?。?)采用 IO 口 TRIG 觸發(fā)測距,給最少 10us 的高電平信呈。
?。?)模塊自動(dòng)發(fā)送 8 個(gè) 40khz 的方波,自動(dòng)檢測是否有信號返回;
?。?)有信號返回,通過 IO 口 ECHO 輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。測試距離=(高電平時(shí)間*聲速(340M/S))/2;
2.實(shí)物圖:
如右圖接線,VCC 供 5V
電源, GND 為地線,
TRIG 觸發(fā)控制信號輸入,ECHO 回響信號輸出等四個(gè)接口端。
3、電氣參數(shù):
4、超聲波時(shí)序圖:
以上時(shí)序圖表明你只需要提供一個(gè) 10uS 以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出 8 個(gè) 40kHz 周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號?;仨懶盘柕拿}沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時(shí)間間隔可以計(jì)算得到距離。公式:uS/58=厘米或者 uS/148=英寸;或是:距離=高電平時(shí)間*聲速(340M/S)/2;建議測量周期為 60ms 以上,以防止發(fā)射信號對回響信號的影響。
注:1、此模塊不宜帶電連接,若要帶電連接,則先讓模塊的 GND 端先連接,否則會影響模塊的正常工作。
2、測距時(shí),被測物體的面積不少于 0.5 平方米且平面盡量要求平整,否則影響測量的結(jié)果
5、實(shí)物規(guī)格:
下面是自編自寫的測試代碼:
#! /usr/bin/python
# -*- coding:utf-8 -*-
import RPi.GPIO as GPIO
import time
def checkdist():
#發(fā)出觸發(fā)信號
GPIO.output(22,GPIO.HIGH)
#保持10us以上(我選擇15us)
time.sleep(0.000015)
GPIO.output(22,GPIO.LOW)
while not GPIO.input(23):
pass
#發(fā)現(xiàn)高電平時(shí)開時(shí)計(jì)時(shí)
t1 = time.time()
while GPIO.input(23):
pass
#高電平結(jié)束停止計(jì)時(shí)
t2 = time.time()
#返回距離,單位為米
return (t2-t1)*340/2
GPIO.setmode(GPIO.BCM)
#第15號針,GPIO22
GPIO.setup(22,GPIO.OUT,initial=GPIO.LOW)
#第16號針,GPIO23
GPIO.setup(23,GPIO.IN)
time.sleep(2)
try:
while True:
print ‘Distance: %0.2f m’ %checkdist()
time.sleep(3)
except KeyboardInterrupt:
GPIO.cleanup()
?。踓olor=rgb(51, 102, 153) !important]復(fù)制代碼
該程序每3秒測試一次距離,用ctrl+c停止。
經(jīng)測試,該模塊測試較為準(zhǔn)確,特別是測試物體表面平整時(shí)效果更好。
?。踓olor=rgb(51, 102, 153) !important]
[color=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
?。踓olor=rgb(51, 102, 153) !important]
評論
查看更多