Mehrzweck-Momenttaste - Mikrocontroller/Arduino/esp8266

Da ich eher ein Bastler als ein Profi bin, entschuldige ich mich, wenn ich die falschen Fragen stelle, aber ich habe eine Weile recherchiert und gehofft, dass Stack Exchange helfen könnte.

Ich habe ein paar Artikel über Stromsparschaltungen und Soft-Latch-Stromkreise gelesen, aber ich hoffe, etwas Klügeres zu erreichen.

Im Wesentlichen hätte ich gerne eine Ein-Tasten-Schnittstelle, bei der das Drücken der Taste die Schaltung im ausgeschalteten Zustand mit Strom versorgt, als Eingang fungiert, wenn die Schaltung aktiv ist, und dann die Schaltung ausschaltet, wenn sie beispielsweise 3 Sekunden oder länger gedrückt wird.

Auf Softwareebene ist es wichtig, den Chip mithilfe des Mikrocontrollers auszuschalten (möglicherweise durch Ablegen eines Stifts auf Masse, der mit einem Transistor / Mosfet verbunden ist), da ich vor dem Abschalten des Stromkreises eine "Ausschalt" -Nachricht senden möchte.

Ist das möglich?

Vielen Dank im Voraus,

Chris

Antworten (2)

Ja, das ist möglich.

  • Verwenden Sie den Long-Hold, um den Prozessor in den Ruhezustand zu versetzen.
  • Konfigurieren Sie denselben Pin, um aus dem Ruhezustand aufzuwachen.
  • Während der Prozessor läuft, können Sie den Pin als Standardeingang verwenden.

Ja, es ist möglich. Ich arbeite an einer ähnlichen Sache. Die Logik, die ich verwendet habe, ist wie folgt:

  1. Konfigurieren Sie diesen bestimmten Pin als Interrupt-Pin. Konfigurieren Sie es so, dass es bei jedem Übergang des Signals (hoch nach niedrig und auch niedrig nach hoch) ausgelöst wird.
  2. Starten Sie in der ISR den Timer und aktivieren Sie seinen Interrupt. Stellen Sie die Dauer des Timers gemäß den Anforderungen der „Long Hold“-Funktionalität ein. Wenn die Taste länger als die Zeitdauer des Timers gehalten wird, wird der Timer-Interrupt ausgelöst.
  3. Sobald der Timer-Interrupt ausgelöst wird, schalten Sie den Timer aus und setzen Sie ein Flag, das anzeigt, dass die Taste länger gedrückt wird.

Grüße