Introduction: CIRCUITO TEMPORIZADOR PROGRAMABLE BASADO EN ARDUINO

About: Electronics Professor Retired.

Les voy a compartir este proyecto de utilidad en empresas de manufactura y otras en donde se requiere activar alguna máquina de manera periódica sin intervención de algún operario.

Estos sistemas ya existen de manera comercial y son bastante robustos y económicos, pero si queremos hacerlo nosotros mismos, un poco mas económico y a nuestra manera, pues aquí les dejo una guía para ello.

Circuito temporizador de 256 tiempos desde 60 segundos hasta 4.27 horas, en intervalos de un minuto, colocados desde un minidipsw de 8P, con salida de relevador de 110 VAC @ 10A o 250v @ 7A y activación temporizada a 1,2,3,4,5,10,20,30,40,50,60,120,180,240 y 300 segundos fijados en otro minidipsw de 4 polos utilizando un micro controlador ARDUINO NANO.
Por: Luis Lapham @lapham25 Inicio: 18/05/16 Versión 2.0: 05/07/17

Step 1: Explicación Del Diagrama Eléctrico

La parte más interesante del timer, pues es el programa de arduino en el que se codificarán los diferentes tiempos, de acuerdo al estado de los interruptores o minidipsw de entrada.

El diagrama o hardware es bastante simple y lo presento en seguida: De este diagrama, hecho en el software Eagle, podemos apuntar lo siguiente:

1.- La salida del pulso de activación es por la terminal A1/D15 hacia un transistor, con su diodo de protección para cargas inductivas, que actúa como interruptor para activar la bobina de un relevador de 5V y a su vez su salida de 110 ó 220V.

2.- La salida A2/D16 da el pulso de auto Reset al final del tiempo de activación para que el arduino inicie la temporización nuevamente. Notese la RED de retardo formada por R18 y C1, que sirve para retardar el pulso el tiempo suficiente para el arduino lo detecte en su terminal RST y se reinicie.

3.- A esta misma terminal RST va el interruptor o push boton N.A. para hacer, si es necesario, una inicialización manual. Notese que el reset manual y el autoreset van en paralelo sin ningún problema de interferencia.

4.- En la terminal 4 de 5V, colocamos un puente o jumper para retirarlo en caso que se requiera cargar nuevamente el programa de la computadora al arduino.

5-. Los dipws deben de llevar las resistencias de PULL UP, en este caso de 2.2K para fijar un nivel alto 5V, en las entradas del arduino cuando cada interruptor esta abierto, cuando estos se cierran introducen un cero, drenando la corriente respectiva (5V/2,200 ohms) dichos resistores.

6.- Como última entrada tomé A0/D14, porque D13 hacia cosas raras y pues no la utilice ?

Step 2: Código Del Timer Programable

En el paso 2, les comparto el programa o código en Arduino del temporizador o timer programable.

En la primera imagen tenemos los comentarios pertinentes al programa.

En la segunda gráfica ilustramos la declaración de variables: SET es la suma de valores ponderado del tiempo de retardo principal, SET1 es la suma de valores ponderador para el tiempo de activación del relevador de salida. TB y TB1 son los tiempos base para los calculos, TR y TA son los tiempos de retardo y activación respectivamente y de A a L son las 12 variables asignadas a los 8 + 4 interruptores de entrada, en donde programaremos los tiempos requeridos a nuestra aplicación y damos un valor inicial a todos de cero. En la tercera imagen se presenta el SETUP en donde se declaran que pines del Arduino serán entradas y cuáles serán salidas. Me brinque el pin 13, no por superstición :( , sino por que no me funcionaba como entrada.

Para la cuarta imagen, comienza en si el programa (LOOP) e iniciamos leyendo digitalmente los interruptores del A al H, si no activamos ninguno el programa vuelve a la etiqueta nada: y vuelve a leerlos. Los que estén activados asignaran a las variables respectivas, un valor ponderado es decir, 1,2,4,8,16,32,64 y 128. (o sea de acuerdo a su posición). Se aplica un retardo de 100 mS a cada lectura para que el micro lea los interruptores ya estables y sin ruido de contactos.

En la quinta imagen leemos los dipsw que programan el tiempo de activación con las variables I,J,K,L que igual se asignan ponderadas, de acuerdo a la posición de cada interruptor.

Con la sexta pantalla vemos que se suman los valores ponderados y se multiplican con los tiempos base predefinidos para los dos tiempos TR y TA.

En la séptima imagen, vemos como se calculan los tiempos de activación TA, del uno al 5 son directos, es decir se multiplica la lectura de los interruptores por uno, dos, tres, cuatro o cinco segundos. De 6 en delante, hay que multiplicar por el factor necesario para obtener 10, 20,30,40,50, 60, 120, 180, 240 y 300 segundos. Por ejemplo para obtener 10 segundos hay que multiplicar el 6 por 1.67.

Finalmente el la octava pantalla se muestra la activación del relevador y el autoreset o reset por software, para reiniciar el proceso. Espero que les sea de utilidad este programa que sé que se puede mejorar y hacer mas eficiente, y dejo en sus manos el modificarlo y superarlo.

Step 3: PCB Del Timer Programable

En esta última entrega les comparto el diseño de un PCB doble cara para el circuito ya probado en tarjeta de experimentación o proto.

El circuito se comprueba primero en PROTO o tarjeta de experimentación, en donde se pueden hacer los cambios necesarios, antes de pasar los componentes electrónicos al PCB, en la primera imagen se ve la foto de timer en el PROTOBOARD.

El tamaño de la tarjeta PCB resulta de 7 X 7 cm, y en la segunda imagen se ve la distribución de los componentes, utilizando el programa EAGLE, que es gratuito hasta tarjetas de 10 X 10 cm, creo, si ocupas mas grandes hay que pagar por el software.

En la tercera foto se ve la cara superior (TOP) del PCB, que debe contener el menor número de pistas posibles para tener pocos orificios con necesidad de alambre (TRUE HOLE) que conecten ambas caras.

Y en la cuarta imagen se ve la cara de abajo de la PCB. También este diseño es preliminar y se puede mejorar bastante, aunque creo que no reducir de tamaño demasiado, jejeje.

En la siguiente liga de dropbox podrás disponer de los principales archivos del diseño para tu uso escolar o comercial, siempre citando la fuente (Ley de Weathon):

https://www.dropbox.com/…/dnwtb3…/AADqXDRw5WxnFFp5...

Finalmente, si la programación de micros no es lo tuyo, pues te comparto un diseño de un timer analógico, que cumple una función similar, aunque mas limitado en cantidad de tiempos, que el timer digital programable.

Este timer corresponde a la ultima imagen del álbum, y puedes observar que se forma de 2 circuitos LM555, autentico guerrero de la electrónica desde hace ya varias décadas, el primero se configura como multivibrador astable y genera los pulsos de disparo para el segundo que es un multivibrador monestable que genera un solo pulso de duración fija.

Entonces el primero genera el tiempo de retardo y el segundo el tiempo de activación del timer. En este diseño la clave es el transformador de acoplamiento 1:1 de los dos circuitos pues el monoestable solo responde a las bajadas del disparo y luego debe mantenerse en voltaje alto.

Espero que estos circuitos sean de utilidad para estudiantes y entusiastas de la electrónica y la programación, y cualquier duda o comentario lo recibiré con gusto.

Saludos y buen domingo.