超聲波感測器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顯示幕中顯示該物體的距離。


上一篇: 使用WiFi節點MCU和中繼模組控制家庭照明 下一篇: 超聲波感測器HC-SR04和Arduino設備的Sonar系統專案