Menu
CoddyTech

Перевод времени эха в сантиметры

Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 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
  • выведи сантиметры вместо времени

Нажми Run, перемести объект, затем нажми Check.

Попробуйте сами

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