返回列表 發帖

HC-SR04 超音波測距模組



  1. int trigPin = 12;                  //Trig Pin
  2. int echoPin = 13;                  //Echo Pin
  3. float duration, cm, inches;

  4. void setup() {
  5.   Serial.begin (9600);              // Serial Port begin
  6.   pinMode(trigPin, OUTPUT);        // 定義輸入及輸出
  7.   pinMode(echoPin, INPUT);
  8. }

  9. void loop()
  10. {
  11.   digitalWrite(trigPin, HIGH);     // 給 Trig 高電位,持續 10 微秒
  12.   delayMicroseconds(10);
  13.   digitalWrite(trigPin, LOW);

  14.   pinMode(echoPin, INPUT);             // 讀取 Echo 的電位
  15.   duration = pulseIn(echoPin, HIGH);   // 收到高電位時的時間

  16.   cm = (duration/2) / 29.1;
  17.   inches = (duration/2) / 74;          // 29.1 * 2.54 = 74

  18.   Serial.print("Distance : ");  
  19.   Serial.print(inches);
  20.   Serial.print("in,   ");
  21.   Serial.print(cm);
  22.   Serial.print("cm");
  23.   Serial.println();
  24.   
  25.   delay(250);
  26. }
  27. /*
  28. •  音速 c = 331.5 + 0.607 * t  (其中 t 為攝氏溫度)。

  29.     例: 攝氏20度時的音速約為: 331.5 + 0.607*20 = 343.64 公尺/秒

  30. •  音速公尺/秒 換算成 公分/微秒:343.64 * 100 / 1000000 = 0.034364 公分/微秒,亦即

  31.     音速每公分需要29.1 微秒:  1 / 0.034364 = 29.1 微秒/公分

  32.     超音波發射的距離為來回,因此單程距離 = 時間差 / 2  再除以  29.1 微秒 / 公分,同樣的如果要換算成英吋,只要將 29.1 再乘以 2.54 即可。
  33. */
複製代碼
  1. #include <Ultrasonic.h>

  2. Ultrasonic ultrasonic(12,13);   //Trig Pin, Echo Pin
  3. int distance;

  4. void setup() {
  5.   Serial.begin (9600);
  6. }

  7. void loop()
  8. {
  9.   distance=ultrasonic.read();   //read(INC) 為輸出英吋
  10.   
  11.   Serial.print("Distance in CM: ");
  12.   Serial.println(distance);
  13.   
  14.   delay(250);
  15. }
複製代碼

返回列表