超聲波傳感器HC-SR04完整應用以及程序講解

2020-12-27 工控電子愛好者

帶有Arduino的超聲波傳感器HC-SR04完整應用指南

本文是有關流行的超聲波傳感器HC – SR04的應用指南。我們將解釋其工作原理,向您展示其某些功能,並分享一個您可以遵循的Arduino項目示例,以將其集成到您的項目中。我們提供了有關如何連接超聲波傳感器的示意圖,以及與Arduino一起使用的示例電路。

描述

HC-SR04超聲波傳感器像蝙蝠一樣使用超聲波來確定到物體的距離。它以易於使用的封裝提供出色的非接觸範圍檢測,具有高精度和穩定的讀數。它帶有超聲波發射器和接收器模塊。

特徵

以下是HC-SR04超聲波傳感器的一些功能和規格列表:

電源:+ 5V DC靜態電流:<2mA工作電流:15mA有效角度:<15°測距距離:2cm – 400 cm / 1「 – 13ft解析度:0.3釐米測量角度:30度觸發輸入脈衝寬度:10uS尺寸:45mm x 20mm x 15mm它是如何工作的?

超聲波傳感器使用超聲波來確定到物體的距離。這裡面到底發生了什麼?

1. 發射器(觸發引腳)發送信號:高頻聲音。

2. 當信號找到一個物體時,它會被反射。

3. 接收器(回波引腳):接收它反射回來的信號。

信號發送和接收之間的時間使我們能夠計算到物體的距離。這是有可能的,因為我們知道聲音在空氣中的傳播速度。

HC-SR04超聲波傳感器引腳

引腳

VCC:+5VDC觸發:觸發(輸入)回聲:回聲(輸出)地:地帶有HC的Arduino – SR04傳感器

該傳感器在Arduino愛好者中非常受歡迎。因此,在這裡,我們提供了有關如何在Arduino上使用HC-SR04超聲波傳感器的示例。在該項目中,超聲波傳感器在串行監視器中讀取並寫入到對象的距離。

該項目的目的是幫助您了解該傳感器的工作原理。然後,您應該可以在自己的項目中使用此示例。

注意:有一個名為NewPing的Arduino庫,可以使您在使用此傳感器時的生活更加輕鬆。

所需零件

這是遵循下面這個教程所需要的部品列表:

Arduino UNO 超聲波傳感器(HC-SR04)麵包板跳線原理圖

按照下一個示意圖將HC-SR04超聲波傳感器連接到Arduino。

下表顯示了您需要建立的連接:

程序代碼

將以下代碼上傳到您的Arduino IDE。

int trigPin=11;

int echoPin=12;

long duration,cm,inches;

void setup()

{

Serial.begin(9600);

pinMode(trigPin,OUTPUT);

pinMode(echoPin,INPUT);

}

void loop()

{

digitalWrite(trigPin,LOW);

delayMicroseconds(5);

digitalWrite(trigPin,HIGH);

delayMicroseconds(10);

digitalWrite(trigPin,LOW);

pinMode(echoPin,INPUT);

duration=pulseIn(echoPin,HIGH);

cm=(duration/2)/29.1;

inches=(duration/2)/74;

Serial.print(inches);

Serial.print("in, ");

Serial.print(cm);

Serial.print("cm");

Serial.println();

delay(250);

}

代碼如何工作

首先,為觸發器和回顯引腳分別創建變量,分別稱為 trigPin和 echoPin。觸發引腳連接到數字引腳11,回波引腳連接到數字引腳12:

int trigPin=11;

int echoPin=12;

您還將創建三個類型為long的變量: duration, cm 和 inch。duration的持續時間可以保存信號的發射和接收之間的時間。該 cm 釐米變量將保存的是距離釐米,而英寸變量將保存英寸的距離。

long duration,cm,inches;

在 setup()中,以9600的波特率初始化串行埠,並將觸發引腳設置為輸出,並將回顯引腳設置為輸入。

Serial.begin(9600);

pinMode(trigPin,OUTPUT);

pinMode(echoPin,INPUT);

在loop()中,通過發送10微秒的HIGH脈衝來觸發傳感器。但是,在此之前,請提供一個短的LOW脈衝,以確保獲得乾淨的HIGH脈衝:

digitalWrite(trigPin,LOW);

delayMicroseconds(5);

digitalWrite(trigPin,HIGH);

delayMicroseconds(10);

digitalWrite(trigPin,LOW);

然後,您可以從傳感器讀取信號-一個HIGH脈衝,其持續時間是從信號發送到接觸到物體的回波之間的時間(以微秒為單位)。

duration=pulseIn(echoPin,HIGH);

最後,您只需要將持續時間轉換為距離即可。我們可以使用以下公式計算距離:

距離=(持續時間/ 2x聲速

聲音速度為:343m / s = 0.0343 cm / uS = 1 / 29.1 cm / uS

或以英寸為單位:13503.9in / s = 0.0135in / uS = 1 / 74in / uS

我們需要分割一下,因為走了2次,因為我們必須考慮到超聲波被送出,碰到物體,然後返回到傳感器。

cm=(duration/2)/29.1;

inches=(duration/2)/74;

最後,我們在串行監視器中列印結果:

Serial.print(inches);

Serial.print("in, ");

Serial.print(cm);

Serial.print("cm");

Serial.println();

NewPing的原始碼

您也可以使用NewPing庫。安裝NewPin庫後,您可以上傳下面提供的代碼。

#include <NewPing.h>

#define TRIGGER_PIN 11

#define ECHO_PIN 12

#define MAX_DISTANCE 200

NewPingsonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);

void setup()

{

Serial.begin(9600);

}

void loop()

{

delay(50);

unsigned intdistance=sonar.ping_cm();

Serial.print(distance);

Serial.println("cm");

}

代碼如何工作

使用NewPing庫獲取到對象的距離要簡單得多。

首先包括NewPing庫:

#include <NewPing.h>

然後,定義觸發和回波引腳。觸發引腳連接到Arduino數字引腳11,回波連接到引腳12。您還需要定義MAX_DISTANCE變量才能使用該庫。

#define TRIGGER_PIN 11

#define ECHO_PIN 12

#define MAX_DISTANCE 200

然後,創建一個名為sonar的NewPing實例:

NewPingsonar(TRIGGER_PIN,ECHO_PIN,MAX_DISTANCE);

在setup()中,以9600的波特率初始化串行通信。

Serial.begin(9600);

最後,在loop()中,要獲取距離,您只需要對超聲波對象使用ping_cm()方法。這將為您提供以釐米為單位的距離。

unsignedint distance=sonar.ping_cm();

如果要以英寸為單位獲取距離,則可以使用sonar.ping_in()代替。

故障排除

注意:如果HC-SR04沒有收到回聲,則輸出永遠不會變低。Devantec和Parallax傳感器分別在36ms和28ms之後超時。如果您按上述方式使用Pulsin,則沒有返回回顯,程序將掛起1秒鐘,這是Pulsin的默認超時時間。您需要使用timeout參數。

HC-SR04幾乎無法工作到10英尺,因此總路徑長度為20英尺,路徑時間約為20ms,因此請將超時設置為25或30ms以上。

如果您在E和T之間放置一個電阻,比如說2k2,則僅連接到T,您可以僅從一個Arduino引腳使用HC-SR04。查找超聲波傳感器的單針操作。

另外,如果您將HC-SR04與PicAxe配合使用,則需要將時鐘速度提高到至少8MHz,否則它們將看不到回波脈衝的開始,因此脈衝輸入將永遠不會開始。HC-SR04與BS2配合良好。」

寫到最後

在本文中,我們向您展示了HC-SR04超聲波傳感器如何工作,以及如何與Arduino一起使用。對於這個項目示例,您可以構建一個帶有LED和蜂鳴器的停車傳感器。

如果您是Arduino的初學者,對Arduino比較感興趣,請關注我吧,我會分享更多的Arduino項目。

相關焦點

  • 簡單的超聲波測距模塊製作_HC-SR04超聲波測距模塊及製作圖詳解
    _u=ukgdp5a7629&id=524088004171】由於超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經常用於距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現。利用超聲波檢測往往比較迅速、方便、計算簡單、易於做到實時控制,並且在測量精度方面能達到工業實用的要求,因此在移動機器人研製上也得到了廣泛的應用。
  • 小型超聲波風速風向傳感器與機械式風速風向傳感器的區別
    我們從機械式風速風向傳感器演變為更先進有效的超聲波風速風向傳感器。在機械式風速風向傳感器中用的最多的就是三杯式風速傳感器和旋翼式風向傳感器,其原理主要是靠轉動部件的速度和角度進而判斷出風速和風向,其缺點是隨著時間的增加,轉動部件的摩擦老化等原因,容易造成零部件的損壞影響測量的準確性。
  • 超聲波風速風向傳感器監測及其工作原理
    風速風向作為重要的氣象要素之一,尤其在航海、應急式車載自動氣象站等的建設中都需要移動式風速風向測量系統;另外,在環境檢測、工業風道檢測以及危險性氣體的測量等工業生產和科學研究中都對移動式測風儀器有著廣泛的應用需要。
  • 高通發布了第二代超聲波屏下指紋識別傳感器
    ,晶片巨頭高通(Qualcomm)近日發布了第二代超聲波屏下指紋識別傳感器(3D Sonic Sensor Gen 2),幾乎在所有方面都碾壓第一代產品型號。新版本為傳感器提供了更大的表面積和更快的處理速度,從而能更快地解鎖智慧型手機。雖然曾有段時間,人臉識別替代指紋識別成為首選解鎖方式,但伴隨著新冠疫情在全球範圍內的傳播,以及越來越多的人佩戴口罩,指紋識別重新受到用戶青睞。
  • 料位傳感器及其在火電廠中的應用
    1.重錘式料位傳感器 重錘式料位傳感器由伺服電動機、懸有重錘的鋼絲繩、料位發信裝置以及帶微機的顯示儀表所組成。起動後,微機發出降錘信號,伺服電動機轉動放下重錘,當重錘碰到料面後,發信器發出信號給微機,使重錘停止下降並發出升錘信號,伺服電動機反轉使重錘上升,並發出料位信號值給顯示儀表。重錘升至倉頂後電動機停轉,經過一段延時後再重複上述動作。
  • 重力傳感器的原理及應用
    一個好的程式設計師能夠使用加速度傳感器來回答所有上述問題。   3、重力傳感器可以用來分析發動機的振動。   4、重力傳感器在進入消費電子市場之前,實際上已被廣泛應用於汽車電子領域,主要集中在車身操控、安全系統和導航,典型的應用如汽車安全氣囊(Airbag)、ABS防抱死剎車系統、電子穩定程序(ESP)、電控懸掛系統等。
  • 秀操作:用HC-SR04和STM32F103ZET6做超聲波測距
    網站:bbs.21ic.com背景:最近整理東西,發現了一個藍色的小模塊,上面還有兩個像喇叭的小東西,關鍵上面還有絲印,用藍底白字寫著「HC-SR04」,於是勾起了我的好奇心,動動小手指,百度找到了這個小板子的信息,原來是一個超聲波測距模塊
  • 澳洲研發首款可在體內使用的生物傳感器,可接收超聲波信號進行長期...
    利用廉價且便攜的超聲波作為手段來追蹤疾病狀態,一直以來都是一個難以實現的難題,例如響應新藥對腫瘤的反應或診斷肌鈣蛋白而引發心臟病的風險。  現在,澳大利亞墨爾本的研究人員已經開發出了首款可在體內使用的生物傳感器,該傳感器能夠發出可以被普通超聲波掃描儀檢測到的信號。
  • 汽車雷達傳感器行業科普
    兩因素疊加推動中國雷達傳感器在汽車行業應用規模增長,預計2023年應用規模將達到224.9億元。 中國雷達傳感器在汽車領域的應用市場參與者主要包括雷達模塊廠、無人駕駛模塊廠、整車廠和網際網路企業。
  • 高通第二代超聲波屏下指紋識別傳感器發布:更大更快
    IT之家 1 月 12 日消息 你是否還在為 Galaxy S20 等手機中超聲波指紋識別器的準確性和響應速度感到痛苦?高通在今天的 CES 2021 上推出了 3D 聲波傳感器 2 代,有望緩解上代產品的許多問題。
  • 雷達傳感器在中國汽車應用中的6大功能_騰訊新聞
    應用場景 因涉及到汽車的自動制動,ACC系統還需協調發動機管理系統、自動變速箱控制器、電子穩定程序等部件進行工作。
  • 關於超聲波測距儀在機器人系統中的作用
    甚至是工業機器人中最為普遍的傳感器技術之一是超聲波傳感器。傳感器可謂是用來檢測機器人自身的工作狀態,以及機器人智能探測外部工作環境和對象狀態的核心部件。不僅能感受規定的被測量,還能按照一定的規律轉換成可用輸出信號的器件或裝置。 由於超聲波指向性強,在介質中傳播的距離較遠,因而超聲波經常用於距離的測量,如測距儀和物位測量儀等,都可以通過超聲波來實現。
  • 【科學實驗】自製手持超聲波懸浮裝置
    先看完整的製作視頻要自己製作一個這樣的裝置必需得懂得一定的電子知識,所有的元件在淘寶都能買到,只需要按照步驟一步步的連接就可以了。下面是所用到的元件和電路板型號:EU40C16T/R-2,16MM超聲波傳感器探頭,40kHz (24個)T為發射,R為接收。
  • 光纖傳感器的組成結構,光纖傳感器的應用及其優缺點
    光纖傳感器的基本結構由光源、傳輸光纖和光檢測部分組成。考慮到光纖傳輸已經很簡單,通常一套完整的光纖傳感器主要由傳感器和解調儀構成。當有光纖入射的時候,如果光纖的波長正好等於間隔的兩倍,那麼這個光波將會受到強烈的反射,而如果光纖受到溫度變化或者應變等等,這個反射波長將會發生變化,這種傳感器在一根光纖上可以做很多個,把它連接起來就可以用於各種各樣的傳感應用。   因為光纖是軟的,它可以兩維、三維,所以橫軸是空間的位置,縱軸是測量對象。這樣一個傳感網解決了什麼問題呢?
  • 風速傳感器的工作原理_風速傳感器安裝位置
    風速傳感器的工作原理   風速傳感器是一種可以連續測量風速和風量(風量=風速x橫截面積)大小的常見傳感器。風速傳感器大體上分為機械式(主要有螺旋槳式、風杯式)風速傳感器、熱風式風速傳感器、皮托管風速傳感器和基於聲學原理的超聲波風速傳感器。
  • 四方光電熊友輝:超聲波燃氣表是物聯網燃氣表發展的方向
    在剛結束的第23屆中國國際燃氣、供熱技術與設備展覽會上,超聲波燃氣表成為行業一個新的熱點。超聲計量技術在燃氣行業內經歷十餘年的開發應用後,已經逐漸成為新一代燃氣計量技術的主流趨勢,能夠更準確安全地採集、沉澱海量數據,為城市數據挖掘、數據分析提供有效支撐。
  • 關於氣壓傳感器的應用
    氣壓傳感器應用 手機GPS測海拔高度 氣壓傳感器首次在智慧型手機上使用是在Galaxy Nexus上,而之後推出的一些Android旗艦手機裡也包含了這一傳感器,像Galaxy SIII、Galaxy Note2也都有。 對於喜歡登山的人來說,都會非常關心自己所處的高度。
  • 特斯拉與蔚來|全網吹爆的汽車傳感器「雷射雷達」有多牛?
    目前而言自動駕駛的「感知」主要分為:毫米波雷達、雷射雷達、超聲波雷達以及大眾熟知的攝像頭。 超聲波雷達防水、防塵,即使有少量的泥沙遮擋也不影響。探測範圍在 0.1-3 米之間,而且精度較高,因此非常適合應用於泊車。
  • MEMS加速度傳感器在電機健康狀態監測上的應用
    據ADI代理商Excelpoint世健公司介紹,世健已經為湖南、四川等多個地區的鋼鐵、風電等客戶搭建了從傳感器到雲端的全套系統,目前進入前期導入階段。常見的加速度傳感器主要有壓電陶瓷加速度傳感器、應變式加速度傳感器、電容式加速度傳感器和MEMS加速度傳感器,傳統的電機振動監測主要選用IEPE電壓輸出型壓電加速度傳感器。
  • 四方光電:引領氣體傳感器技術創新,多頭並進推動業績高增長
    傳感器技術與通信技術、計算機技術並稱現代信息產業的三大支柱,是當代科學技術發展的重要標誌之一。如果說計算機是人類大腦的擴展,那麼傳感器就是人類五官的延展。據前瞻產業研究院測算,2020年我國傳感器市場規模為1878億,其中氣體傳感器產業規模將達到600億元以上。氣體傳感器的應用範圍最廣,氣體是人類賴以生存的重要物質,也是眾多工業過程的原料以及產物。