Temporizador con Duty variable - de 0 a 24 - 16F84A

#1
Estoy buscando algun cicuito para temporizar un evento de encendido y apagado. La idea es controlarlo como un timer astable, cada ciclo de forma independiente, y en Horas y Minutos, por lo que usar un 555 no me sirve. La idea central es que la carga se mantenga encendida de 0 a 24 ( las horas y los minutos que programe, usando cualquier metodo) y que la carga se libere de la misma forma que la anterior, ya sea usando relés, transistores, lo que sea. La idea que tengo es buscar presicion. Pense en usar 8 microdisplays, 4 serian 2 para Horas de T1 (on) y 2 para Horas de T2 (off), os 4 restantes serian para los minutos de ambos tiempos, T1 y T2. Tengo varias estapas ya resueltas, es decir, la visualizacion en los displays, la fuente protegida ya que lo usare directamente a los 220VAC 50Hz, y el módulo de potencia con seleccion de polaridad (doble relé). Probé usando un 4060 y multiplicando ciclos, pero si bien logro tiempos largos no consigo ninguna presicion. Puedo incorporar tambien un reloj en tiempo real, generando pulsos de 1 segundo exactos, con algun resonador, tal vez implementando algun 16F84 que me sobre. Quizas lo mejor seria utilizar algun PIC, tengo un 16F876 sin usar. Alguien tiene algo, sea esto o parecido como para hecharle una mirada. Se agradece de antemano. Una vez que finalice con esto, creo que quedara como lindo proyecto free.

Les dejo un ejemplo visual, de lo que seria.

Saludos.
 

Adjuntos

#2
Como primera parte, pensé en diseñar un pequeño timer como segundero común a ambas horas, perfectamente calculado en 1 minuto, el cual servirá para descontar el tiempo en ambas horas, T1 y T2, según esten seleccionadas por el ciclo de trabajo.
Dejo el esquema del diseño. Se hace mas que obvio, que no necesariamente debe de estar completo, es simplemente para visualización, pero se pueden reemplazar los drives y los displays por un simple led o nada, para reducir aun más el circuito y ahorrar componentes.

Saludos.
 

Adjuntos

#3
Hola MaMu:

De inicio creo que sería más fácil hacerlo con un pic, pero como no he trabajado con ellos no podría hablar ampliamente del tema.

Lo que si he trabajado mucho es la lógica discreta, y se me ocurre que podrías utilizar el reloj principal (HORA) para sincronizar los cambios de los otros dos (ACTIVO e INACTIVO). Hablaste de generar un pulso por segundo para hacer que cambie la hora en el reloj principal.

Envías este pulso (o uno codificado por minuto) a los contadores "Activo" e "Inactivo", en este caso un FF determina cuál va a contar, por medio de el pin "Count Enable". Las entradas del FF son controladas por los pines "Ripple Count", Haciendo que sólo uno de los dos contadores esté activo.

Como elemento de control, ponemos compuertas AND para poder cargar cuando lo necesitemos el número en las entradas "Preset".

Al llegar a ceros, utilizamos el pin "Parallel Load" para cargar el número 3 en las decenas, con esto obtenemos una cuenta reseteada a 30 (este número puede modificarse, en el ejemplo, estas entradas están fijas, pero puede ponerse cualquier número que se desee si se ponen Dip switch), y se habilita el otro contador, el cuál sigue este mismo patrón.

Para evitar un gasto innecesario, se pueden cambiar los 2 inversores por transistores NPN (Colector al FF, con su correspondiente resistencia pull-up, emisor a tierra y la Base a la AND con su correspondiente limitadora), ya que básicamente cumplen la misma función (No los pongo en el circuito ya que si pones un transistor, no funciona bien la simulación digital).

Si quisieras eliminar uno de los contadores para ahorrar un poco más, podrías utilizar el MC14551, mostrando las cuentas de "Acitvo" e "Inactivo" en un mismo display, es un multiplexor de 4bits, dos palabras de entrada y una de salida, tiene un pin de control con el que seleccionas cada palabra (e iría controlado por el FF), y así la puedes enviar al "Preset" del contador, desafortunadamente no viene en la librería del Circuit Maker, no puedo hacerte la simulación.

Tengo un problemilla con el circuito, por alguna razón, al comenzar la simulación el FF comienza con las dos salidas en ALTO, Para eso es el pulsador en la entrada "CLK" del FF. un sólo toque y comienza el sistema.

Claro que este es un circuito preliminar, si te sirve, podemos desarrollarlo.
Te dejo el diagrama para que cheques la simulación.

Espero y te sea útil esta información
Un saludo al foro :D
 

Adjuntos

#4
Es interesante la simulacion, muy buen aporte. Creo que es importante lo de incluir los dipswitches para el preset de cada hora de los T1 y T2. Estoy de acuerdo con el tema de ahorrar pastillas de ic usando transistores, pero como bien dijiste a la hora de simular son bastante incomodos. Volviendo a la idea central, el segundero comun, que genera los pulsos de un minuto, para ambos T1 y T2, la conmutacion entre ambos se hace mediante FF, eso es correcto, ya que la conmutacion se produciria al llegar a 0 la hora que se este descontando de cada T, esa misma señal conmutaria el FF y a su vez recargaria la hora que anterior mente habia sido decrementada a 0, mediante la carga paralela, al valor que este seteado en los dipswitches. El segundero o generador de pulsos de 1 minuto seguiria corriendo simpre, puesto a que éste, es el mismo de la hora central. Lo del ahorro es bueno considerarlo, pero en nuestro caso, ambas horas tienen que poder verse simultaneamente. Lo que se veria, es correr la hora central, y el decremento de la hora pre seteada del ciclo que se este ejecutando. El inicio de decremento y la llegada a 0 de cada hora, es lo que gobernará ademas la etapa de potencia para el control de la carga, en nuestro caso utilizaremos 2 relé doble inversor. Uno para el control de la carga, y el otro para la seleccion arbitraria de polaridad (220VAC 50Hz), puesto a que en nuestro caso, lo diseñaremos para el control de un extractor/ventilador (función variable mediante la seleccion de polaridad), lo que no quita que esta estapa pueda ser desarrollada a gusto y demanda del interesado.
Otro detalle que pense, es en el de incorporar al control central de hora, 2 comparadores de 8 bits, siendo de un comparador , 4bits de MSB horas y y 4 bits de LSB minutos, y el otro exactamente los mismo que el anterior, que me permite esto? seleccionar el rando de 2 horas diferentes, ya que podria seleccionar 2 horas del tiempo real para que durante ese periodo no se afecte a la carga, o simplemete no trabaje, como bien podria ser un horario nocturno, donde no seria necesario que funcione el equipo, interrumpiendo los ciclos de trabajo hasta finalizada la hora limite. En cuanto a precision, el margen de error admisible es de 4 minutos 17 segundos aproximadamente, puesto a que las horas reales diarias no alcanzan las 24hs exactas (diferencia en minutos, que multiplicado por 4 años, suman un dia mas, llamado año bisiesto).
Seguiremos analizando, descartando, mejorando y realizando cambios asi vayan surgiendo.

Saludos.
 
#5
Basicamente, por lo que fuimos analizando, cada dígito del reloj seria seteado y configurado como lo describe la imagen adjunta. Tenemos que tomar en cuenta la cantidad de componentes que terminariamos usando si quicieramos visualizar los 6 digitos que compondrian la hora principal, es decir, 2 para las horas, 2 para los minutos y 2 para los segundos, lo que sería demasiado robusto en cuanto a cantidad de ic's. Lo que sin lugar a dudas, nos obliga a tender hacia el uso de un microcontrolador para tal fin, reemplazando hardware por logica de programación. Más adelante, rearmaremos el mismo diseño, utilizando un PIC 16F84A, un clasico, si bien pequeño, muy poderoso y suficiente para nuestra tarea, lo que nos permitira ahorrar hasta un 75% y quizas más en cantidad de componentes implementados.

Saludos.
 

Adjuntos

#6
Otra variable más de control, perfecto, me encanta cuando se pone más interesante :D

Completamente de acuerdo, el circuito rebasó los límites admisibles para lógica discreta. seguiré muy de cerca el tema para saber como va quedando el circuito con el Pic, ya que como te comenté, no sé casi nada acerca de micro-controladores.

Un saludo :D
 
#7
Como primera entrega de las reducciones en el circuito que antes mencionamos, mediante la implementacion de un microcontrolador PIC 16F84AP-04 (4MHz), aqui voy presentando la primera parte del circuito, que consta del reloj en formato HH:MM:SS, utilizando 6 displays de 7 segmentos. La salida de este pequeño control se basa en la generación de 1 pulso cada 60 segundos, suficiente para decrementar cada uno de los tiempos T1 y T2 del dutty que queramos manejar.
Luego, revisaremos el circuito, haremos un analisis profundo de su explicacion, asi como tambien empezaremos a ir definiendo las variables para trabajar el codigo fuente.
Para que vayan viendo...
Saludos.
 

Adjuntos

#8
En el caso que consideraramos que visualizar los segundos no es factor necesario, podriamos optar por el siguiente circuito, basado en la nota de aplicacion AN590 de Microchip.

Saludos.
 

Adjuntos

#9
Como habiamos pensado, necesitabamos reducir drasticamente el circuito, en cuanto a cantidad de componentes, sin perder ni la cantidad ni la calidad de las prestaciones. En las imagenes adjuntas, se puede apreciar el circuito del Temporizador reducido, gobernado por un uC 16F84A. Tambien se puede apreciar, aunque un tanto incompleta (por falta de tiempo...) una simulacion renderizada de como se veria el circuito final terminado. No obstante, la fuente de alimentación no ha sido considerada, puesto a que el interesado podrá obtener los 5Vcc de la forma que se adecúe a sus necesidades. En breve, estaremos desarrollando el firmware y analizandolo. Espero poder sacar algunas fotos e ir posteandolas para que se aprecie en detalle todo este proyecto.

Saludos.
 

Adjuntos

#10
Como era de esperarse, he decidido rediseñar el circuito, ya que con tantos componentes el tamaño del circuito y el PCB parecian una obra del demonio. Les adjunto el nuevo diseño. Ya estoy terminando el software que luego voy a comentar y explicar, asi como tambien todas las librerias auxiliares que he utilizado.

Saludos
 

Adjuntos

#15
hola MaMu. mira, yo en tu caso utilizaria un pic ya que si tengo experiencia con estos micros.
Fijate bien por que viene un cristal que es de una frecuencia rara ( por ej: 17.45902 MHZ) y esta calculado exactamente para contar un segundo clavado, (lo usan en relojes).
Bien ahora, el tema del pic, es facil hacer que prenda y un led cada 1 segundo bien preciso. pero cuando se trata de comandar un display, manejar salidas y entradas, esperar respuesta de botones, se complica un poco, ya que mientras vos gastaste dos ciclos de instruccion en cambiar un estado de una entrada o una salida por ejemplo, el tiempo ya se extendio esos dos ciclos.y si el reloj que vos usas funciona 5 dias seguidos puede llegar a un desfasaje importante.
yo lo haria con un pic, pero que este reciba interrupciones de un reloj, cada un tiempo determinado y eso le marque el tiempo asi no se va del tiempo real. te ahorrarias mucho trabajo en la depuracion del programa creo.
bueno espero que te sirva de algo. saludosss
 
#16
hola Mamu mil gracias por le aporte de echo estoy haciendo un proyecto en mi escuela de eso quiero ver si eres tan amble de proporcionarme el programa me serviría de mucho y claro si puedes la lista de componentes que usaste mil gracias de antemano te lo agradeceré mucho


 
#17
Hola, soy nuevo por aqui, excelente proyecto se ve muy bien, mira yo diseñe un horimetro que voy a implementar para llevar la cuenta de las horas/minutos/segundos de funcionamiento de una planta de emergencia, puede contar 9999hrs/59min/59seg, y me gustaria saber si me pudieses ayudar a hacer lo mismo pero usando un pic y display lcd como el que tu usaste ya que la circuiteria que tengo usando compuertas y demas ocupa mas espacio del que quisiera, gracias... espero su ayuda ya que en eso de los pic no estoy muy empapado... Gracias
 
#19
OLVIDENSE !!! que les de el programa este mamu, lamentablemente hay muchos foreros egoístas que solo muestran para presumir, sin saber compartir .... pero busquen que hay muchos proyectos y mejores que ese Animense !!!
 
#20
OLVIDENSE !!! que les de el programa este mamu, lamentablemente hay muchos foreros egoístas que solo muestran para presumir, sin saber compartir .... pero busquen que hay muchos proyectos y mejores que ese Animense !!!
Vos decis que no quiere compartir nada? igual yo siempre prefiero armar las cosas por mis propios medios, no espero mucho de este usuario ni de nadie, pero digo... Estas seguro de determinar eso sobre esta situacion?
digo eso al OLVIDENSE bla bla..

saludos!
 

Temas similares