Menu
CoddyTech

Время эха ультразвукового датчика

Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 18 из 24.

HC-SR04 измеряет расстояние, как летучая мышь: он посылает щелчок на слишком высокой для нас частоте и измеряет время до эха. Чем дальше находится объект, тем дольше возвращается эхо.

У него два сигнальных контакта. Короткий импульс HIGH на TRIG заставляет его щёлкнуть. Затем ECHO переходит в HIGH и остаётся в этом состоянии, пока не вернётся эхо, поэтому длительность этого импульса HIGH равна времени, которое понадобилось звуку.

delayMicroseconds() делает паузу в миллионных долях секунды — достаточно короткую для запускающего импульса длительностью 10 микросекунд. pulseIn(pin, HIGH) ждёт, пока контакт перейдёт в HIGH, и возвращает количество микросекунд, в течение которых он оставался в HIGH. Если импульс не поступит в течение секунды, функция прекращает ожидание и возвращает 0.

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);     // импульс запуска
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);

Эхо может длиться до 38000 микросекунд — больше, чем может вместить int, поэтому сохраняй его в long.

challenge icon

Задание

Средне

TRIG подключён к выводу 9, а ECHO — к выводу 10. В loop():

  • отправь импульс HIGH длительностью 10 микросекунд на TRIG
  • измерь эхо с помощью pulseIn(echoPin, HIGH)
  • выведи время с помощью Serial.println()

Нажми Run, перемещай объект ближе и дальше на плате, затем нажми Check.

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

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

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

void loop() {
  // отправь импульс длительностью 10 микросекунд на TRIG
  // измерь длительность эхо-сигнала с помощью pulseIn() и выведи её
  delay(200);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Дисплеи и датчики

Потренируйтесь самостоятельно: Песочница Arduino