Arduino提高篇07—超聲波測(cè)距

超聲波測(cè)距

超聲波是振動(dòng)頻率高于20KHz的機(jī)械波,它具有頻率高、波長(zhǎng)短、繞射現(xiàn)象小、方向性好、能夠成為射線而定向傳播等特點(diǎn),在工業(yè)、國(guó)防、生物醫(yī)學(xué)等方面有廣泛應(yīng)用,本篇介紹利用超聲波進(jìn)行測(cè)距。

1. 測(cè)距原理

超聲波傳感器的發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射的同時(shí)開(kāi)始計(jì)時(shí),超聲波在空氣中傳播,途中碰到障礙物就立即返回來(lái),超聲波接收器收到反射波就立即停止計(jì)時(shí)。根據(jù)計(jì)時(shí)器記錄的時(shí)間t,聲波在空氣中的傳播速度為340m/s,就可以計(jì)算出發(fā)射點(diǎn)距障礙物的距離s,即:s=340m/s × t / 2 。這就是所謂的時(shí)間差測(cè)距法。

2. 超聲波傳感器介紹

超聲波傳感器是將超聲波信號(hào)轉(zhuǎn)換成其他能量信號(hào)「通常是電信號(hào)」的傳感器。HC-SR04是比較常用的超聲波傳感器模塊,廣泛應(yīng)用于機(jī)器人測(cè)距、小車避障等場(chǎng)合。

超聲波模塊

主要參數(shù)

  • 電壓:DC5V
  • 電流:15mA
  • 頻率:40KHz
  • 感應(yīng)角度:<15度
  • 探測(cè)距離:2cm—400cm
  • 精度:3mm

使用說(shuō)明

  • 采用Trig引腳觸發(fā)測(cè)距,給至少10us的高電平信號(hào)。
  • 模塊自動(dòng)發(fā)送8個(gè)40KHz的方波,自動(dòng)檢測(cè)是否有信號(hào)返回。
  • 有信號(hào)返回后,通過(guò)Echo引腳輸出高電平,通過(guò)高電平持續(xù)時(shí)間獲取到時(shí)間量。

3. 實(shí)驗(yàn)材料

  • Uno R3開(kāi)發(fā)板
  • 配套USB數(shù)據(jù)線
  • 面包板及配套連接線
  • HC-SR04超聲波傳感器模塊

4. 實(shí)驗(yàn)步驟

1. 根據(jù)原理圖搭建電路圖。

超聲波傳感器模塊的VCC、GND分別連接到開(kāi)發(fā)板的5V、GND。傳感器的Trig引腳、Echo引腳分別連接到開(kāi)發(fā)板的數(shù)字引腳2、3。

實(shí)驗(yàn)原理圖如下圖所示:

實(shí)驗(yàn)原理圖

實(shí)物連接圖如下圖所示:

實(shí)物連接圖

2. 新建sketch,拷貝如下代碼替換自動(dòng)生成的代碼并進(jìn)行保存。

#define TrigPin 2
#define EchoPin 3

float Value_cm;

void setup() {
  Serial.begin(9600);
  pinMode(TrigPin, OUTPUT);
  pinMode(EchoPin, INPUT);
}

void loop() {
  digitalWrite(TrigPin, LOW); //低高低電平發(fā)一個(gè)短時(shí)間脈沖去TrigPin
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  Value_cm = float( pulseIn(EchoPin, HIGH) * 17 ) / 1000; 
  //讀取一個(gè)引腳的脈沖(HIGH或LOW)。例如,如果value是HIGH,pulseIn()會(huì)等待引腳變?yōu)镠IGH,開(kāi)始計(jì)時(shí),再等待引腳變?yōu)長(zhǎng)OW并停止計(jì)時(shí)。
  //接收到的高電平的時(shí)間(us)*340m/s/2=接收到高電平的時(shí)間(us)*17000cm/1000000us = 接收到高電平的時(shí)間*17/1000(cm) 
  Serial.print(Value_cm);
  Serial.println("cm");
  delay(1000);
}

3. 連接開(kāi)發(fā)板,設(shè)置好對(duì)應(yīng)端口號(hào)和開(kāi)發(fā)板類型,進(jìn)行程序下載。

程序下載

5. 實(shí)驗(yàn)現(xiàn)象

打開(kāi)串口監(jiān)視器,波特率設(shè)置成與程序中相一致的9600。改變超聲波傳感器與遮擋物的距離,監(jiān)視器中將顯示對(duì)應(yīng)的距離。

實(shí)驗(yàn)現(xiàn)象
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容