<li id="8g3ty"><tbody id="8g3ty"><th id="8g3ty"></th></tbody></li>
    <label id="8g3ty"><samp id="8g3ty"></samp></label>
  • <span id="8g3ty"></span>

    1. <center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
    2. <bdo id="8g3ty"><meter id="8g3ty"><bdo id="8g3ty"></bdo></meter></bdo><center id="8g3ty"><optgroup id="8g3ty"></optgroup></center>
      <label id="8g3ty"><samp id="8g3ty"></samp></label>

    3. 電子開發網

      電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
      搜索: 您現在的位置: 電子開發網 >> 基礎入門 >> Arduino開發學習 >> 正文

      Arduino示例教程超聲波測距實驗含程序代碼

      作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2024/11/2

      超聲波傳感器

      超聲波是一種超出人類聽覺極限的聲波即其振動頻率高于20 kHz的機械波。超聲波傳感器在工作的時候就是將電壓和超聲波之間的互相轉換,當超聲波傳感器發射超聲波時,發射超聲波的探頭將電壓轉化的超聲波發射出去,當接收超聲波時,超聲波接收探頭將超聲波轉化的電壓回送到單片機控制芯片。超聲波具有振動頻率高、波長短、繞射現象小而且方向性好還能夠為反射線定向傳播等優點,而且超聲波傳感器的能量消耗緩慢有利于測距。在中、長距離測量時,超聲波傳感器的精度和方向性.都要大大優于紅外線傳感器,但價格也稍貴。

      超聲波發射器向某一方向發射超聲波,在發射的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。聲波在空氣中的傳播速度為340m/s,根據計時器記錄的時間t,就可以計算出發射點距障礙物的距離s,即:s=340m/s× t / 2 。這就是所謂的時間差測距法。本實驗利用超聲波測得的距離從串口中顯示。

      HC-SR04超聲波測距模塊的接口定義

      HC-SR04超聲波測距模塊的數據接口如上圖,與Arduino uno的接口連接方法:VCC接+5V,GND接地,Trig接數字I/O接口5(也可以是其它),Echo接數字I/O接口4(也可以是其它)。

       

      知識要點:

      pulseIn() :用于檢測引腳輸出的高低電平的脈沖寬度。
      pulseIn(pin, value)
      pulseIn(pin, value, timeout)
      Pin--- 需要讀取脈沖的引腳
      Value ---需要讀取的脈沖類型, HIGH 或 LOW
      Timeout ---超時時間,單位微秒,數據類型為無符號長整型。
      使用方法及時序圖:
      1 、使用 Arduino 采用數字引腳給 SR04 的 Trig 引腳至少 10 μ s 的高電平信號,觸發 SR04 模塊測距功能;
      2 、觸發后,模塊會自動發送 8 個 40KHz 的超聲波脈沖,并自動檢測是否有信號返回。這步會由模塊內部自動完成。
      3 、如有信號返回, Echo 引腳會輸出高電平,高電平持續的時間就是超聲波從發射到返回的時間。此時,我們能使用 pulseIn() 函數獲取到測距的結果,并計算出距被測物的實際距離。
      /*
        日期:2014.10.24
        功能:利用SR04超聲波傳感器進行測距,并用串口顯示測出的距離值
        方式:1、使用Arduino采用數字引腳給SR04的Trig引腳至少10μs的高電平信號,觸發SR04模塊測距功能;
              2、觸發后,模塊會自動發送8個40KHz的超聲波脈沖,并自動檢測是否有信號返回。
              這步會由模塊內部自動完成。
              3、如有信號返回,Echo引腳會輸出高電平,高電平持續的時間就是超聲波從發射到返回的時間。
              此時,我們能使用pulseIn()函數獲取到測距的結果,并計算出距被測物的實際距離。
      */
      // 設定SR04連接的Arduino引腳
      const int TrigPin = 2; 
      const int EchoPin = 3;
      const int LedPin = 17;
      float distance; 
      void setup()                 // 初始化串口通信及連接SR04的引腳
      {       
           Serial.begin(9600); 
            pinMode(TrigPin, OUTPUT);
           pinMode(TrigPin, OUTPUT);  
           pinMode(EchoPin, INPUT);  // 要檢測引腳上輸入的脈沖寬度,需要先設置為輸入狀態
          Serial.println("Ultrasonic sensor:");
      } 
      void loop() 
      { 
          // 產生一個10us的高脈沖去觸發TrigPin 
          digitalWrite(LedPin,HIGH); 
          delayMicroseconds(2); 
          digitalWrite(TrigPin,HIGH); 
          delayMicroseconds(10);
          digitalWrite(TrigPin,LOW); 
          // 檢測脈沖寬度,并計算出距離
          distance = pulseIn(EchoPin,HIGH);
          Serial.print(distance);
          Serial.print("ms");
          distance = distance/58; 
          distance = (int(distance*100.0))/100.0; //保留兩位小數 
          Serial.print(".....distance is:");
          Serial.print(distance); 
          Serial.print("cm"); 
          Serial.println(); 
          delay(1000);  
      }
      
      Tags:超聲波測距,Arduino,超聲波  
      責任編輯:admin
      請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
      1分 2分 3分 4分 5分

      還可以輸入 200 個字
      [ 查看全部 ] 網友評論
      關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
      返回頂部
      刷新頁面
      下到頁底
      晶體管查詢
      主站蜘蛛池模板: 中文字幕久久综合| 狠狠爱天天综合色欲网| 国产色综合天天综合网| 久久乐国产精品亚洲综合| 亚洲综合国产精品第一页| 久久亚洲精品人成综合网| 人人狠狠综合久久亚洲| 久久综合久久综合久久| 久久婷婷是五月综合色狠狠| 精品国产国产综合精品| 激情综合网五月激情| 青青青伊人色综合久久| 久久影视综合亚洲| 国产成人久久综合热| 亚洲成综合人影院在院播放| 亚洲综合色成在线播放| 婷婷五月综合激情| 色综合色天天久久婷婷基地| 亚洲综合精品一二三区在线| 97久久综合精品久久久综合| 日日狠狠久久偷偷色综合0| 激情综合亚洲色婷婷五月| 久久婷婷五月综合尤物色国产 | 狠狠色丁香婷婷综合久久来| 国产成人亚洲综合a∨| 在线成人综合色一区| 日韩亚洲国产综合高清| 综合五月激情二区视频| 97se亚洲综合在线| 色综合久久中文色婷婷| 色综合久久天天影视网| 色偷偷尼玛图亚洲综合| 国产精品成人免费综合| 精品无码综合一区| 色综合久久久久无码专区| 久久综合久综合久久鬼色| 色婷婷狠狠久久综合五月| 亚洲国产天堂久久综合| 国产成人综合美国十次| 亚洲欧美国产国产综合一区| 色综合天天综合婷婷伊人|