Hacer un cambio de control momentáneo un interruptor

14

¿Cuáles son las formas más sencillas, más baratas y más pequeñas para hacer que un interruptor momentáneo produzca una salida de conmutación de 2 estados (interruptor momentáneo de retención)?

En otras palabras, la salida es continuamente baja, y cuando presiona momentáneamente el botón / interruptor de tacto, la salida cambia a continuamente alta, y cuando lo presiona de nuevo, vuelve a bajar.

    
pregunta endolith

7 respuestas

9

Aquí hay otra alternativa con dos inversores y debouncing:

Paralasalidalógica,solosenecesitanlosdosinversores,RCyresistenciaderealimentación:

NC7WZ14 cuesta $ 0.06 con 2 inversores, un paquete pequeño de 6 pines y entradas de activación Schmitt, aunque Creo que este circuito ni siquiera necesita entradas de Schmitt debido al RC. También puede manejar 24 mA, por lo que podría conectar el LED directamente a él si está usando un LED por cualquier motivo.

También se muestra aquí y aquí como un interruptor táctil de alternancia .

Creo que la resistencia de realimentación tiene que ser mucho más pequeña que la resistencia central para evitar que oscile si mantiene presionado el botón, ya que la conexión de baja impedancia a la salida evitará que el condensador se cargue a la tensión media hasta que dejar ir.

Las variantes se describen en Presionar ENCENDIDO - Presionar los circuitos de enganche suave en OFF :

    
respondido por el endolith
7

Un posible método:

Use un RC para rebotar el interruptor

red RC conectada a un interruptor momentáneo para rebotar http://www.all-electric.com/schematic/dbounce1 .gif

y luego aliméntalo en un flip-flop D con la salida realimentada a la entrada para implementar un flip flop T.

El flip-flop D solo debe ser positivo en el borde activado, y necesita una salida invertida.

  • El 8-pin NC7SZ74 debería funcionar, es muy pequeño y cuesta $ 0.12 en cantidad.
  • El 74HC74 es un flip-flop doble D con 14 pines por $ 0.05.

¿Hay algún problema con esto? El interruptor debería mantenerse presionado durante un corto período de tiempo para que el tiempo de subida active la entrada del reloj, lo que probablemente sea bueno. Si mantienes presionado el botón, solo se disparará una vez, lo cual es bueno. ¿Hay una mejor manera de rebotar en el bucle de retroalimentación o algo así?

    
respondido por el endolith
6

O puede hacerlo con un solo microcontrolador de 6 pines y sin otros componentes. Puede costar un poco más, pero es más simple y ocupa menos espacio. La publicación de un interruptor en el software es simple, entonces es solo una forma de almacenar un booleano si la salida debe ser alta o baja. La versión más pequeña de este mcu viene en un paquete de montaje de superficie de 2 mm x 2 mm. En grandes cantidades podría ser $ 0.50.

alterna el esquema http://davr.org/uploads/toggle.png

    
respondido por el davr
1

Este circuito (también se describe here ) es muy barato, pero es más complejo y ocupa algo de espacio con todos los componentes. Si los transistores cuestan $ 0.02 en grandes cantidades, ¿sería tal vez un total de $ 0.10?

    
respondido por el endolith
0

¿No podrías simplemente hacerlo en software?

¿El botón será una entrada en un dispositivo programable, o necesitas hacer la conmutación en el dominio del hardware?

Al almacenar el estado de un botón en la memoria es bastante fácil usar un interruptor momentáneo como un interruptor.

boolean buttonState = flase; // store for toggle state, flase = off true = on

if(yourButton == HIGH && buttonState == false) // if button is pressed and toggled off
{
     Serial.println("Button Toggled On"); // do something while button is on

     buttonState = true // set button state to on
}

if(yourButton == HIGH && buttonState == true) // if button is pressed and toggled on
{
     Serial.println("Button Toggled Off");  // do something else while button is off

     buttonState = false // set button state to off
}

Disculpe si esto está fuera de lugar, obviamente esta respuesta depende de que utilice una MCU o un chip programable.

    
respondido por el Jim
0

Sé que es una forma "indirecta" de hacerlo, pero puedes obtener un sensor de efecto Hall como el que tiene sparkfun: enlace

y simplemente use un imán, descubrí (de la manera más difícil) que este efecto de hall en particular está bloqueado, por lo que no funcionará para lo que necesito, pero parece que en teoría podría funcionar para lo que usted necesita. estoy buscando.

Acabo de enchufarlo a una placa de pruebas, creo que pude haber usado una resistencia (probablemente haya pasado un mes, así que estoy un poco confuso en los detalles), y cuando muevo el imán cerca (momentáneo) cierra la Sensor y hay que ir.

    
respondido por el onaclov2000
0

La alternativa más fácil es usar un interruptor de botón alterno.

Si ignora el hecho de que se engancha en diferentes posiciones, es casi exactamente como un interruptor momentáneo. Entiendo que este no es el espíritu de la pregunta, pero es una solución simple y compacta que no requiere software ni hardware externo.

    
respondido por el Kevin Vermeer

Lea otras preguntas en las etiquetas