Pulsos múltiples con solo presionar un botón

0

Estoy trabajando con un 74HC193 y estoy tratando de configurar un botón para incrementarlo o decrementarlo. El procedimiento para incrementar un solo paso como lo entiendo es:

  1. Establecer el pin 4 alto
  2. Espere a que se propague el cambio (30ns o más)
  3. Establezca el Pin 5 en alto
  4. Espera de nuevo
  5. Coloca ambos pines bajos nuevamente.

Ya que es un botón, no me preocupa la velocidad de ninguna manera. Estaría perfectamente feliz de tener un pulso de 2 ms seguido de un pulso de 1 ms 1 ms después. En mi investigación en línea, la manera más prometedora de hacer que el pulso sea un circuito 555 monoestable estaba pensando Dos de esos valores de T con valores diferentes podrían funcionar, pero no puedo decir en esa página si puedo retrasarlo. Eso también parece ser un mecanismo de rebote bastante decente, pero me gustaría tener un poco más de control, como un pulso de 2 ms, pero 500 ms antes de que se acepte otra entrada. ¿Es eso posible?

Si es demasiado difícil obtener dos pulsos con el tiempo adecuado, supongo que podría mantener la línea de cuenta regresiva alta y pulsar la línea de cuenta ascendente una vez, pero eso elimina mi capacidad de tener un botón adicional para la cuenta regresiva.

    
pregunta captncraig

3 respuestas

2

Creo que estás haciendo las cosas más difíciles para ti mismo de lo que realmente son. El procedimiento para un conteo es:

  • CPU y CPD son altos (sistema en reposo)
  • la CPU está baja
  • esperar un tiempo mínimo
  • La CPU vuelve a estar alta (sistema en reposo)

No entiendo completamente lo que quieres decir con "y estoy tratando de configurar un botón para incrementarlo o disminuirlo": ¿un botón para contar, otro para contar? Eso es fácil, simplemente rebote los botones (un par de 555, o uno de 556, lo haría), y alimente la señal (debe ser alta en reposo) a las entradas de la CPU y el CPD.

Si desea tener un botón que seleccione la función (arriba o abajo) de un botón de conteo, el circuito es un poco más complejo. Creo que hay otros chips de contador que tienen una selección y una entrada de reloj insetad de dos entradas de reloj, lo que sería más fácil en este caso.

    
respondido por el Wouter van Ooijen
2

Eliminé mi otra respuesta porque pasé por alto un punto importante en la tabla de verdad de la parte, que usted señaló correctamente: mientras tanto la cuenta ascendente (pin 5) y la cuenta regresiva (pin 4) son bajas a -alto disparado por el borde, el borde se ignora si la otra entrada de conteo es baja.

Supondremos que tiene un impulso positivo declinado, por ejemplo, obtenido del circuito de rebote 555 al que se refiere. Aplique ese pulso directamente al pin 4 (cuenta regresiva) y retrase un poco tiempo al pin 5 (conteo ascendente). El retraso puede ser creado por un par de puertas. Entonces, ambas entradas verán un flanco ascendente, pero para el pin de cuenta regresiva esto será mientras la cuenta ascendente todavía sea baja, por lo que no tendrá ningún efecto. El flanco ascendente de la entrada de conteo ascendente se producirá mientras que la entrada de conteo descendente ya sea alta, por lo que esto tendrá un efecto.

Así que todo lo que tienes que hacer es poner el pulso directamente en la entrada de cuenta regresiva y el pulso retardado en la entrada de cuenta ascendente.

    
respondido por el stevenvh
1

No está totalmente claro qué es exactamente lo que está intentando hacer, pero parece que el problema básico es hacer un incremento y decremento del contador en función de las pulsaciones de los botones del usuario. También desea funciones adicionales, como ignorar nuevas actividades dentro de la ventana de un evento de botón.

Esto realmente está pidiendo a gritos un microcontrolador. Puede hacer el botón de rebote, aumentar / disminuir un contador de prácticamente cualquier ancho y realizar las funciones de bloqueo basadas en el tiempo, todo en una sola parte. Incluso el micro más pequeño tendrá mucho más poder de procesamiento que el requerido para esto, por lo que el problema son solo los pines de E / S. Aparentemente quiere 4 bits de contador con salida paralela, y parece que tiene dos entradas de botón. Eso es un total de 6 pines de E / S, por lo que incluso un micro de 8 pines es posiblemente lo suficientemente bueno si obtiene uno que puede ejecutarse desde un oscilador interno. Cualquier PIC 12F con un oscilador interno debe poder hacer este trabajo fácilmente. Algunas partes tienen activaciones pasivas internas, lo que le permitiría conectar los botones sin partes adicionales.

Añadido:

Debería haber mencionado que al publicar una entrada de usuario, un tiempo de espera de 30-50 ms suele ser bueno. Incluso 50 ms se sentirán instantáneos para el usuario, y la mayoría de los interruptores dejan de rebotar después de 10 ms, aunque algunos no son tan buenos. Usualmente uso 50 ms a menos que haya una razón para no hacerlo. He visto que algunos conmutadores realmente baratos rebotan hasta 30 ms cuando no se presionan con más firmeza. No estoy seguro de cuáles son exactamente los tiempos de 2 ms y 3 ms en su descripción, pero si están destinados a ser tiempos de rebote, son demasiado cortos a menos que tenga algunos interruptores muy especiales. Nuevamente, hasta 50 ms (1/20 segundo) se siente instantáneo para los usuarios, por lo que hay pocas ventajas en un tiempo de rebote más corto.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas