Introducción.
A pesar de las nuevas técnicas y opciones de las que contamos en la actualidad, sin duda, me asalta la duda de que estamos «matando moscas a cañonazos«. Pongo un ejemplo, en ocasiones se plantean preguntas como: Necesito un contador de dos dígitos que avance al apretar un pulsador y que al apretar otro pulsador descuente una cuenta con cada pulsación.
Como digo la duda me asalta en cuanto que algunos desean utilizar un microcontrolador para realizar este tipo de proyecto. Utilizar un micro para cualquier proyecto no está justificado ni aún en el punto de vista del costo ni por la sencillez del mismo, disponiendo de circuitería estándar y conocimientos para cubrir este tipo de proyectos. Por este motivo…
Se presenta el estudio de un contador digital ascendente/descendente hasta 100, de 00 a 99 con el que al llegar a 99 si así lo deseamos, podamos que volver a contar en sentido descendente, para lo cual nos serviremos de los circuitos integrados de la familia CMOS (CD4000) por su disponibilidad en el actual mercado.
Recomendamos que el lector interesado en este proyecto antes de seguir se asegure de disponer de los circuitos adecuados o sus equivalentes ya que la decepción que puede sufrir al no encontrar alguno de los dispositivos suele ser frustrante.
EL PROYECTO.
Se trata de un dispositivo en el que, mediante un par de pulsadores podamos aumentar o disminuir la cuenta que mostrará un display de 7 segmentos con el que representar los pulsos producidos por uno u otro pulsador, según su uso. Veamos los bloques implicados.
Nota. Debido a la cantidad de términos técnicos anglo-sajones empleados en la jerga técnica, para no perdernos no españolizaré algunos de los mismos.
En principio, necesitamos un contador As/Des con el que podremos realizar lo propuesto. Claro que además, sería de desear que podamos fijar un tope máximo a la cuenta o en su caso un mínimo, para que tenga más versatilidad. Esto hará que dispongamos de lo que se llama una preselección, de modo que en un momento dado podamos decidir desde que cuenta empezamos o hasta que cuenta deseamos que cuente. Considerando que cada IC, es un contador para un display, se entiende que necesitamos dos para dos dígitos.
He pensado en utilizar los circuitos integrados CMOS por su disponibilidad y rango de tensiones de trabajo, aunque se pueden utilizar los equivalentes de la serie HC, HCT o TTL, incluso si fuera el caso unos y otros indistintamente, siempre que se respete la tensión.
Un análisis simple de las necesidades y revisando las opciones que nos ofrecen estos IC’s, podemos optar por un contador de décadas como el CD4018 que es un contador preajustable divisor por N. Las conexiones externas permiten dividir una frecuencia por 10, 9, 8, 7, 6, 5, 4, 3, 2 . Las entradas 2, 3, 7, 9, y 12 sirven para la pre-selección, es decir, para situar el contador en un estado inicial previo para contar. Las salidas por los pines Q1 a Q4, dispone de Reset, Clock, Data y Preset-Enable.
Por supuesto que hay otras opciones, por ejemplo si disponemos del contador/divisor, los HCC4026B o el HCC4033B consisten cada uno en un contador de décadas (5 etapas Johnson) y un decodificador de salida que convierte el código a un 7 segmentos de salida decodificado para manejar un display numérico. Estos dispositivos son especialmente ventajosos en aplicaciones de visualización donde son importante una baja disipación de potencia y/o bajo recuento. Entradas comunes a ambos tipos son CLOCK, RESET yCLOCK INHIBIT, salidas comunes son; CARRY OUT y las siete salidas decodificadas (a, b, c, d, e, f, g). El HCC4026B incluye entradas/salidas adicionales para DISPLAY ENABLE IN y salida “UNGATED ‘C’ SEGMENT” (segmento C sin sincronizar). Las señales propias del HCC4033B son entrada de RIPPLE-BLANKINGK-OUT, una salidaRIPPLE-BLANKING-INPUT y entrada LAMP TEST INPUT.
Fig. 3 CD4026B y CD4033B
El siguiente sería un circuito de contador que utiliza el dispositivo CD4026B o mejor el CD4033B, tendríamos una ventaja ya que estos IC disponen de 7 salidas para atacar directamente a un display, sin embargo éstos no disponen de entradas de preselección. En la imagen se muestran los niveles de estado 1 o 0 (H o L) de cada pin.
El contador avanza una cuenta en la transición positiva de la señal de reloj si la señal de CLOCK INHIBIT es baja. El contador avanza una cuenta a través de la línea de reloj es inhibida cuando la señal CLOCK INHIBIT es alta, esto puede servirnos en ocasiones concretas. Hay que tener en cuenta los condensadores C1 y C3, se utilizan de reset por conexión. Cuando se alimenta el circuito el tiempo de carga de estos condensadores propagan un 0 lógico, C1 a las entradas reset y C3 a la salida acarreo (Carry). Si hubiera más contadores, se utilizará un condensador de éste valor por cada contador de más. Las líneas en verde nivel 0 y en rojo nivel 1.
El HCC4033B tiene provisiones para borrado automático de los ceros no significativos en un número decimal de varios dígitos que se traduce en una pantalla de fácil lectura compatible con la práctica normal de la escritura. Por ejemplo, el número 0050,0700 en una pantalla de ocho dígitos se muestra como 50.07 más legible. La supresión de cero en el lado entero se obtiene conectando el terminal RBI del HCC4033B asociado con el dígito más significativo en la pantalla a una tensión de bajo nivel y conectando el terminal RBO de esa etapa al terminal RBI del HCC4033B en la posición significativa inmediatamente inferior en la pantalla.
Tenemos varias alternativas que pueden servir para nuestro propósito. Antes de tomar una decisión, debemos estudiar las posibilidades que más se adapten a nuestro proyecto, es decir ¿nos interesa que tenga un pre-ajuste integrado o mejor que tenga salida directa a 7 segmentos? El pre-ajuste no siempre se utiliza o no interviene, pero estará disponible su uso en cualquier momento. El CD4018B, evidentemente se descarta ya que no se adapta a lo planteado.
Nos inclinamos por utilizar un CD4029B que requiere de un decodificador de BCD a 7 segmentos, unas posibles puertas NAND para realizar algunas interconexiones y un par de display de cátodo común para la presentación y además unos zócalos de 16 pines, dos conmutadores rotativos codificados en BCD, para selección de la cuenta, pulsadores y algunos componentes pasivos. Después de sopesar las opciones que permiten cada uno de los IC mencionados, decido utilizar el CD4029B convencido de aprovechar los recursos que ofrece.
De modo que vamos a utilizar un contador CD4029B preajustable arriba/abajo BCD a 7 segmentos controlador/decodificador/latch, que necesita de un controlador de 7 segmentos. El CD4511 es un controlador/decodificador BCD a siete segmentos con cerrojo (latch) que como veremos, incluye unas interesantes opciones. Sería el momento de leer las hojas de características de estos dos dispositivos, así como la tabla de la verdad del CD4511, para comprender lo que estamos haciendo. El siguiente esquema de bloques es sencillo y muestra los bloque que lo componen.
Nos inclinamos por utilizar un CD4029B que requiere de un decodificador de BCD a 7 segmentos, unas posibles puertas NAND para realizar algunas interconexiones y un display de cátodo común para la presentación y además y algunos componentes pasivos, unos zócalos de 16 pines, conmutadores rotativos codificados en BCD, para selección de la cuenta, pulsadores. Después de sopesar las opciones que permiten cada uno de los IC mencionados, decido utilizar el CD4029B convencido de aprovechar los recursos que ofrece.
De modo que vamos a analizar un contador como es el CD4029B. El CD4029BMS se compone de un contador binario o BCD decimal de cuatro etapas ascendente/descendente con medios para preanálisis de acarreo en ambos modos de conteo. Las entradas consisten en un solo CLOCK, CARRY-IN (reloj habilitar), binario/decimal, arriba/abajo, preset-habilitar, cuatro señales JAM individuales: Q1, Q2, Q3, Q4 y se proporciona una señal acarreo de salida (CARRY OUT) como salida.
El CD4511 es un controlador/decodificador BCD a siete segmentos con cerrojo (latch), como veremos, incluye unas interesantes opciones. Sería el momento de leer (si aún no lo ha hecho) las hojas de características de estos dos dispositivos, así como la tabla de la verdad del CD4511, para comprender lo que estamos haciendo. El siguiente esquema de bloques es sencillo y muestra los bloque que lo componen.
Los tipos HCC4511B son controladores del decodificador BCD a 7 segmentos con latch (retención) construidos con lógica CMOS y dispositivos de salida de transistores bipolares NPN en una sola estructura monolítica, figura 8. Estos dispositivos combinan la disipación de baja energía en reposo y características de inmunidad de ruido del CMOS con salida de transistores bipolares npn capaces de abastecer hasta 25 mA. Esta capacidad permite a los tipos HCC4511B manejar directamente LEDs y otras pantallas. Se proporcionan pines para comprobar la pantalla, prueba de Lámparas (LT), Supresión (BL) y entradas Latch Enable o Strobe, apagado o de intensidad-modulada y Store (almacén) o Strobe un código BCD, respectivamente. Varias señales diferentes pueden ser multiplexadas y se visualizan cuando se utiliza circuitería de multiplexado externo.
Con estos circuitos a nuestro alcance, vamos a diseñar un circuito que cumpla con el objetivo propuesto. El siguiente esquema es una aproximación al esquema que necesitamos. Probaremos con un dígito para aprender como actuar ante un contador como el CD4029B. He utilizado un interruptor para la alimentación, cuatro interruptores para simular el preselector de cuenta, uno para la supresión, en realidad este no tiene demasiado sentido aquí, su utilidad está en otro campo y uno más para habilitar o no la cuenta, en realidad se comporta como un reset permanente, un pulsador para el reset y uno segundo pulsador para los pulsos de entrada a contar. Por otra parte están el conmutador Binario/Decimal que en este proyecto no tiene sentido, lo he puesto para que se vea su funcionalidad y por último otro conmutador para el conteo INCR/DECR.
La entrada de pulsos es un punto a tener en cuenta, este tema está muy descrito, sin embargo, he de insistir las señales deben estar bien conformadas lo que nos permitirá obtener una cuenta sin errores. Es recomendable utilizar si es posible una puerta Triger-Smitch para escuadrar los pulsos si proceden de un circuito exterior, en nuestro caso ya se ha previsto la puerta IC5.
Fig. 10 Contador 1 digto CD4029B
Ahora que ya hemos aprendido a utilizar estos contadores, es el momento de abordar el proyecto final del contador. Este contador tiene un rango de frecuencias bajo que comprende desde 0Hz 40MHz. con una tensión desde 0V a 5V, por supuesto que los chips CMOS admiten tensiones superiores y pueden funcionar bien a 12V, pero eso es una cuestión que no abordaremos aquí.
Las entradas de CLOCK y UP/DOWN se utilizan directamente en la mayoría de las aplicaciones CD4029B. En aplicaciones donde se proveen entradas de CLOCK UP yCLOCK DOWN, la conversión para entradas de CLOCK y UP/DOWN puede ser fácilmente realizada con el uso del circuito de la figura 11.
Fig. 11 Esquema puertas reloj up-down
Las entradas de conteo, cambian con transiciones positivas de CLOCK UP o CLOCK DOWN en el CD4029B. Para configurar las puertas en la figura diagrama de tiempos, cuando la entrada cuenta avanza el CLOCK DOWN debe mantenerse Alta y viceversa, cuando descuenta, la entrada CLOCK UP debe mantenerse Alta.
Antes de continuar con el proyecto en la imagen que sigue, se muestra esquemáticamente como conectar una cadena de contadores con reloj paralelo, esta forma permite una mayor velocidad de transmisión.
Fig. 13 Contadores reloj-paralelo
EL CIRCUITO.
El siguiente esquema corresponde al contador de dos dígitos con posibilidad de contar y descontar según la posición del conmutador para tal fin. Dispone de un interruptor de Power y uno habilitar este, para una puesta a cero permanente si hiciera falta. He añadido un generador de impulsos alrededor del 555 que se activa con el interruptor reloj, he incluido el conmutador BI/DEC, uno para UP/DOWN, un pulsador de RESET y otro para los impulsos de Conteo. Por supuesto los preselectores para su función si hiciera falta.
Fig. 14 Contador dos digitos con CD4029B
Una señal Alta PRESET ENABLE, permite obtener información sobre las entradas JAM para preajustar el contador a cualquier estado, de forma asíncrona con el reloj. Una señal Baja en cada línea JAM, cuando la señal de PRESET-ENABLE es Alta, reinicia el contador a cero su cuenta. El contador avanza una cuenta en la transición positiva del reloj cuando las señales CARRY-IN y PRESET ENABLE son bajas.
El avance se inhibe cuando la señal CARRY-IN o PRESET ENABLE son Altos. La señal de CARRY-OUT es normalmente Alto y pasa a nivel Bajo cuando el contador alcanza su cuenta máxima en el modo INC o la cuenta mínima en el modo DEC proporciona la señal de CARRI-IN es bajo. La señal de CARRY-IN en el estado Bajo por lo tanto se puede considerar un CLOCK ENABLE. El terminal CARRY-IN debe estar conectado a VSS cuando no esté en uso.
El contador cuenta en el modo binario cuando la entrada BINARIO/DECIMAL es alta. El contador cuenta en el modo década, cuando la entrada BINARIO/DECIMAL es baja. El contador cuenta hacia arriba cuando la entrada de arriba/abajo es alta, y hacia abajo cuando la entrada de arriba/abajo es baja. Múltiples IC se pueden conectar en paralelo o bien una sincronización o una disposición de ondulación-clocking como se muestra en la figura 13. El reloj paralelo proporciona un control síncrono y por lo tanto la respuesta más rápida de todas las salidas de conteo.
Esta es una aplicación para demostrar como construir un contador con unos pocos componentes a bajo costo que en muchas ocasiones nos proporciona una satisfacción comprobar que no todos los componentes que hemos ido acumulando a lo largo de los años en un viejo cajón.
Espero que haya aclarado algunos conceptos respecto de los versátiles circuitos CMOS.
ANEXO.
A la vista de los reiterados comentarios sobre este tipo de contadores, he considerado añadir unas notas y esquemas para intentar poner un poco de luz al tema. Una vez visto como funciona el esquema de la figura 10, que representa una unidad de conteo, es cuestión de añadir una segunda unidad de conteo.
Es decir:
Display |
4511 | 4029 | Preselector |
El resto es una cuestión de conectar adecuadamente las patillas entre ellos, esto se facilita viendo como se ha resuelto la cuestión en la figura 14. Debajo se muestran un serie de circuitos contadores con distintos dígitos como ejemplos.
Esto son unos ejemplos sencillos que pueden orientar a los principiantes.
Yo en mis proyectos utilizo el driver 74hc595 para realizar las muestras en los 7 segmentos, la opcion que comentan aca me parece muy buena la voy a comenzar a estudiar, les comparto mi trabajo que mi trabajo que esta bastante relacionado con lo que aca comentan.
saludos!
Estimado Vicente.
Muy interesante su artículo y es justamente lo que estoy necesitando, si bien soy un sencillo técnico amateur.
Un amigo juega al voley y su tanteador es tan sencillo como de cartulinas pasadas por anillas metálicas y honestamente la otra tarde fui a ver un partido y me pareció sabor a poco su sistema de tantear a ambos equipos. Podrá estar la posibilidad de que me pudiera brindar el bosquejo de la PCB?…Disculpe lo atrevido!!!! Me facilitaría de sobremanera el armado!..Desde ya muchas gracias, y sepa disculpar mi atropello
Un abrazo cordial.
Hola Gabriel.
Normalmente no realizo trabajos del tipo que indicas. Naturalmente tienes que entender que es un trabajo bastante concreto y como tal tiene un valor que se ha de asumir, por lo tanto si es el caso ponte en contacto con migo vía e-mail y comentamos el tema.
Espero tu respuesta.
Hola Vicente
Muchas gracias por haber tenido la gentil deferencia de haber contestado a mi consulta.
En estos días me estaré contactando contigo a los efectos.
Saludo muy cordial.
Gabriel.-
HOLA, excelente blog amigo Vicente, bueno soy estudiante de electronica pero todavia estoy entrando en lo que es circuitos digitales, y me han dejado para hacer un contador con compuertas logicas, en 2 display que muestre del 0 al 15 en decimales y en otro display que muestre letras hexadecimales a partir de A que es 10 y hasta F que es 15. Un favor amigo Vicente ayudame con el diagrama, lo he hecho pero no me resultan las letras, favor de ayudarme te agradeceria un monton amigazo.
Saludos Cordiales.
Jhon N.
Hola Jhon Navarrete.
En estos momentos, tengo un problema por el que no puedo entrar en detalles (me he quedado sin el PC, la placa madre se quemó por un corte de tensión y no puedo acceder a mi disco duro. Esto desde un portátil de un amigo), sin embargo te sugiero que utilices un 74LS192 que es un contador UP/DOWN en binario/decimal y por otra parte el driver 4511 no te sirve ya que sus salidas no pasan del ‘9’, por lo tanto tendrías que utilizar alguna alternativa.
Lamento no poder ayudarte más en estos momentos por lo ya comentado.
La próxima semana tal vez ya disponga de un nuevo equipo.
P.D. Espero.
Hola Vicente. Muy instructivos tus tutoriales.
No tengo mucha experiencia con estos integrados, pues solo he trabajado con el HEF4017b y 74HC595, pero ¿se podría sustituir el 4029 y el 4511 por el CD40110, que es un contador up/down con salidas para display directamente?
Gracias y saludos.
Hola Jesús (lamento el retraso en la respuesta y no se el motivo por el que me ha saltado esta consulta en estas fechas).
Respecto de tu pregunta, no he tenido la oportunidad de trabajar con este tipo de chip, sin embargo, viendo las características de dichos chips, veo una gran diferencia en el 40110, dispones de dos entradas, una UP y otra Down, si utilizas el circuito que hice y puedes ver en el 40192, por ejemplo, creo que si podrías utilizar este (40110) por aquellos (4029+4511).
Disculpa el retraso en la respuesta, pues me ha llegado en estos días y no entiendo el porque.
Espero que te sirva mi respuesta.
Excelente articulo muy útil para mis diseños
Gracias Carlos Figueros por tus palabras.
Hola Vicente, muy interesante, sera que de casualidad tu no tienes la simulación en proteus del circuito contador 2×7, para que me la facilites por favor, muchas gracias, quedo atenta a una pronta respuesta.
Hola Natalia.
Lamento decirte que hace bastante tiempo que realicé dicho montaje y no he encontrado la simulación (teniendo en cuenta que he cambiado por distintos motivos de PC, así como dos veces). Ocurrió que realice estas pruebas con un simulador menos exigente (Wizard), pero así y todo, realicé las practicas descritas en su momento y te aseguro que funcionan todos los supuestos descritos.
Lo siento, no poder ayudarte en esto que me pides.
Hola Muy buen trabajo y buena iniciativa ya que en la actualidad como menciono se quiere utilizar siempre micro-controladores para cualquier cosa.
actualmente me encuentro haciendo un pequeño trabajo similar que consiste en contar la cantidad de pulsos de un tren de pulsos generado al presionar un pulsador. dicha cantidad de pulsos debe estar reflejada en los displays de 7 segmentos. esto lo realice contando los pulsos pero el problema que tengo es que deseo mostrar en los display solo el numero total de pulsos osea el ultimo registro que hace el contador y no haci mostrar el conteo del 1 a n. si tuviera alguna sugerencia sobre que utilizar se lo agradeceria mucho. de ante mano muchas gracias. y le deseo mucho éxito en las labores que desarrolle.
Hola Adhemar Jhonny Lapaca Callaguara.
Veo que has conseguido contabilizar los pulsos que necesitas, tu problema es que acumulas los pulso de la vez anterior y quieres que contabilice los últimos. Una solución pasa por resetear la cuenta un al finalizar muestra por el display, bueno mejor dicho, resetear el display al empezar la cuenta. Es decir al presionar el pulsador lo primero que harás es un reset y al tiempo inicias la cuenta. Supongo que te servirá.
Saludos.