¿Cómo conectar botones a puertas con LED de estado?

esquemático

simular este circuito : esquema creado con CircuitLab

Estoy jugando con las puertas de la serie 7400 y me pregunto cuál es la mejor manera de conectar algunos botones como entrada y cómo agregar algunos LED para que la entrada sea visible.

Creo que tengo 3 opciones:

  1. Entrada positiva y LED en serie (SW1)

    El LED requiere 2-2,4 V (según la marca y el color) para encenderse, por lo que la entrada de la puerta debe cambiar entre 0 V y 2,6-3 V. Una puerta 74HCxx requiere un alto voltaje de entrada de 2,4 V, por lo que 2,6 V debería registrarse como alto. ¿Es un margen de seguridad suficiente o debo quedarme con los LED rojos que se activan a 2 V para obtener una entrada de 3 V para la puerta? Las puertas 74AHCTxx requieren un alto voltaje de entrada de solo 2 V, por lo que deberían ser aún más seguras, ¿verdad?

  2. Entrada positiva y LED en paralelo (SW2)

    ¿O debo conectar el LED en paralelo a la puerta para obtener una entrada completa de 5V? ¿Es 10kOhm una resistencia desplegable adecuada en este caso?

  3. Entrada negativa y LED en paralelo (SW3)

    Para una entrada que debería ser alta cuando no se presiona el botón, parece que no tengo más remedio que optar por la configuración en paralelo. Al menos con puertas 74AHCTxx, los 2-2.4V del LED se registrarían como altos. Pero con esta configuración, el LED se encendería en BAJO. ¿Hay algo mejor que no necesite puertas o transistores adicionales para hacer que el LED se apague cuando presiono el botón?

Respuestas (4)

Creo que debería ser 'obvio' que el interruptor y la puerta deben funcionar sin el LED.

De lo contrario, no puede estar seguro de que ninguno de sus circuitos lógicos funcione sin el LED, lo que sería un efecto Heisenberg , el acto de observar el circuito puede cambiar el comportamiento del circuito.

Entonces 1 es un mal enfoque; el LED + resistencia limitadora de corriente debe estar en paralelo con la entrada de las puertas, después del interruptor. Dejar caer el voltaje a través de un LED, como en 1, cuando se activa la entrada siempre es una mala idea. La caída de voltaje a través de un LED verde probablemente sería tan grande que la puerta lógica no funcionaría, e incluso un LED rojo podría afectar algunas familias lógicas. A eso me refiero con un efecto 'Heisenberg'; agregar un LED de monitoreo cambia el comportamiento del circuito.

El estado lógico que debe controlar el botón/interruptor probablemente depende de la lógica de la aplicación (y de cómo podría intentar minimizar las puertas), por lo que tanto el 2 como el 3 pueden ser válidos en la misma aplicación.

Entonces se convierte en una cuestión de lo que quieres ver.
¿Quiere ver cuándo la entrada de la puerta es alta, baja, ambas o no está conectada?

Podría comprobar que algo no está conectado con un multímetro.

Cuando estoy jugando, me gusta poder agregar, eliminar y mover 'observación', por lo que usaría la disposición de LED + resistencia en 2, 3 o ambos para observar cualquier punto en un circuito.

EDITAR:
No estoy sugiriendo que uses LOW == true.

Estoy sugiriendo que a menudo es conveniente "observar" lo verdadero, lo falso o ambos.

Estoy tratando de alertarlo sobre el problema de monitoreo más general que ocurre cuando construye circuitos reales para aplicaciones, que representan expresiones complejas, con muchos términos intermedios.

En general, los circuitos lógicos tendrán puertas en serie con puertas. Entonces puede ser muy útil colocar un LED 'dentro' de una secuencia de puertas para facilitar el seguimiento de un resultado parcial. A veces, es más fácil comprender el comportamiento del circuito lógico general cuando se ve un resultado parcial específico, y es posible que ese resultado parcial deba ser verdadero o falso. Por ejemplo, a menudo es útil ver si alguna entrada de una puerta AND es falsa y si la entrada de una puerta OR es verdadera.

Por lo tanto, no base el enfoque de la supervisión del estado lógico en la idea de que solo lo verdadero es importante.

Por lo tanto, una buena estrategia tiene las propiedades:

  • Los 'LED de observación' se pueden agregar y quitar sin afectar el circuito
  • las entradas pueden ser botones o interruptores; los botones normalmente (sin presionar) pueden ingresar verdadero o falso, los interruptores pueden proporcionar cualquier estado
  • cualquier señal puede llevar cero, uno o dos LED (estandarizaría un color para verdadero y un color diferente para falso)
  • la electrónica para los LED de "observación" debe ser la misma para los botones y los estados lógicos intermedios, de modo que pueda ensamblar circuitos más grandes a partir de circuitos más pequeños, o eliminar términos y sustituirlos por un botón o interruptor.
¿Te refieres al efecto de sonda , el equivalente electrónico del Heisenbug de programación ?
Prefiero la referencia más general de Heisenberg. Los términos específicos de dominio cuando ya existe un término general, o términos cursis, siempre me suenan un poco 'cliquey' o 'jerga' (es decir, sobre exclusión, no inclusión y accesibilidad), así que trato de evitarlos. Espero que cualquier persona con una educación científica razonable esté familiarizada con el 'efecto Heisenberg' sin necesidad de buscar en www. Sin embargo YMMV :-)
Creo que input high == led on tiene más sentido. Mis circuitos integrados están etiquetados como, por ejemplo, puerta cuádruple POS_NOR de 2 pulgadas. Así que creo que me quedaré con BAJO siendo 0V y ALTO siendo VCC. De lo contrario, siempre tendría que convertir la función lógica de cada puerta a su inversa. Eso sería confuso. ¿O hay una buena razón para poner todo patas arriba?

Estoy de acuerdo con gbulmer en que el enfoque 1 no es deseable, pero los enfoques 2 y 3 están bien y dependen del tipo de resultado que le gustaría ver de ellos.

El primer enfoque no es tan "seguro" (con respecto a los voltajes de nivel lógico) como los enfoques segundo y tercero, que usan resistencias de 10k. Personalmente, tiendo a usar el estilo del enfoque 2 porque me gusta tener una salida ALTA activa, pero depende de su preferencia.

Un problema decentemente prominente con el enfoque 1 es que el LED causará una caída de voltaje, por lo que la puerta lógica en realidad no verá su voltaje de nivel lógico, sino algo más pequeño. Los enfoques 2 y 3 no tienen este problema (los uso con frecuencia con pines de E/S en mirocontroladores)

Tengo entradas donde quiero simular diferentes valores predeterminados. Algunos quiero que estén predeterminados en bajo, otros en alto cuando no se presiona el botón. Entonces, normalmente solo cambiaría una o dos entradas de las predeterminadas, presionaría uno o dos botones a la vez para probar un circuito. Supongo que una cuarta opción sería tener un flip-flopy con 2 botones (set y reset) y 2 salidas (activo alto y activo bajo). Probablemente debería construirme varios de esos en una placa de prueba separada para poder conectarlos según sea necesario y mantener la placa de prueba limpia.

Es importante reconocer que TTL usó una limitación de corriente de mayor impedancia en el controlador del lado alto y de manera similar con las corrientes de entrada.

El voltaje de umbral estándar TTL para todas las familias desde 74xx a 74Lsxx a CMOS 74HCTxx siempre ha sido para unión de diodo PN o caídas Vbe de 0,65 V cada una o 1,3 V -1,4 nominal sujeto a efectos de temperatura. Este es también el voltaje de entrada TTL flotante.

Ahora los LED tienen una mayor caída de Vf (1,2 para IR, 2,1 para rojo, etc.), por lo que usarlos en serie para hacer una entrada lógica 0 no satisfará el nivel máximo de 0,8 V, dando márgenes de 0,5 V para el peor caso de 0 lógico.

Por lo tanto, siempre coloca el LED en el lado alto, ya que VIh = 2.0V mínimo, lo que da un margen de ruido de 0.6-0.7V al umbral de entrada TTL.

La razón de este aparente margen de voltaje asimétrico es en realidad equilibrar la potencia de ruido o el margen VI del ruido parásito.

Por lo tanto, cuando calcula los voltajes de entrada reales, el ejemplo 2 es el único que falla por no cumplir con los criterios para Vil = 0,8 máx. y Vih = 2,0 min. El ejemplo 2 tiene Vih = 5 V y pero la corriente de entrada y salida de Iil es 1,6 mA, por lo que 200 ohmios. no se necesitaría un menú desplegable de 10k para que funcione como una "curita" y no se recomienda.

No se muestra un LED rojo de +220 ohmios pullup a 5 V con un interruptor a tierra con una impedancia de controlador de hasta 60 ohmios para obtener 0,8 V máx. Mientras que la salida 7400 para una salida "0" es de 0,4 V a 16 mA, tiene una ESR de salida baja típica <40 ohmios y también funciona. Así es como podría haberlo hecho solo usando activo bajo para indicadores ON. Llamamos a esto "lógica negativa" o entradas bajas activas, comúnmente utilizadas en TTL para establecer, restablecer, etc.

No estoy seguro de que tengas tus números ahí. 74HCT00 tiene un voltaje de entrada bajo de 0,8 V máx., verdadero. Pero a 20uA, no a 1,6 mA. Entonces para SW2 obtengo: 0.00002 A * 10000 Ohm = 0.2V. Entonces, un pull down de 10kOhm me parece bien. Tampoco entiendo tu última parte sobre el LED rojo + pullup de 220 ohmios a 5V. ¿Podrías dibujar eso? ¿Dónde entra en juego la salida del 7400?
perdon lei jugando con 7400 como TTL. # 2 luego funciona, para corrientes de entrada 74HCT. La última parte es para lógica negativa, interruptor lateral bajo con pullup.

Una cosa mucho más razonable sería tener un LED que no altere sus niveles lógicos para que pueda usarlo para sondear cualquier punto de su circuito sin tener que considerar qué efecto puede tener en el circuito.

Algo como esto:

esquemático

simular este circuito : esquema creado con CircuitLab

El punto marcado como Sonda en ambos diagramas se puede conectar a cualquier punto de su circuito para mostrar el estado actual de esa entrada (o salida).

El primero usa un búfer 7404. El segundo usa una puerta AND como búfer.

Puede conectarlos con un cable que tenga un extremo libre para usar como sonda lógica, o conectarlos permanentemente a algún punto que siempre quiera monitorear.

Una sonda es algo completamente diferente y exagerado (demasiadas partes) para un interruptor de entrada. También creo que la forma recomendada es usar una puerta NOT y conectar el LED hacia Vcc. Pero eso podría ser de los tiempos de TTL.