Датчик расстояния ESP32 + работает только при отключении и повторном подключении кабеля после загрузки кода

esp32 ultrasonics

Я пытаюсь настроить свой ESP32-WROOM-32D для использования ультразвукового датчика расстояния звука AJ-SR04M, но у меня возникли некоторые трудности.

Используя Arduino IDE с NewPing и приведенным ниже кодом, измерения расстояния работают нормально, но только тогда, когда я подключаю питание AJ-SR04M после загрузки кода:

#include <NewPing.h>
 
#define TRIGGER_PIN 4
#define ECHO_PIN 0
#define MAX_DISTANCE 400

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); 
 
void setup() {
   Serial.begin(9600);
}
 
void loop() {
   delay(50);
   unsigned int distance = sonar.ping_cm();
   Serial.print(distance);
   Serial.println("cm");
}

Когда датчик расстояния подключен во время загрузки кода, ничего не происходит (нет выхода на последовательную консоль, нет светодиода на датчике). Когда я выполняю загрузку кода и после этого подключаю +5V, то все работает нормально.

Я тоже попробовал использовать Arduino Uno; там это ограничение неприменимо.

Что происходит - как я могу воплотить это в жизнь без необходимости каждый раз отключать/подключать мой датчик?

, 👍0

Обсуждение

Не используйте GPIO 0. Это повлияет на режим загрузки., @Majenko

@Majenko: спасибо, это действительно было подвохом. Странно видеть такие учебники, как https://diyi0t.com/ultrasonic-sensor-tutorial-for-arduino-and-esp8266/ поощрять использование GPIO 0., @SaeX

Не верьте всему, что вы читаете в Интернете..., @Majenko

Будьте уверены, я этого не делаю ;-), @SaeX