# HC-SR04 超聲波感測器  ## 基礎小知識 > ### HC-SR04 超聲波感測器 > > 技術規格: > * 電源:DC 5V/2mA > * 輸出電位( 1 / 0 ):5V / 0V > * 精度:3 mm > * 距離範圍:2 ~ 450 cm > * 有效的角度:< 15。C > * 觸發輸入信號:10uS TTL pulse > * 接線方式:VCC、TRIG (控制端)、ECHO (接收端)、GND > > 模組工作原理: > * 採用I/O觸發測距,給至少為 10us 的高電位信號 > * 模組自動發送 8 個 40KHZ 的方波,自動檢測是否有信號返回 > * 有信號返回,通過 I/O 輸出一高電位,高電位持續的時間就是超聲波從發射到返回的時間 > * 測試距離 = (高電位時間 x 聲速 (343.2 米/秒)) / 2 ## 簡單實作 ### 接線圖:  > Vcc -- 5V > Trig -- Pin 12 > Echo -- Pin 11 > Gnd -- GND ### 程式碼: ``` c int trigPin = 12; //Trig Pin int echoPin = 11; //Echo Pin long duration, cm, inches; void setup() { Serial.begin (9600); // 設定序列埠通訊頻率 pinMode(trigPin, OUTPUT); // 定義輸入及輸出 pinMode(echoPin, INPUT); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(5); digitalWrite(trigPin, HIGH); // 給 Trig 高電位,持續 10微秒 delayMicroseconds(10); digitalWrite(trigPin, LOW); pinMode(echoPin, INPUT); // 讀取 echo 的電位 duration = pulseIn(echoPin, HIGH); // 收到高電位時的時間 cm = (duration/2) / 29.1; // 將時間換算成距離 cm 或 inch inches = (duration/2) / 74; Serial.print("Distance : "); Serial.print(inches); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.println(); delay(250); } ``` ## 延伸實作 - [超音波測距顯示](/dFZGRf1jTt2ww4NW8aD5JA)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.