超声波传感器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 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显示屏中显示该物体的距离。