2015年5月27日 星期三

課程36-超音波模組實驗

目的:

使用Arduino 偵測超音波模組的數值。

電子元件:

麵包板 x 1
Arduino 主板 x 1
超音波模組 x 1

電路圖:


程式碼:


  1. #define TRIGPIN 10
  2. #define ECHOPIN 13
  3. void setup() {
  4.  Serial.begin(9600);
  5. pinMode(TRIGPIN, OUTPUT);
  6. pinMode(ECHOPIN, INPUT);
  7. }
  8. void loop() {
  9. long cm = ping();
  10. Serial.print(cm);
  11. Serial.println(" cm");
  12. delay(100);
  13. }
  14. long ping() {
  15. digitalWrite(TRIGPIN, LOW);
  16. delay(2);
  17. digitalWrite(TRIGPIN, HIGH);
  18. delay(10);
  19. digitalWrite(TRIGPIN, LOW);
  20. return pulseIn(ECHOPIN, HIGH)/58;
  21. }

程式說明:

第一行~第二行 宣告TRIGPIN、ECHOPIN 腳位為Pin10、Pin13。
第三行~第七行 初始設定。
第四行 打開Serial 通訊,並設定頻率為9600。
第五行 設定TRIGPIN的腳位為輸出腳位。
第六行 設定ECHOPIN的腳位為輸出腳位。
第八行~第十三行 為主程式。
第九行 呼叫ping,並把傳回來的數值儲存在長整數變數cm。
第十行 在Serial上印出cm變數。
第十一行 在Serial上印出"cm" 字串。
第十二行 延遲0.1五秒。
第十四行~第二十一行 為ping()
第十五行 把TRIGPIN設為低電位。
第十六行 延遲2毫秒。
第十七行  把TRIGPIN設為高電位。
第十八行 延遲10毫秒。
第十九行 把TRIGPIN設為低電位。
第二十行 回傳 pulseIn(ECHOPIN, HIGH)/58 。


圖表:


HC-SR04
Arduino
Vcc
+5V
Trig
GPIO
Echo
GPIO
GND
GND

實驗影片:






參考資料:



2 則留言:

  1. 如何想連接多幾個ultra-sound sensors, program要怎樣寫?

    回覆刪除
  2. 如果我想要大於10cm就亮燈要怎麼寫?

    回覆刪除

Arduino、Raspberry Pi、System Integration,如有問題或建議,可以互相討論喔~