如何用arduino制作超声波测距模块
超声波测距是一种常见的测量方法,它通过发射超声波,并依据回波时间计算出物体到探头的距离。在arduino中,可以通过加一个超声波测距模块来实现测距,这样可以知道一个东西移动了多少距离等。本文将为大家介绍如何用arduino制作超声波测距模块。
一、超声波测距模块的选择
超声波测距模块有很多种,本文选用的是US-100。US-100是一款小型的超声波测距芯片,具有高精度、低功耗、高可靠性等优点。其引脚为左右两端为正极与地,中间为信号引脚,因此有两种出发方式:电平触发和串口触发。
二、连线步骤
将超声波测距模块的trig(触发信号)和echo(输出信号)接到arduino开发板的2、3口上,并将正极和地接到相应的位置上。下图是实物连线3D图:
三、程序编写
1. 电平触发方式
首先,需要将触发端口设置为输出OUTPUT,反馈端口设置为输入INPUT,然后给电平即可。以下是电平触发的完整代码:
```
define EchoPin 3 // 设置输出端口
define TrigPin 2 // 设置输入端口
void setup()
{
(9600); // 设置串口速率为9600
pinMode(EchoPin, INPUT); // 将输出端口设置为输入模式
pinMode(TrigPin, OUTPUT); // 将输入端口设置为输出模式
}
void loop()
{
digitalWrite(TrigPin, LOW); // 向trig口发送低电平信号
delayMicroseconds(2); // 延时2us
digitalWrite(TrigPin, HIGH); // 向trig口发送高电平信号
delayMicroseconds(10); // 延时10us
digitalWrite(TrigPin, LOW); // 恢复低电平
float distance pulseIn(EchoPin, HIGH) / 58.00; // 计算距离
(distance); // 输出距离值
(" cm"); // 输出单位
delay(100); // 延时100ms
}
```
2. 串口触发方式
使用串口触发也可以实现超声波测距。以下是部分代码,可以自行编写完整代码:
```
const int trigPin 2;
const int echoPin 3;
void setup() {
(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, inches, cm;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration pulseIn(echoPin, HIGH);
inches microsecondsToInches(duration);
cm microsecondsToCentimeters(duration);
(inches);
("in, ");
(cm);
("cm");
();
delay(100);
}
long microsecondsToInches(long microseconds) {
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}
```
四、测试结果
将程序编译上传到板子上后,打开软件右上端的串口工具,就可以在串口工具的输出框中看到距离超声波测距模块之间的距离。可以用尺寸检测是否正确。通过这种方法,我们可以轻松制作出一个简单的超声波测距模块,用于测量各种距离。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。