Подключение HC-SR04 к ESP32

Ультразвуковой датчик расстояния

HC-SR04 соединяют с ESP32 четырьмя проводами: питание, земля и два сигнальных вывода, TRIG и ECHO, на любые свободные GPIO. Главная особенность этой пары — уровни: датчик пятивольтовый, а ESP32 — 3,3-вольтовая.

Схема подключения HC-SR04 к ESP32

HC-SR04ESP32
ECHOGPIO18
TRIGGPIO5
VCC3V3
GNDGND

Схема из примера «Ультразвук: измерение расстояния».

⚡ В примере «HC-SR04» питается от 3V3 — в симуляторе так проще, и модель это допускает. Настоящий модуль рассчитан на 5 В: подключайте VCC к VIN (5 В от USB) или к отдельному источнику 5 В с общей землёй.

Ультразвук: измерение расстояния

Открыть пример целиком

Выводы HC-SR04

ВыводНазначение
ECHOвыход: длительность высокого уровня — время полёта звука
TRIGвход запуска: импульс 10 мкс начинает измерение
VCCпитание 5 В
GNDобщий провод

Код для ESP32

const int TRIG = 5, ECHO = 18;

void setup() {
  Serial.begin(115200);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
}

float measureCm() {
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  // Скорость звука 343 м/с = 0.0343 см/мкс, путь туда и обратно.
  unsigned long us = pulseIn(ECHO, HIGH, 30000);
  if (us == 0) return -1;
  return us * 0.0343 / 2.0;
}

void loop() {
  float cm = measureCm();
  if (cm < 0) Serial.println("вне диапазона");
  else Serial.printf("%.1f см\n", cm);
  delay(300);
}

Скетч можно править и запускать в симуляторе без платы и установки среды.

Что учесть на ESP32

Частые ошибки при подключении к ESP32

Другие детали для ESP32