<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> Arduino >> 瀏覽文章

        超聲波測距儀實驗

        作者:未知   來源:不詳   點擊數:  更新時間:2014年07月31日   【字體:

         本實驗需要一個Arduino開發板,一個超聲波傳感器元件,一臺安裝了 Flash cs3Arduino軟件的計算機。

        首先對Arduino開發板寫入一下程序:

         
        ......此處省略若干定義語句
        void loop () {                     //主程序
             digitalWrite(outputPin, LOW); // 發出超聲波信號接口低電平2μs
          delayMicroseconds(2);
          digitalWrite(outputPin, HIGH); // 發出超聲波信號接口高電平10μs
          delayMicroseconds(10);
          digitalWrite(outputPin, LOW);    // 保持發出超聲波信號接口低電平
          int distance = pulseIn(inputPin, HIGH);  // 讀出脈沖時間
              Serial.print(distance);          //Arduino發送脈沖時間
              Serial.print(0,BYTE);            //Arduino發送一個空字節
               delay(val);                     //延時10ms
          }
        上述寫在Arduino里的程序的功能主要是讀出超聲波傳感器發射超聲波到接受反射回來的波所經過的時間差,然后將這個時間差發送出去,讓電腦接收。
        寫入程序后,將超聲波傳感器的輸入輸出端連接到Arduino的端口4和端口5,電源輸入端連接到Arduino的高電平輸出端,接地端連接到Arduino的接地端。這樣超聲波傳感器與Arduino的連接就完成了。接下去開始寫計算機端的Flash程序。
        ArduinoFlash并不能直接通信,必須通過一個服務器轉接,這里選擇Serproxy進行轉接。Serproxy的作用在于它會建立一個xml服務器,將來自Arduino的數據轉換為xml格式,儲存在它零時建立的虛擬服務器上。然后Flash便可以從serproxy建立的虛擬服務器中讀取xml格式的數據。Serproxy服務器從國外的網站www.arduino.cc上直接下載得到。下面編寫Flash端的程序,因為代碼過多,此處省去。

         
        程序完成了將得到的從Arduino發送的時間間隔轉換為距離值,并且完成將距離值實時顯示出來,以及用屏幕上的物塊來實時模擬實際物體的移動。在按下記錄按鈕后能夠每5ms讀取一個數據,然后對每四個數據取平均,以每20ms記錄一次將這些數據依次記錄到數組中,并依次顯示出來,同時畫出距離—時間圖像,同時還可以通過對圖像的選擇來保留選中的數據。
         
        通過上訴程序,可以看到通過ArduinoFlash開發的這個課件具有實時的測量并記錄物體位移的功能。有了這個功能,可以完成很多物理實驗,例如研究物體加速度與力、質量的關系,研究小球簡諧運動的圖像等等。當然,這個課件在數據處理上的功能可能并不強大,但是我們可以將課件中記錄下來的距離數據復制到excel中,利用excel強大的功能來進行數據的分析和處理,甚至計算出每個時刻物體的速度,畫出速度—時間圖像等等。
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮