回波时间转换为厘米
本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 19 课,共 24 课。
声音每微秒大约传播 0.034 厘米。把回声时间乘以这个数,就能得到声音传播的距离。
但声音传播到了物体那里,又返回了,所以物体与传感器的距离是这个距离的一半:
float cm = duration * 0.034 / 2;距离为 1 米时,回声大约需要 5800 微秒:5800 乘以 0.034,往返距离是 197 厘米,所以物体距离传感器 98.6 厘米。写出 0.034 中的小数点,这样计算结果会保留小数。
测量结果可能会有一两厘米的误差:气温会改变声速,而且这个传感器的测量值会略微偏小。
挑战
简单这段程序会打印回波时间。改为打印距离:
- 将时间换算为厘米:乘以 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);
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
显示器与传感器中的所有课
自己练习: Arduino 在线编辑器