Реле с активным низким уровнем и контакты ESP8266 GPIO

Я использую ESP8266, в частности ESP-12-E:

У меня есть реле SRD-05VDC-SL-C, подключенное к контакту GPIO 4.

Он подключен в нормально разомкнутом состоянии (моё устройство должно быть подключено к верхнему и среднему контактам, считая сверху вниз на рисунке ниже):

В моем коде Arduino, когда я выдаю:

 pinMode(4, OUTPUT);

Похоже, это переводит контакт в НИЗКИЙ уровень, который является активным состоянием реле, подает на него питание, которое включает мое устройство еще до того, как мой управляющий код успеет запуститься. Я хочу получить вывод для вывода, но оставить его плавающим.

Как мне настроить вывод вывода, но оставить его «плавающим» из кода или оставить его высоким/плавающим, чтобы мне приходилось явно выдавать:

digitalWrite(4, LOW);

Прежде чем будет отправлен сигнал low для активации моего реле?

Надеюсь, это имеет смысл!

, 👍2

Обсуждение

GPIO4 имеет НИЗКИЙ уровень во время сброса (и, следовательно, загрузки), поэтому реле с активным низким уровнем ошибочно щелкнет при включении, если оно подключено к GPIO4. используйте GPIO 3 или, может быть, 2 или 16. вы также можете установить pinMode(n, INPUT_PULLUP), чтобы зафиксировать его в плавающем состоянии до тех пор, пока это не понадобится., @dandavis

RenegadeAndy, Спасибо большое, нигде не нашел этого решения, спасибо вам огромное, мою задачу решило, счастья вам,, @Никита Чаузов


1 ответ


2

Ответ благодаря Trevor_G был:

используйте digitalWrite(4, HIGH); перед pinMode(4, OUTPUT);

,

Да, это действительно помогло, @madu