# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up