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

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

帶有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項目。

相關焦點

  • 基礎操作第10課,超聲波傳感器示例程序講解
    基礎操作第10課,超聲波傳感器示例程序講解 預計閱讀時間:2分鐘 超聲波傳感器 是將超聲波信號轉換成 其他能量信號(通常是電信號)的傳感器 超聲波是振動頻率高於20kHz的機械波 它具有
  • 超聲波傳感器——短距離應用的明智選擇
    超聲波技術已經進入了廣泛的應用領域,最大的領域可能是接近檢測和距離測量。超聲波傳感器有時與微波/毫米波雷達和攝像機結合使用,以在汽車和工業應用中提供不同但互補的周圍環境視圖。如果您正在尋找一種傳感器,它不僅可以檢測目標的存在,還可以告訴您目標有多遠,則超聲波可能是您的理想選擇。超聲波是指超出人類聽力範圍(> 20 kHz)的信號,通常在40至70 kHz範圍內。這些信號像雷達一樣使用,它們會向目標輻射並反射回源。它們價格低廉,靈活,並且特別適用於短距離應用,尤其是汽車,家庭和工業機器人設計。
  • 超聲波傳感器應用場景案例分析
    超聲波傳感器是發送和接收超聲波的收發器,通過聲速以及回聲從物體反射回來的時間來測量距離。超聲波傳感器不受外界環境的影響,幾乎能檢測出任何材料,且不受材料表面性質的影響。他們還可以滿足不同的應用需求,因此超聲波傳感器的多樣化應用領域可歸納為以下幾個方面:液體或物料的液位/料位測量、行人檢測、機器人避障/防護、以及AVG檢測等。本文主要圍繞超聲波傳感器應用場景案例提供相對應的解決方案。
  • 超聲波避障傳感器及超聲波測距傳感器在機器人中的應用
    隨著計算機技術、傳感器技術、人工智慧的發展,移動機器的避障及自主導航技術已經取得了豐碩的研究成果,應用領域也在不斷地擴大,應用複雜程度也越來越高。然而至今沒有任何一種方法能夠在任意環境使機器人進行有效地避障,如何克服相關算法的局限性是今後工作的研究方向之一。
  • 超聲波傳感器的工作原理及應用
    在空氣中傳播超聲波,其頻率較低,一般為幾十KHZ,而在固體、液體中則 頻率可用得較高。在空氣中衰減較快,而在液體及固體中傳播,衰減較小,傳播較遠。利用超聲波的特性,可做成各種超聲傳感器,配上不同的電路,製成各種超聲測量儀器及裝置,並在通迅,醫療家電等各方面得到廣泛應用。超聲波傳感器主要材料有壓電晶體(電致伸縮)及鎳鐵鋁合金(磁致伸縮)兩類。電致伸縮的材料有鋯鈦酸鉛(PZT)等。
  • 超聲波傳感器在AGV機器人中的應用詳解
    打開APP 超聲波傳感器在AGV機器人中的應用詳解 工採網 發表於 2020-11-30 11:35:28 得益於在物流行業、工廠生產線以及服務領域越來越多的落地應用,移動機器人行業處於一片廣闊的藍海中,很可能成為下一個風口。隨著機器人性能的不斷完善,物流和3C行業等迅速發展,AGV的應用範圍也大幅度擴展,已廣泛應用於工業、農業、交通運輸、醫療、服務等領域。 AGV機器人作為輪式移動機器人的分支,它最關鍵的技術就是定位和導航。
  • 超聲波傳感器測距方法詳解
    超聲波傳感器測距方法詳解 2018-03-26 17:57 來源: ISweek 在日常生產生活中,超聲波測距傳感器主要應用於汽車的倒車雷達、及機器人自動避障行走、建築施工工地以及一些工業現場例如
  • 簡單的超聲波測距模塊製作_HC-SR04超聲波測距模塊及製作圖詳解
    _u=ukgdp5a7629&id=524088004171】由於超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經常用於距離的測量,如測距儀和物位測量儀等都可以通過超聲波來實現。利用超聲波檢測往往比較迅速、方便、計算簡單、易於做到實時控制,並且在測量精度方面能達到工業實用的要求,因此在移動機器人研製上也得到了廣泛的應用。
  • 超聲波測距傳感器在礦用機車上的應用
    同時由於物聯網屬於網際網路的技術延伸和應用,生產力和生產資料的不斷革新,煤礦機電設備也得到迅速的推廣和發展。在煤礦生產中,機電沒備佔據著越來越重的位置,縱穿生產一線上的每個環節。大量的採煤設備引進到煤礦當中使用,煤礦的開採量也隨之增加,但開採量增加的同時帶來了一個新的問題——如何將開採出來的煤安全快速地運輸出去。針對這一問題,我國煤礦採取增加機車運輸車輛、提高電動機車的車速和機車24 h作業。
  • 艾邁斯半導體推出應用於超聲波水流量計量的完整單晶片硬體及軟體...
    全球領先的高性能模擬IC和傳感器供應商艾邁斯半導體今日宣布推出TDC-GP30-F01以擴展其超聲波流量計集成電路產品系列。
  • Arduino教程:認識超聲波傳感器(簡明版)
    超聲波傳感器是一個輸入模塊,提供了非常好的非接觸範圍檢測,性能穩定,易於使用,盲區小,準確度高,測距距離從2釐米到400釐米不等,關鍵是還很便宜,在創客圈應用最為廣泛,包括:機器人測距避障,液位檢測等。
  • 超聲波傳感器簡介
    超聲波距離傳感器技術應用超聲波對液體、固體的穿透本領很大,尤其是在陽光不透明的固體中,它可穿透幾十米的深度。超聲波碰到雜質或分界面會產生顯著反射形成反射成回波,碰到活動物體能產生都卜勒效應。因此超聲波檢測廣泛應用在工業、國防、生物醫學等方面。
  • python超聲波傳感_樹莓派超聲波傳感器python - CSDN
    超聲波測距應用廣泛,本次實戰通過樹莓派B+連接HC-SR04超聲波測距傳感器,用python GPIO控制傳感器完成距離測定,並將距離顯示在屏幕上。
  • 超聲波傳感器工作原理簡介
    ,各種複雜的應用也越來越多,這對傳感器的功能也提出了越來越多、越來越高的要求。 從原理上來講超聲波傳感器可以分為超聲波測傳感器、超聲波接近傳感器、反射板式超聲波傳感器、對射式超聲波傳感器四類。這四類產品中,反射板式超聲波、對射式超聲波與光電傳感器中的鏡反射和對射式光電原理一樣,非常簡單,無需多做介紹。 超聲波測距傳感器、超聲波接近傳感器這兩種最典型、使用的也最多,其工作原理相同,只是輸出一個是開關量一個是模擬量,原理如下: 超聲波傳感器工作分為兩個步驟:
  • 超聲波風速傳感器 CV7-OEM的特點及應用
    打開APP 超聲波風速傳感器 CV7-OEM的特點及應用 工採網 發表於 2021-01-13 15:14:49 開發和利用新能源及可再生能源是解訣中國能源和環保問題的重要戰略措施之一
  • 用於機器人的超聲波傳感器模塊
    打開APP 用於機器人的超聲波傳感器模塊 佚名 發表於 2018-05-24 09:10:00 隨著傳感器技術的推廣應用,機器人的發展也備受關注
  • 基於MEMS 的「矽晶片聲納」超聲波ToF傳感器擴大了感應範圍
    TDK公司宣布現在可以選擇擴大了感應範圍的基於 Chirp CH-201 MEMS的超聲波飛行時間(ToF)傳感器的原始設備製造商(OEM)。此款ToF傳感器利用微型超聲換能器晶片發射超聲波脈衝,然後收聽從位於傳感器視場中的目標返回的回波。
  • 超聲波傳感器基礎知識(5)——超聲波傳感器(結構開放型)的基本電路...
    介紹超聲波傳感器(結構開放型)距離檢測的基本電路。距離檢測電路被稱為脈衝反射方式,用於測量從超聲波的發射脈衝到接收脈衝的反射時間。到物體的距離L與反射時間T之間的關係由下式表示。
  • IMERAI將超聲波回聲定位傳感器與AI相結合來了解周圍的物理世界
    IMERAI將超聲波回聲定位傳感器與AI相結合來了解周圍的物理世界 sensorexpert 發表於 2020-09-22 14:34:16 傳感器應用蘇格蘭初創公司IMERAI將超聲波回聲定位傳感器與人工智慧
  • 超聲波傳感器四大檢測方法詳解
    現代傳感器技術具有巨大的應用潛力,它是高度自動化系統乃至現代尖端技術必不可少的一個關鍵組成部分。作為一種檢測裝置, 傳感器不僅能感受到被測量的信息,還能將檢測感受到的信息,按一定規律變換成為電信號或其他所需形式的信息輸出但是傳感器輸出信號應易於信息的傳輸、處理、存儲、顯示、記錄和控制等要求。