樹莓派-感測器 HC-SR04 超聲波測距
阿新 • • 發佈:2020-12-19
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)