本帖最後由 tonyh 於 2022-1-24 15:35 編輯
- 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);
- }
複製代碼 |