超聲波感測器HC-SR04和Arduino進行距離計算


在本教學中,將使用Ultra Sonic HC-SR04和Arduino(Arduino UNO)構建物聯網專案,以計算Ultra Sonic HC-SR04裝置與物體之間的距離。在這個專案中,我們將使用Processing應用程式在Laptop(監視器)螢幕上顯示Ultra Sonic裝置和物件之間的距離。

硬體要求

  • Arduino的UNO主機板
  • Arduino UNO的USB電纜連線器
  • Ultra Sonic HC-SR04
  • 跳線電線(公母)

軟體要求

  • Arduino軟體
  • Processing軟體

Arduino-Bluetooth模組的工作原理

Ultra Sonic HC-SR04以40,000Hz的頻率發射超聲波,在空中傳播。如果路徑中有物體或障礙物,則它會碰撞並反彈回Ultra Sonic模組。

公式距離 =速度 * 時間用於計算距離。

假設物體放置在離感測器10釐米的距離處,空氣中的聲速為340米/秒或0.034釐米/秒。這意味著聲波需要在294μs內傳播。但是Echo引腳加倍了距離(向前和反彈距離)。因此,要獲得以cm為單位的距離,將接收到的行程時間值與echo引腳相乘0.034並將除以2

Ultra Sonic HC-SR04與物體之間的距離是:

工作原理

對於Arduino裝置的程式設計,它需要Arduino軟體IDE。下載和安裝Arduino軟體IDE的完整過程在使用WiFi節點MCU和中繼模組的鏈路控制家庭燈光下給出。

開啟Arduino IDE並貼上以下程式碼。

#include <Mouse.h>  

const int trigpin= 8;  
const int echopin= 7;  
long duration;  
int distance;  
void setup(){  
  pinMode(trigpin,OUTPUT);  
  pinMode(echopin,INPUT);  
  Serial.begin(9600);  
}  

void loop(){  
  digitalWrite(trigpin,HIGH);  
  delayMicroseconds(10);  
  digitalWrite(trigpin,LOW);  
  duration=pulseIn(echopin,HIGH);  
  distance = duration*0.034/2;  
  Serial.println(distance);  
}

儲存程式並進行編譯。

編譯程序

通過Arduino UNO USB線將Arduino裝置連線到膝上型電腦(或顯示器)。在Arduino UNO上傳程式時,刪除Arduino UNO裝置(如:超聲波模組)的所有其他連線。

上傳Arduino UNO裝置中的程式碼。在Arduino UNO裝置上傳程式碼之前,請確保選擇了Arduino串列埠,否則會生成錯誤訊息未選擇串列埠。

要選擇序列埠,請開啟「裝置管理器」->「埠」->「Arduino Uno」,然後上傳程式碼。

在Arduino裝置上傳程式 -

上傳程序

數位電路圖

Ultrasonic Sensor HC-SR04       Arduino UNO

VCC    --------------------------------> 5v

Trig    --------------------------------> Pin 8

Echo    --------------------------------> Pin 7

GND    --------------------------------> GND

現在從 https://processing.org/download/ 下載處理應用程式。

下載處理應用程序

按照說明安裝Processing應用程式。

安裝Processing應用程序

將以下程式碼貼上到Processing IDE中並執行它。Processing IDE顯示Ultra Sonic模組和物件之間的距離。

import processing.serial.*;    
Serial myPort;    
String data="" ;  
PFont  myFont;    

void setup(){  
  size(1366,900); // size of processing window  
  background(0);// setting background color to black  
  myPort = new Serial(this, "COM3", 9600);  
  myPort.bufferUntil("\n");  
}  

void draw(){  
  background(0);  
  textAlign(CENTER);  
  fill(255);  
  text(data,820,400);  
  textSize(100);  
  fill(#4B5DCE);  
  text("              Distance :        cm",450,400);  
  noFill();  
  stroke(#4B5DCE);  
}  

void serialEvent(Serial myPort){  
   data=myPort.readStringUntil("\n");  
}

執行代碼

最開始,顯示將0表示無活動。

現在,連線您的Ultrasonic HC-SR04模組和Arduino裝置。使用Arduino USB電纜或220v AC介面卡為Arduino裝置輸入電源。

將物體放在Ultrasonic HC-SR04模組前面,並在Processing IDE顯示屏中顯示該物體的距離。