当前位置: 首页 > 教程 > 物联网(IoT) >

超声波传感器HC-SR04和Arduino进行距离计算

精华
小牛编辑
174浏览
2023-03-14

在本教程中,将使用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显示屏中显示该物体的距离。