Cómo desencadenar el reinicio con una pulsación larga del botón

5

Estoy tratando de activar / desactivar un botón de control y reiniciarlo todo en uno, pero no puedo entender cómo diseñarlo.

Básicamente debería funcionar como un botón de encendido de PC. Si la pulsación corta está activada o desactivada, dependiendo del estado, una pulsación larga es el restablecimiento que funciona cuando algo bloquea completamente la computadora. El encendido / apagado es fácil ya que el software está controlado, pero el restablecimiento debe realizarse en el hardware de alguna manera, ya que SIEMPRE funciona, sin importar el estado del software o la MCU.

La funcionalidad de reinicio debería activarse después de una pulsación larga de aproximadamente 5 ~ 10 s. Una vez que la señal de restablecimiento baja, debe permanecer baja durante > 10 ms. ¿Como hacer esto?

Puedo encontrar circuitos integrados dedicados que pueden establecer una señal baja para x ms, lo que funcionaría, pero ¿cómo puedo activarlos de manera adecuada? RC y luego un comperador para disparar a un voltaje establecido o ...? ¿Y cómo evito activar el reinicio al iniciar si utilizo el enfoque RC?

Cualquier ayuda sería apreciada.

    
pregunta user2858835

2 respuestas

1

Podrías usar un circuito de retardo RC.

Uno simple está hecho de una resistencia y un condensador. Por ejemplo, cargue el condensador, conectado a tierra, a través de una resistencia de arranque R1. Luego, descargue a través de otra resistencia R2 y el botón de reinicio de "pulsación prolongada" al suelo. El truco consiste en calcular los valores de C, R1 y R2 para hacer los tiempos correctos, de modo que el condensador se descargue lentamente al umbral del cero digital. Luego, la señal en la unión podría usarse para la señal de reinicio (invertida).

Puede agregar un inversor para que la señal de reinicio sea más robusta.

Aquí hay una calculadora en línea para estimar los retrasos: enlace

    
respondido por el elomage
1

Use un microcontrolador que reciba la señal del botón y dirija las líneas de reinicio y encendido / apagado en consecuencia. Incluso el pequeño PIC 10F200 puede hacer este trabajo fácilmente. Se presenta en un paquete SOT-23 de 6 pines, con una línea de entrada y 3 líneas de E / S. Incluso tendrás una línea de E / S extra.

Lo primero que debe hacer el micro es deshacer el botón. Esto crea una señal de botón de rebote internamente. El resto está contando el tiempo para ver cuánto tiempo se presiona el botón. Dependiendo de la cantidad de tiempo, el código alterna la línea de encendido / apagado o afirma la línea de reinicio. También puede hacer la lógica para que cualquier pulsación cuando esté apagada encienda la unidad, ya que el reinicio no tiene sentido cuando está apagada.

El pin de entrada dedicado del 10F200 puede tener un pullup interno, por lo que el único hardware que necesita es el botón, el 10F200 y su tapa de bypass. Sí, realmente es así de fácil.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas