Un simple circuito de pulsador "On-Off" se implementa fácilmente con un flip-flop tipo D. Sin embargo, necesito que mi flip-flop se encienda cuando se presiona el pulsador y se apaga cuando se presiona el pulsador y se mantiene pulsado durante varios segundos .
Los pocos criterios simples de la siguiente manera. El último criterio está ahí para eliminar cualquier ambigüedad en el escenario:
- El pulsador momentáneo es parte de un codificador rotatorio y comparte su ánodo común;
- El 'tiempo de presión' de ENCENDIDO debe estar por debajo de 0,5 segundos, pero aún así debe incorporar algo de rebote;
- El 'tiempo de presión' de OFF debe ser de al menos 5 segundos;
- El dibujo actual cuando el ralentí debe ser lo más bajo posible;
- La solución debe ser puramente de hardware, no puedo usar una unidad de usuario.
Después de mucha deliberación y gritos, di con el siguiente circuito. Funciona según la especificación, excepto que me gustaría saber si hay una forma de hacerlo con un menor número de componentes.
Vcc = 3.7V. U1 (MAX942) es actualmente una brecha de simulación y es probable que se reemplace con un equivalente de menor potencia, si existe. Los valores de R / C dan tiempos adecuados en la actualidad.
El circuito es bastante simple: Q2 carga las resistencias C1 y C2 a 1k. Cuando se presiona 'SWITCH', las tapas se descargarán a través de R3 y R5, respectivamente. Cuando el voltaje de un capacitor cae por debajo de THR
, el compartimiento irá ALTO, proporcionando un borde ascendente a CLK
. Sin embargo, cuando el flip-flop está activado, Q4 corta la salida de U1:A
, negando CLK
de dicho borde. Si se mantiene presionado el botón durante el tiempo suficiente, C1 finalmente se descargará por debajo de THR
y U1:B
proporcionará el flanco ascendente a CLK
.
No puedo pensar en una solución más simple; Todo lo que he intentado termina en espiral hacia la complejidad. Cualquier recomendación sería apreciada.