¿Cómo construyo un circuito de generación de impulsos no reactivables de un disparo con 2 disparadores?

1

Soy un poco novato en lo que respecta a la electrónica (principalmente soy programador informático), así que ten paciencia. Quiero construir un circuito de generación de impulsos no reactivables de un disparo que tenga dos entradas de activación. Las entradas en los disparadores serán señales persistentes (no solo pulsos), por lo que me gustaría que el circuito solo genere un pulso cuando una de las líneas de entrada se coloque en alto, y no genere otra hasta que la segunda línea de entrada también llegue jalado alto, o la primera entrada se jala baja y luego alta otra vez (este comportamiento puede ser más fácil de lograr al usar dos generadores de pulso y unir las salidas, pero en este caso es importante que cada generador de pulso solo dispare un pulso cuando la señal de disparo va de bajo a alto, y no continúa generando pulsos si la señal permanece alta durante un tiempo).

La razón por la que la señal de activación puede permanecer alta durante un tiempo es porque los activadores serán operados por el usuario. Por ejemplo, digamos que cada disparador está conectado a un botón, y la salida está conectada a un LED (solo un ejemplo, no para lo que realmente pretendo usar este circuito). Si el usuario presiona cualquiera de los botones, el LED debe parpadear una vez, independientemente de si el usuario continúa presionando el botón después de presionarlo. Si el usuario presiona el segundo botón mientras mantiene presionado el primero, la luz debería parpadear una segunda vez; la luz no debe volver a parpadear hasta que el usuario libere al menos uno de los botones y luego vuelva a presionarlo hacia abajo.

Espero estar explicándome qué necesito para hacer este circuito. Como dije antes, soy principalmente un programador de computadoras, así que proporcionaré algunos pseudocódigos a continuación si me ayuda a entender lo que estoy preguntando.

IF (trig1.prevState = 0 AND trig1.currentState = 1) OR (trig2.prevState = 0 AND trig2.currentState = 1) THEN 
output.currentState <- 1
ELSE 
output.currentState <- 0
ENDIF

No estoy en contra de usar un microcontrolador, pero solo si la demora que introduce es despreciable (necesito que el pulso se produzca casi en el instante en que la línea de activación se levante).

Como dije, soy una especie de noob, así que realmente agradecería que alguien me proporcionara un esquema completo de la mejor manera de construir este circuito, aunque cualquier sugerencia aún es bienvenida. No quiero que esto sea demasiado caro, por lo que no hay piezas súper caras, por favor.

    
pregunta android927

3 respuestas

1

Aquí hay una manera realmente barata y sencilla de hacerlo en hardware; sin código, sin rebote, sin demora de entrada a salida, simplemente funciona.

TRIGA es una entrada de alto nivel, TRIGB es la otra y OUT es, bueno, la salida.

    
respondido por el EM Fields
2

Un PIC 10F200 puede hacer este trabajo fácilmente. Dado que esto funciona en una escala de tiempo humana, el microcontrolador reaccionará instantáneamente. Los seres humanos no notan un retraso de hasta unos pocos ms o menos 10s de ms, por lo que el PIC 10F200 que se ejecuta a 1 MIPS es lo suficientemente rápido como para sondear las dos entradas, decidir qué hacer y encender o apagar los LED en consecuencia. Incluso si se necesitaran 100 ciclos de instrucciones para reaccionar (eso es mucho), el retraso solo sería de 100 µs. Nadie notará ese retraso.

Otra cosa que debes tener en cuenta es que los interruptores rebotan. Debe agregar un código de rebote deliberado para que el "parloteo" cuando el interruptor se cierra y se abre no se interprete como una gran cantidad de pulsaciones rápidas de botones. Esto es normal y es algo común con las señales de conmutación mecánica. Busque "cambiar rebote" para obtener más información.

    
respondido por el Olin Lathrop
0

Compre el microcontrolador más barato que pueda encontrar e implemente el código que acaba de presentar. Si está muy preocupado por los retrasos, utilice las interrupciones para reaccionar a las pulsaciones de los botones. Dudo que el microcontrolador sea demasiado lento incluso con solo el sondeo, ya que no hará nada más.     

respondido por el thejohnny

Lea otras preguntas en las etiquetas