基于arduino的超声波测距代码
时间: 2023-07-31 13:09:23 浏览: 88
以下是基于Arduino的超声波测距代码:
```c++
// 定义超声波发送引脚
#define TRIG_PIN 2
// 定义超声波接收引脚
#define ECHO_PIN 3
void setup() {
Serial.begin(9600); // 初始化串口通信
pinMode(TRIG_PIN, OUTPUT); // 设置TRIG_PIN为输出引脚
pinMode(ECHO_PIN, INPUT); // 设置ECHO_PIN为输入引脚
}
void loop() {
digitalWrite(TRIG_PIN, LOW); // 发送低电平信号
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); // 发送高电平信号
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW); // 发送低电平信号
// 读取超声波返回的脉冲宽度,计算出距离
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
delay(500); // 延迟500毫秒
}
```
这个代码的原理是:先向超声波传感器发送一个短时间的高电平信号,然后等待传感器返回一个脉冲,计算出脉冲的宽度,最后通过计算公式计算出距离。代码中使用了pulseIn()函数来读取脉冲宽度,该函数会等待传感器返回一个高电平信号,然后返回该信号的宽度。
阅读全文