Кнопка мини-защелки D1 с использованием первого контакта
Я пытаюсь использовать Wemos D1 mini в качестве смарт-кнопки, которая загружается, выполняет задачу, а затем снова выключается. Я хотел бы сделать это как настоящее отключение питания, а не какой-либо спящий режим.
Я надеюсь, что смогу сделать что-то похожее на этот пост https://www.esp8266. .com/viewtopic.php?f=11&t=4458
- Привяжите контакт RST к контакту Low GPIO, чтобы он не загружался
- Нажмите кнопку, которая подаст 3,3 В на контакт RST, чтобы он стал высоким и вызвал загрузку.
- Переключите контакт GPIO, привязанный к RST, на высокий уровень, чтобы он продолжал работать, когда кнопка больше не нажата.
- Запустите какой-нибудь код и верните GPIO в состояние НИЗКОГО отключения.
Вещи, которые я пробовал:
Привязка к GPIO15 (D8) — останавливает загрузку и начинает загрузку при нажатии кнопки, но никогда не завершает загрузку. Я предполагаю, что я заставляю D8 повышаться, нажимая кнопку и мешая загрузке, но, честно говоря, не уверен
Привязать к GPIO4 или 5 (D2, D1). Это не мешает загрузке.
Я также пробовал № 2 с подтягивающим резистором на выводе GPIO, но это тоже не работает
Мы будем очень признательны за любую помощь.
@bingles, 👍0
Обсуждение3 ответа
Попробуйте использовать D8, а также следуйте этим инструкциям для выбора пинов, чтобы убедиться, что код работает по мере его выполнения
D8 (io 15) должен быть НИЗКИМ при загрузке, @Juraj
Может ли диод между моей кнопкой и D8 решить проблему с высоким уровнем?, @bingles
насколько мне известно, это невозможно [так просто, как вы сказали]. вот несколько заметок:
- после сброса GPIO устанавливаются как входы. если вы подключаете GPIO к RST и делаете его низким, он сбрасывает чип, но сразу же устанавливает GPIO в качестве входов, и RST освобождается.
- Если вы не используете подходящие резисторы, вы сожжете драйвер GPIO, подключив выходной GPIO к линии питания. например, когда вы пытаетесь подключить 3,3 В к RST и LOW GPIO, который удерживает RST.
- Спящие режимы очень эффективны. во многих случаях саморазряд батареи намного выше, чем у спящего MCU
- если вы настаиваете, выключите чип, отключив его питание с помощью внешней схемы. 555 с MOSFET без каких-либо res,cap сделает jb (используя только его внутренний триггер)
вывод сброса имеет подтяжку, поэтому вывод в режиме ввода не будет подтягивать его НИЗКИМ, @Juraj
@Juraj это именно то, что я предполагал. он хотел, чтобы GPIO сохранял НИЗКИЙ уровень сброса. но я сказал, что это невозможно, потому что, как только чип сбрасывается, GPIO вводится, и сброс сбрасывается. он загружается, @Tirdad Sadri Nejad
извините, да, вы правы, @Juraj
Для этого обычно используются МОП-транзисторы для управления питанием.
Возьмем, к примеру, следующую схему:
M1 обычно выключен, а его ворота подняты R1.
Нажатие SW1 переводит затвор M1 в низкий уровень, позволяя току течь через него для питания D1.
D1 загружается и сразу устанавливает высокий уровень на GPIO.
Затем включается M2 (который обычно выключен, так как R2 опускает гейт), что, в свою очередь, переводит гейт M1 в низкий уровень.
Теперь можно отключить SW1, так как M2 выполняет ту же работу.
Чтобы выключить, просто подайте на GPIO низкий уровень или оставьте его плавающим в качестве входа, в этом случае R2 выключит M2, который затем выключит M1, что остановит ток.
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- AT-команда не отвечает на последовательный монитор
- Разница между этими двумя платами NodeMCU?
кнопка сброса имеет ВЫСОКИЙ уровень, и подключение ее к земле выполняет сброс, @Juraj
как вы планируете отключать USB-чип на Wemos D1?, @Juraj