標題:
HC-SR04 超音波測距模組
[打印本頁]
作者:
tonyh
時間:
2022-1-25 16:27
標題:
HC-SR04 超音波測距模組
int trigPin = 12; //Trig Pin
int echoPin = 13; //Echo Pin
float duration, cm, inches;
void setup() {
Serial.begin (9600); // Serial Port begin
pinMode(trigPin, OUTPUT); // 定義輸入及輸出
pinMode(echoPin, INPUT);
}
void loop()
{
digitalWrite(trigPin, HIGH); // 給 Trig 高電位,持續 10 微秒
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT); // 讀取 Echo 的電位
duration = pulseIn(echoPin, HIGH); // 收到高電位時的時間
cm = (duration/2) / 29.1;
inches = (duration/2) / 74; // 29.1 * 2.54 = 74
Serial.print("Distance : ");
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}
/*
• 音速 c = 331.5 + 0.607 * t (其中 t 為攝氏溫度)。
例: 攝氏20度時的音速約為: 331.5 + 0.607*20 = 343.64 公尺/秒
• 音速公尺/秒 換算成 公分/微秒:343.64 * 100 / 1000000 = 0.034364 公分/微秒,亦即
音速每公分需要29.1 微秒: 1 / 0.034364 = 29.1 微秒/公分
超音波發射的距離為來回,因此單程距離 = 時間差 / 2 再除以 29.1 微秒 / 公分,同樣的如果要換算成英吋,只要將 29.1 再乘以 2.54 即可。
*/
複製代碼
#include <Ultrasonic.h>
Ultrasonic ultrasonic(12,13); //Trig Pin, Echo Pin
int distance;
void setup() {
Serial.begin (9600);
}
void loop()
{
distance=ultrasonic.read(); //read(INC) 為輸出英吋
Serial.print("Distance in CM: ");
Serial.println(distance);
delay(250);
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2