@Greenberg2

Почему esp32 от пустого провода значение пина меняется на HIGH?

Привет! Суть, мне надо получить сигнал и пока он есть отправить сигнал через другой пин. Но если на esp32 поставить пустой провод на пин 17, то почему то это считывается как HIGH, как быть?

#include <Arduino.h>

// Пины для входного и выходного сигнала
const int INPUT_PIN = 17;
const int OUTPUT_PIN = 18;
const int BUZZER_PIN = 21;
const int TONE_FREQUENCY = 2000;
void setup() {
  // Установка режимов пинов
  pinMode(INPUT_PIN, INPUT);
  pinMode(OUTPUT_PIN, OUTPUT);
  pinMode(BUZZER_PIN, OUTPUT);
}

void loop() {
  // Получение значения входного пина
 int inputState = digitalRead(INPUT_PIN);

  if (inputState == HIGH) { // Если обнаружено 3 вольта или более
    // Отправляем сигнал на выходной пин с интервалом 1 секунда
    digitalWrite(OUTPUT_PIN, HIGH);
    delay(1000);
    digitalWrite(OUTPUT_PIN, LOW);
    tone(BUZZER_PIN, TONE_FREQUENCY, 300);
    delay(1000);
  }
}
  • Вопрос задан
  • 105 просмотров
Пригласить эксперта
Ответы на вопрос 2
NeiroNx
@NeiroNx
Программист
Вероятно статическое элктричество - требуется включить сопротивление подтяжки, их не просто так придумали.
Ответ написан
Комментировать
@VT100
Embedded hardware & software.
Например, вход имеет высокое входное сопротивление и ловит наводки.
Посмотрите справку по pinMode, есть ли там режим с названием pulldown (вместо input). Если нет - подлючите с этого вывода на общий ("земля") резистор сопротивлением 3-10 кОм.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы