HC-SR04 介紹
電器參數
電器參數 | HC-SR04超聲波模塊 |
---|---|
工作電壓 | DC5V |
工作電流 | 15mA |
工作頻率 | 40Hz |
最遠射程 | 4m |
最近射程 | 2cm |
測量角度 | 15度 |
輸入觸發信號 | 10us的TTL脈衝 |
輸出迴響信號 | 輸出TTL電平信號,與射程成比例 |
規格尺寸 | 452015mm |
引腳
VCC、trig(控制端)、echo(接收端)、GND
使用方法
一個控制口發一個10US以上的高電平,就可以在接收口等待高電平輸出.一有輸出就可以開定時器計時,當此口變爲低電平時就可以讀定時器的值,此時就爲此次測距的時間,方可算出距離.如此不斷的週期測,就可以達到你移動測量的值了。
程序
語言:python
引腳:
引腳 | BCM 編碼 |
---|---|
Vcc | 5V |
Trig | 23 |
Echo | 24 |
Gnd | GND |
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO_TRIG = 23
GPIO_ECHO = 24
GPIO.setup(GPIO_TRIG, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
# 發送高電平信號到 Trig 引腳
GPIO.output(GPIO_TRIG, True)
# 持續 10 us
time.sleep(0.00001)
GPIO.output(GPIO_TRIG, False)
# 高電平持續時間就是超聲波從發射到返回的時間
while GPIO.input(GPIO_ECHO) == GPIO.LOW: pass
start_time = time.time()
while GPIO.input(GPIO_ECHO) == GPIO.HIGH: pass
stop_time = time.time()
# 計算距離 聲波的速度爲 34000cm/s。
distance = ((stop_time - start_time) * 34000) / 2
return distance
while True:
dist = distance()
print("距離: {:.2f} cm".format(dist))
time.sleep(1)