Существует ли точная процедура подключения между esp32 и ультразвуковым датчиком(HC-SR04)?
В настоящее время я работаю над проектом, который объединяет esp32 и HC-SR04 и отправляет данные из HC-SR04 в мой собственный домен. Схема подключения выглядит следующим образом А код,который я использую, таков:
const int trigPin = 5;
const int echoPin = 18;
#define SOUND_SPEED 0.034
#define CM_TO_INCH 0.393701
long duration;
float distanceCm;
float distanceInch;
void setup() {
Serial.begin(115200); // Starts the serial communication
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * SOUND_SPEED/2;
distanceInch = distanceCm * CM_TO_INCH;
Serial.print("Distance (cm): ");
Serial.println(distanceCm);
Serial.print("Distance (inch): ");
Serial.println(distanceInch);
delay(1000);
}
Но модуль не выдает расстояние. Может ли кто-нибудь предложить лучший способ подключения. Заранее спасибо!
1 ответ
Лучший ответ:
Сурия,
Вы не сошли с ума - похоже, что контакты ESP32 GPIO (по крайней мере, те, которые я тестировал) не будут управлять триггерным штифтом датчика гидролокатора HC-04 достаточно высоко, чтобы вызвать импульс гидролокатора. Я протестировал пример кода NewPingExample.pde из папки "example" библиотеки NewPing как на MEGA2560, так и на ESP32_DevKitC_V4. МЕГА-реализация сработала сразу, но я так и не смог заставить модуль ESP работать. Итак, я взглянул на PIN Trigger/Echo (по умолчанию файл NewPing.h использует режим "Single Pin", поэтому вы должны убедиться, что определения TRIGGER_PIN и ECHO_PIN используют один и тот же pin). Две трассировки области видимости ниже относятся к MEGA2560 и ESP32. Как вы можете видеть, выход ESP32 достигает только 1,865 В - недостаточно высокого уровня, чтобы фактически запустить устройство. Выход МЕГА-реализации достигает более 3 В и последовательно запускает эхо (большой прямоугольник справа от узкого триггерного сигнала).
Возможно, вы захотите попробовать использовать лидарный чип STMicro VL53L0X time-of-flight - он намного меньше, потребляет меньше тока и не страдает от самоинтерференций, если вы планируете использовать более одного датчика. Некоторые идеи можно найти в этом посте на моем блоге
Спасибо за ответ @starship15. Я очень ценю ваше время за то, что вы разъяснили мне результаты!, @Suriya Prakash J J
- esp32 Stack canary watchpoint срабатывает
- bh1750 lightsesor не будет работать
- Могут ли ESP8266 и HC-SR04 дружить?
- Как определить наличие воды с помощью всего двух проводов
- ESP32 millis не работает должным образом
- esp32 http client response только 200 не получил данные после этого
- Может ли ESP 32 использовать библиотеку проводов точно так же, как это было в Arduino?
- Библиотека емкостных датчиков на D1 Mini
Не могли бы вы более конкретно рассказать об этой проблеме? Если он "не выдает расстояние", то что происходит вместо этого? Он разбивается? Всегда ли он возвращается на одно и то же расстояние? Является ли расстояние дико неточным? Или что-то еще? Ты знаешь, что имеешь в виду, а мы-нет., @romkey
Поэтому обычно после подключения на выходе в соответствии с кодом выходит что-то вроде расстояния(см): 0.00 Расстояние(дюйм):0.00, @Suriya Prakash J J
Но когда я подключаюсь к Arduino датчик работает отлично, @Suriya Prakash J J
пожалуйста, добавьте схему подключения и тестовый код к вашему сообщению ... ваш вопрос должен стоять сам по себе, без внешней ссылки, @jsotola
Действительно ли ваш вариант платы ESP32 выдает 5 В на выводе VIN?, @Majenko
Я проверил его с помощью мультиметра, и он дал мне всего около 3 В. Я сделал то же самое с arduino UNO, и он дал мне около 3,3 В на выводе 5 В., @Suriya Prakash J J
Если Arduino дает вам 3,3 В на выводе 5 В, либо ваш Arduino сломан, либо вы вытягиваете из него огромные токи, либо ваш мультиметр не работает, либо вы не знаете, как правильно использовать свой мультиметр., @Majenko
Я знаю, как пользоваться мультиметром, когда вижу его @Majenko. Я использую только один ультразвуковой датчик, поэтому знаю, как датчик будет потреблять огромный ток от esp32, @Suriya Prakash J J
Тогда где-то должно быть что-то не так, если вы измеряете только 3,3 В на выводе 5 В Arduino..., @Majenko