Кнопка мини-защелки D1 с использованием первого контакта

Я пытаюсь использовать Wemos D1 mini в качестве смарт-кнопки, которая загружается, выполняет задачу, а затем снова выключается. Я хотел бы сделать это как настоящее отключение питания, а не какой-либо спящий режим.

Я надеюсь, что смогу сделать что-то похожее на этот пост https://www.esp8266. .com/viewtopic.php?f=11&t=4458

  1. Привяжите контакт RST к контакту Low GPIO, чтобы он не загружался
  2. Нажмите кнопку, которая подаст 3,3 В на контакт RST, чтобы он стал высоким и вызвал загрузку.
  3. Переключите контакт GPIO, привязанный к RST, на высокий уровень, чтобы он продолжал работать, когда кнопка больше не нажата.
  4. Запустите какой-нибудь код и верните GPIO в состояние НИЗКОГО отключения.

Вещи, которые я пробовал:

  1. Привязка к GPIO15 (D8) — останавливает загрузку и начинает загрузку при нажатии кнопки, но никогда не завершает загрузку. Я предполагаю, что я заставляю D8 повышаться, нажимая кнопку и мешая загрузке, но, честно говоря, не уверен

  2. Привязать к GPIO4 или 5 (D2, D1). Это не мешает загрузке.

  3. Я также пробовал № 2 с подтягивающим резистором на выводе GPIO, но это тоже не работает

Мы будем очень признательны за любую помощь.

, 👍0

Обсуждение

кнопка сброса имеет ВЫСОКИЙ уровень, и подключение ее к земле выполняет сброс, @Juraj

как вы планируете отключать USB-чип на Wemos D1?, @Juraj


3 ответа


0

Попробуйте использовать D8, а также следуйте этим инструкциям для выбора пинов, чтобы убедиться, что код работает по мере его выполнения

,

D8 (io 15) должен быть НИЗКИМ при загрузке, @Juraj

Может ли диод между моей кнопкой и D8 решить проблему с высоким уровнем?, @bingles


0

насколько мне известно, это невозможно [так просто, как вы сказали]. вот несколько заметок:

  1. после сброса GPIO устанавливаются как входы. если вы подключаете GPIO к RST и делаете его низким, он сбрасывает чип, но сразу же устанавливает GPIO в качестве входов, и RST освобождается.
  2. Если вы не используете подходящие резисторы, вы сожжете драйвер GPIO, подключив выходной GPIO к линии питания. например, когда вы пытаетесь подключить 3,3 В к RST и LOW GPIO, который удерживает RST.
  3. Спящие режимы очень эффективны. во многих случаях саморазряд батареи намного выше, чем у спящего MCU
  4. если вы настаиваете, выключите чип, отключив его питание с помощью внешней схемы. 555 с MOSFET без каких-либо res,cap сделает jb (используя только его внутренний триггер)
,

вывод сброса имеет подтяжку, поэтому вывод в режиме ввода не будет подтягивать его НИЗКИМ, @Juraj

@Juraj это именно то, что я предполагал. он хотел, чтобы GPIO сохранял НИЗКИЙ уровень сброса. но я сказал, что это невозможно, потому что, как только чип сбрасывается, GPIO вводится, и сброс сбрасывается. он загружается, @Tirdad Sadri Nejad

извините, да, вы правы, @Juraj


1

Для этого обычно используются МОП-транзисторы для управления питанием.

Возьмем, к примеру, следующую схему:

схема

M1 обычно выключен, а его ворота подняты R1.

Нажатие SW1 переводит затвор M1 в низкий уровень, позволяя току течь через него для питания D1.

D1 загружается и сразу устанавливает высокий уровень на GPIO.

Затем включается M2 (который обычно выключен, так как R2 опускает гейт), что, в свою очередь, переводит гейт M1 в низкий уровень.

Теперь можно отключить SW1, так как M2 выполняет ту же работу.

Чтобы выключить, просто подайте на GPIO низкий уровень или оставьте его плавающим в качестве входа, в этом случае R2 выключит M2, который затем выключит M1, что остановит ток.

,