Menu
CoddyTech

回波时间转换为厘米

本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 19 课,共 24 课。

声音每微秒大约传播 0.034 厘米。把回声时间乘以这个数,就能得到声音传播的距离。

但声音传播到了物体那里,又返回了,所以物体与传感器的距离是这个距离的一半:

float cm = duration * 0.034 / 2;

距离为 1 米时,回声大约需要 5800 微秒:5800 乘以 0.034,往返距离是 197 厘米,所以物体距离传感器 98.6 厘米。写出 0.034 中的小数点,这样计算结果会保留小数。

测量结果可能会有一两厘米的误差:气温会改变声速,而且这个传感器的测量值会略微偏小。

challenge icon

挑战

简单

这段程序会打印回波时间。改为打印距离:

  • 将时间换算为厘米:乘以 0.034,再除以 2
  • 打印厘米数,而不是时间

按“运行”,移动物体,然后按“检查”。

亲手试试

const int trigPin = 9;
const int echoPin = 10;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  // 把回波时间换算成厘米并打印结果
  Serial.println(duration);
  delay(200);
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

显示器与传感器中的所有课

自己练习: Arduino 在线编辑器