Arduino 驱动超声波测距模块
使用Arduino Uno R3驱动超声波模块HC-SR04并通过串口输出测量距离的详细说明、接线图和代码示例。
所需材料
- Arduino Uno R3
- 超声波模块HC-SR04
- 面包板和连接线
接线步骤
-
供电和地线连接:
- 将Arduino Uno的5V引脚连接到HC-SR04的VCC引脚。
- 将Arduino Uno的GND引脚连接到HC-SR04的GND引脚。
-
信号线连接:
- 将HC-SR04的Trig引脚连接到Arduino Uno的数字引脚D9。
- 将HC-SR04的Echo引脚连接到Arduino Uno的数字引脚D10。
连接图示
Arduino Uno R3 HC-SR04
---------------- -------
5V -------------------> VCC
GND -------------------> GND
D9 -------------------> Trig
D10 -------------------> Echo
示例代码
const int trigPin = 9; // Trig引脚连接到D9
const int echoPin = 10; // Echo引脚连接到D10
void setup() {
Serial.begin(9600); // 启动串口通信
pinMode(trigPin, OUTPUT); // 设置Trig引脚为输出
pinMode(echoPin, INPUT); // 设置Echo引脚为输入
}
void loop() {
// 发送超声波信号
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 读取Echo引脚的信号持续时间
long duration = pulseIn(echoPin, HIGH);
// 计算距离
// 距离 = (持续时间 / 2) * 声速(340 m/s) / 10000
// 持续时间是微秒,声速是340米/秒,转换为厘米并且除以2
long distance = duration * 0.034 / 2;
// 输出距离到串口
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500); // 延迟0.5秒
}
代码详解
-
定义引脚:
trigPin
:连接到HC-SR04的 Trig引脚。echoPin
:连接到HC-SR04的 Echo引脚。
-
初始化:
- 在
setup()
函数中,启动串口通信并设置引脚模式。 pinMode(trigPin, OUTPUT)
:设置Trig引脚为输出。pinMode(echoPin, INPUT)
:设置Echo引脚为输入。
- 在
-
发送超声波信号:
- 将Trig引脚设置为低电平,等待2微秒。
- 将Trig引脚设置为高电平,等待10微秒。
- 将Trig引脚设置为低电平,结束信号发送。
-
读取Echo信号持续时间:
- 使用
pulseIn(echoPin, HIGH)
函数读取Echo引脚的高电平持续时间。
- 使用
-
计算距离:
- 持续时间乘以声速(0.034厘米/微秒),并除以2得到距离。
-
输出距离:
- 使用
Serial.print
和Serial.println
输出计算的距离到串口。
- 使用
-
延迟:
delay(500)
:延迟0.5秒,以便每0.5秒进行一次测量。
总结
以上步骤和代码示例展示了如何使用Arduino Uno R3驱动HC-SR04超声波模块并通过串口输出测量的距离。