# contador descendente (reloj)



## Robock (Feb 6, 2007)

hola a todos

me encargaron un proyecto y la vdd no se ni como plantearlo, ojala y me puedan ayudar

el proyecto es un reloj descendente que cuente dias, horas, minutos y segundos
asi como tambien debe tener push buttons para poner cuantos dias, minutos o segundos

de antemano gracias por sus sugerencias.


----------



## mabauti (Feb 6, 2007)

checa este link 
http://www.pablin.com.ar/electron/circuito/mc/reloj/index.htm

lo puedes adaptar para tu proposito


----------



## skynetronics (Nov 1, 2011)

Hola amigos del foro,

 Hace mucho tiempo que no los visitaba. El cambio de rubro me ha pasado  la cuenta en la electrónica al punto que ya me he olvidado de casi todo  lo teórico...

 Bueno, vamos al grano. Necesito realizar un _*contador descendente*_ que idealmente pueda "setear" desde *cuatro opciones*: *una cuenta regresiva desde 2 horas* (ó 7200 segundos) hasta el 0; *desde 1 hora y media* (ó 5400 segundos) hasta el 0; *desde 1 hora* (ó 3600 segundos) hasta el "0" y *desde media hora* (ó 1800 segundos) hasta el "0" (si no se pudiera setear esto y se tendría que hacer sólo desde una opción, directamente *desde una hora hasta el 0*).  En cualquier caso, cuando el contador llegue a 0, necesito que  sencillamente se detenga ahí hasta que nuevamente yo le dé la orden de  comenzar la cuenta regresiva. 

 Según recuerdo vagamente en los diagramas "en bloque", esto se hacía con  la base de un temporizador astable (555), a flip flops tipo "D" o "K",  luego a los 7447 y finalmente a los display.

 Aunque ahora ya no me dedico a la electrónica, sigo manteniendo mis  componentes de cuando estudiaba esta carrera, así que no debería tener  problemas en cuanto a eso. (Tengo algunos 74LS191 y 74LS47). *El único problema que tengo es en el diseño esquemático, estoy absolutamente bloqueado en el cómo hacerlo*.  Si me pudieran hechar una mano ahí (idealmente si alguien tuviera la  amabilidad de hacerlo en algún programa), podría interpretarlo sin  mayores problemas y llevarlo a una PCB. (Mi capacidad de diseñar  circuitos se vio afectada, aunque no la de interpretarlos desde el  esquemático y armarlos).

 Apelo a la buena voluntad de los nuevos usuarios del foro (y a los no  tan nuevos también) para que ayuden a un antiguo colega de uds .

 Cualquier ayuda, les estaré super agradecido.

 Saludos.

PD: Necesito idear un proyecto así con circuitos discretos.


----------



## MrCarlos (Nov 2, 2011)

Hola skynetronics

Pues si, efectivamente la base de tiempo podría ser con un 555 ajustado a un pulso por segundo.
Sin embargo el hacer ese contador de 4 cifras con Flip-Flip’s serían muchos ya que se requieren 4 por cifra; así que serían 16 Flip-Flip’s (8 paquetes). Esto aunado a la circuiteria para poder programarlos y detectar cuando lleguen a 9 y cuando lleguen a cero se haría un circuito muy grande.

Inclusive con los 74LS191 que dices tener los cuales son contadores binarios (de 0 a 15) se requeriría una circuiteria extra para hacerlos contar solo de 9 a 0.

Sería más fácil el utilizar unos contadores de décadas como por ejemplo el 74LS190 o 74LS192.
Estos 2 contadores tienen entradas para programarles donde inicien y solo habría que detectar cuando lleguen a cero para, por medio de una compuerta AND inhibir los pulsos del 555.

saludos
a sus ordenes


----------



## skynetronics (Nov 2, 2011)

Te agradezco, colega.

La verdad, es que el tema del espacio, no me complica mucho. No importa si queda un circuito grande, ya que de todas formas, lo pasaría a una PCB. ¿Podrías hecharme una mano con el esquemático que puedas hacer en algún momento para revisarlo después e ir preguntando si tengo dudas para su implementación?

A todo esto, también tengo esos integrados que señalas, así que por ese lado, vamos bien.

Muchas gracias, quedo a la espera de cualquier respuesta. 

Un saludo.


----------



## MrCarlos (Nov 2, 2011)

Hola skynetronics

Bueno si tienes por ahí 4 contadores 74LS190 el circuito básico sería como el que viene en la imagen adjunta.

Con el DigiSwitch se programa el número donde iniciará a contar en forma descendente. Luego se aplica un pulso a la entrada PL(11) para que los datos que estén en las entradas D pasen a Las Q’s. Como no todas las entradas de la OR son bajas su salida será 1 y los pulsos del 555 pasarán atraves de la compuerta AND.

Cuando todas las entradas de la OR sean 0 la salida será 0 y por lo tanto los pulsos del 555 ya no lograrán cruzar la compuerta AND.

Lo que hay que hacer ahora es conectar otros 3 contadores en cascada y seguir el mismo mecanismo para lograr contar en forma descendente todas aquellas cifras que pusiste en tu mensaje original.
Además de reemplazar el Display HEXagecimal(Segundos) por los correspondientes 74LS47 o LS48 y los Display’s de 7 segmentos.

saludos
a sus ordenes


----------



## skynetronics (Nov 2, 2011)

MrCarlos dijo:


> Hola skynetronics
> 
> Bueno si tienes por ahí 4 contadores 74LS190 el circuito básico sería como el que viene en la imagen adjunta.
> 
> ...



Estimado, muchas gracias por tu tiempo. Me quedaron básicamente dos dudas por el momento.

1) ¿Cómo tendría que hacerlo en la práctica para programar los tiempos que yo puse en el mensaje original? (respecto a las cuentas desde las 1:59:59 hasta el 00 y las demás que puse) ¿DigiSwitch según entiendo va conectado a valores 0 y 1, verdad?

2) Conectar los demás flip flop "en cascada", según recuerdo significa conectar las salidas Q de uno a las entradas D del otro (aparte de conectarle los pulsos del 555) pero ¿qué pasaba con U/D, PL, CE?. Por otro lado, en el diagrama ¿qué función cumple RC yTC?

Tengo sólo esas dudas por ahora, quedo nuevamente muy agradecido por tu orientación.

Un saludo.


----------



## MrCarlos (Nov 2, 2011)

Hola skynetronics

1)- Los tiempos se programarían por medio de los DigiSwitch’s serían 5. estos digiSwitch’s no son mas que conmutadores rotativos que en sus 4 salidas aparece el código binario del numero que se ve en la ventanita.
Físicamente serían como col que aparecen en la imagen adjunta.
Para contar con la resolución que anotas en tu mensaje (1:59:59) se requieren 5 contadores 74LS190.

2)- Lo de “Cascada” está ejemplificado en la imagen adjunta. 
La entrada *U/D* está conectada al Vcc para que el contador cuente descendentemente. 
La entrada *PL* está conectada(Todas) al Botón De inicio.
La Entrada *CE* está conectada a tierra pues es cierta cuando es baja. Esta se llama *C*lock *E*nable.

Trata de estudiar el circuito contenido en la imagen adjunta y completarlo. De otro modo tu consulta será enviada al área administrativa llamada moderación de este foro.

saludos
a sus ordenes


----------



## skynetronics (Nov 2, 2011)

MrCarlos,

Agradezco mucho tu paciencia. La verdad de las cosas, es que el circuito no se ve tan difícil de completar y me queda bastante clara tu explicación, te lo agradezo mucho, colega.

Lo que sí, insisto; lo de los DigiSwitch no lo entiendo mucho. Cuando trabajaba con circuitos digitales en el protoboard cuando había que programar entrada, lo hacía tirando cables al valor 0 y 1; pero supongo que la lógica es la misma.

Estudiaré mientras tanto el circuito para informarme más de algunas cosas.

Nuevamente te agradezco la ayuda y a medida que vaya armando esto, te iré informando amigo.

Un cordial saludo.


----------



## ymjavier (Abr 25, 2012)

Hola yo tengo un problema  ya tengo conectado mis 6 displeis en cascada y comienza a descontar desde 59 pero cuando llega a 00 se recetea a 99 y desde alli comienza de nuevo a descontar a que se debe que debo reformar gracias


----------



## MrCarlos (Abr 25, 2012)

Hola ymjavier

Veo que también andas por acá.
Eso es muy malo para las reglas que rigen este foro. Probablemente borren tu nombre como miembro.

Adjunta algo que tengas hecho. Principalmente el archivo que se genera con tu simulador.
Y sobre eso iremos acomodando todo para lograr el fin que pretendes.

Por otra parte no te sirvió el circuito que te envié por acá:
https://www.forosdeelectronica.com/f29/minimo-esfuerzo-73999/#post645150
ese tema está cerrado pero puedes bajar el archivo que te adjunté, descomprimirlo y analizarlo.

saludos
a sus ordenes


----------



## ymjavier (May 4, 2012)

como estan tengo un problema con el temporizador que lo estoyabjuntando a este texo ,,,lo que pas es que temgo programado para que comienze a contar desde 55 pero al momento que se resetea la unidad vuelve a 9  y eso no me sirve quisiera que vuelva 5 que debo configurar espero que me pueden ayudar...
grasias saludos


----------



## MrCarlos (May 4, 2012)

Hola ymjavier

Es curioso, en mi simulador funciona así:
Al iniciar la simulación los Display’s encienden en 00.
Al presionar el botón cambian a 55 he inicia a contar descendentemente hasta 00 y se detiene.
Si presiono de nuevo el botón vuelve a hacer lo anterior.

Es eso lo que quieres que haga el circuito ??.
Probablemente lo que deseas es que al iniciar la simulación(Encenderlo) comience en 55 y continúe hasta 00 y ahí se detenga.

saludos
a sus ordenes


----------



## ymjavier (May 4, 2012)

hola lo que quiero es que en la unidad que comienza en 5 y cuando llega a cero quiero que retorne a 5 y no a 9 espero  es para hacer un temporizador que es con segundo munitos y horas 
que me pueda ayudar.
saludos


----------



## MrCarlos (May 7, 2012)

Hola ymjavier

Creo te serviría el que te adjunto en el archivo comprimido.

saludos
a sus ordenes


----------



## junrrein (Jul 12, 2012)

Buenas tardes,

Me encuentro en una situación parecida a la de ymjavier. Estoy experimentando con contadores de manera de poder hacer un temporizador descendente que permita contar minutos y segundos. La complicación que tengo es la misma que ymjavier (para algunos contadores me interesa que despues del 0 siga el 5, y no el 9) pero con el agregado de que el temporizador es programable, por lo que no puedo implementar la solución propuesta por MrCarlos con facilidad.

¿Alguna idea de como lo puedo llegar a hacer? Tenia una posible solución pero a la hora de simularla no funcionó, así que fue descartada.

Adjunto el diseño como está hasta ahora.

Notas respecto del diseño:
El contador se puede programar para que cuente hacia arriba o hacia abajo, y además programar cuánto tiempo contar.
El switch de abajo permite setear el tiempo cuando está cerrado, y cuando se abre, comienza el conteo.
El switch de arriba hace que el contador funcione hacia arriba cuando está cerrado, y hacia abajo cuando está abierto.
El pulsador de arriba permite elegir el tiempo de conteo cuando se está en el modo de "seteo" (switch de abajo cerrado).

Si esto ya fue resuelto en otro tema, por favor diríjanme al mismo, porque no he encontrado un planteo igual al mismo buscando en el foro.

Aclaro que solo puedo usar circuitos discretos.

Saludos


----------



## MrCarlos (Jul 12, 2012)

Hola junrrein

Es mejor que adjuntes el archivo que se genera con tu simulador el cual creo es ISIS de Proteus.
Comprímelo y adjúntalo.

De otro modo tendría que desarrollarlo basado en la imagen que adjuntaste lo cual es más entretenido.

saludos
a sus ordenes


----------



## Gudino Roberto duberlin (Jul 12, 2012)

Amigo junrrein, para lograr un salto de cuenta como lo deseas es decir llegado al valor 0, poder comenzar en un valor distinto de 9. Debes presetear el contador al valor deseado y luego aplicar un pulso sobre el pin LOAD.


----------



## junrrein (Jul 12, 2012)

MrCarlos:

Mil disculpas, adjunto el diseño del circuito.

Gudino:

Es un poco mas complicado que eso. Además de lograr que el contador pase de 0 a 5, tengo que lograr setearlo para que el contador pare en un número seteado. El problema radica en que, cuando aplico el pulso sobre el pin LOAD para cargarle un 5 al contador, es necesario ignorar lo que le estoy mandando al contador mediante el seteador (en la nueva imagen que adjunto distingo un poco mejor los componentes) y esa es la parte que no me sale.

Adjunto diseño del circuito realizado en ISIS de Proteus y captura de pantalla, ambos actualizados con algunas explicaciones.

Saludos,
Julián


----------



## MrCarlos (Jul 12, 2012)

Hola junrrein

No comprendo bien tu planteamiento.
Dices:
*A)- *_Estoy experimentando con contadores de manera de poder hacer un temporizador descendente que permita contar minutos y segundos._

Más adelante dices:
*B)- *_(para algunos contadores me interesa que después del 0 siga el 5, y no el 9)_

Posteriormente:
*C)- *_pero con el agregado de que el temporizador es programable_

Bien: 
Si el temporizador es programable de minutos y segundos y en forma descendente por qué solo tienes un contador en tu diseño ??

Y si es solo descendente para qué el interruptor que cambia la dirección de conteo ??

Supongo que con el contador 4520 programas un número el cual se lo aplicas al contador 4510 luego éste empieza a contar descendentemente entonces, también supongo, que cuando llegue a cero debe detenerse. Cierto ??

Al detenerse cual es la siguiente maniobra ??
O debe RE programarse al número programado por el 4520 y continuar contando descendentemente ??

En síntesis: Estás diseñando un temporizador programable de minutos y segundos que cuente ascendente y descendentemente
y, que cuando llegue a cero(Descendentemente) se detenga ??
y, que cuando llegue al número programado se detenga(Ascendentemente) se detenga ??

saludos
a sus ordenes
Nota: para qué tantos inversores en serie??


----------



## miguelus (Jul 12, 2012)

Buenos días junrrein.

Me he tomado la libertad de hacer unos pequeños cambios a tu diseño y creo que ahora está funcionando como tú lo necesitas.
Seguramente tendrás que poner algún condensador en el pulsador de Preset con el el fin de evitar rebotes.

Sal U2


----------



## junrrein (Jul 13, 2012)

Buenas tardes,

Desde ya muchas gracias a todos por ayudarme.

MrCarlos:

La idea del proyecto es hacer un temporizador programable ascendente/descendente de hasta 60 minutos. Como vos bien decís, ¿por qué hay un solo contador en el diseño? Se hizo así para probar en ese único contador todos los casos posibles que van a pasar en el contador completo. El único caso que queda por implementar,  es el caso de los contadores de decenas de segundos o decenas de minutos en modo descendente.

Partí con una mala explicación, disculpas.

Como bien dijiste, en el contador 4520 elijo el número desde el cual quiero contar, el cual es aplicado al contador 4510. Pero los contadores se van a detener cuando todos sean igual a 0. Por eso, en el caso del contador de decenas de segundos/minutos, una vez que arranca del valor seteado mediante el 4520 y llega a 0, tiene que continuar por el 5, y no por el 9.

La razón por la que hay 2 juegos de contadores (uno que setea y el otro que cuenta propiamente dicho) es para el modo ascendente, en el que tengo que tener guardado el valor seteado y así saber cuando detener el temporizador (por eso está el comparador).

Ahora que lo pienso, una solución posible podría ser que en modo descendente, me saltee los 4520 y setee los 4510 directamente como en el diseño subido por miguelus.

Respecto a la nota:
Los sectores del circuito donde ves inversores en serie, son detectores de flanco (monoastables), que aprovechan el retraso en la carga y descarga de los capacitores para generar un pulso cuando se detecta un flanco. Te adjunto el diseño de un detector de flanco positivo.
Ahora bien, la salida del detector de flanco (si revisas el esquema que adjunto vas a ver que la salida es en la primer compuerta inversora) es de voltaje alto todo el tiempo, y genera un pulso de 0V cuando detecta un flanco positivo en la señal de entrada. Como yo quiero un pulso positivo, y no uno negativo, invierto esta salida.
Ahora, ¿por qué directamente no saco las inversoras en lugar de poner 2 en serie? Si se toma como salida del circuito directamente la salida del capacitor, esta salida va a generar pulsos donde el voltaje en el pulso varía de manera exponencial. Como no quiero un pulso exponencial, sino algo discreto (algo que varía entre 0V y voltaje alto), necesito un disparador Schmitt (http://es.wikipedia.org/wiki/Disparador_Schmitt). Ahora bien, no encontré un componente que implemente este disparador, pero la compuerta inversora 40106 incorpora internamente un disparador Schmitt, por lo que fue elegido para esta tarea. Y por esto es que están las 2 inversoras en serie, en vez de quitarlas.

Aclaro que en un lugar hay 3 inversoras en serie. En ese caso no hay ninguna justificación técnica, fue hecho de esa manera porque con mi compañero lo implementamos así de entrada. De todas maneras, este diseño es de prueba, y probablemente esta y otras redundancias van a ser eliminadas.

miguelus:

Me diste una muy buena idea de cómo resolver el problema. Muchas gracias por tu aporte.

Más tarde voy a tratar de implementar la solución, y si funciona, subo el diseño.

Saludos



Pude implementar lo que faltaba gracias a la inspiración de miguelus.

Ahora el contador funciona como era deseado, tanto ascendente/descendente, y es programable.

Pero el circuito quedó horrible. Para mañana va a quedar más en limpio (probablemente hecho de nuevo entero) y lo voy a subir.

Muchas gracias a todos,
Saludos.


----------



## miguelus (Jul 14, 2012)

Buenos días junrrein.

Me alegra haberte podído ser utilidad, repasando el esquema que envié en el Post anterior he visto que lo podemos simplificar algo más.
Puedes quitar U3B, y unir el Pin 2 (Q4) con el Pin 1 (PE) el funcionamiento será lo mismo y ahorramos una puerta.

Sal U2


----------



## junrrein (Jul 16, 2012)

Hola gente.

Ya terminamos el diseño del circuito. Estuvimos hablando un poco dentro del grupo y resolvimos que no vamos a publicar el diseño hasta que defendamos el trabajo práctico (es un TP final para una materia), para evitar cualquier malentendido con los profes (acusación de plagio).

Espero acordarme de subirlo después de que lo presentemos 

miguelus:

Entendí lo que me quisiste decir y lo terminamos aplicando.

Muchas gracias a todos por la ayuda.

Saludos.


----------

