Temporizador con Arduino

Cómo hacer nuestro propio temporizador multifunción con final musical y aprender a tomar los tiempos de una insoladora.

placa_terminada_insoladora_0

Hoy vamos a crear un temporizador con Arduino para poder controlar nuestra insoladora LED-UV pero podemos emplearlo para cualquier otro propósito gracias a la modularidad del circuito. Antes que nada una breve descripción de sus características técnicas.

Temporizador programable 

Tiempo mínimo: 1″

Tiempo máximo: 256 minutos ( 4H 16min)

Precisión: Aprox 50ppm

Memorias de usuario programables mediante botones: 3

Carga máxima regulable conectada a la salida: 0 – 1.5A ajustable mediante potenciómetro

Tensión de salida en carga: Vcc

Tensión de alimentación: 7 – 25Vcc

Antes de empezar, necesitamos descargar los esquemáticos para poder imprimir el circuito.

Descarga de esquemas

*Nota(el enlace está en continuo cambio, incorporando cada vez que descubro errores o mejoras las actualizaciones oportunas)

Con los archivos ya impresos en el fotolito, o preparados para el planchado, vamos a hacer una lista de componentes y coste:

  • 1 Placa de baquelita fotosensible positiva de 80×120 → 3€
  • 1 LCD 16×2 HD4478  → 3€
  • 1 Regulador de tensión LS7805 → 0.9€
  • 1 Transistor NPN BD139  → 0.40€
  • 1 Arduino Pro Mini  → 4 – 10€
  • 1 Programador para Arduino mini (conversor USB – Serial) → Entra dentro de las “herramientas” pero en ebay se puede encontrar por algo más de 1€ y puede resultarnos muy útil para futuros proyectos.
  • 2 Tiras 40 pin female  → 2€
  • 1 Tira de 40 pin male → 1€
  • 1 Conector DC 2.1mm para PCB  → 0.50€
  • 1 Potenciómetro de tornillo para PCB de 10KΩ (contraste de pantalla)  → 0.30€
  • 1 Potenciómetro de tornillo para PCB de  100KΩ (limitador de corriente de salida)  → 0.30€
  • 6 Pulsadores (pueden ser de agujero pasante, o “push button” para PCB) → Precio variable (de 1.50 a 6€)
  • 1 Diodo 1N4004 o superior → 0.20€
  • 1 Condensador de 0.1uF → 0.15€
  • 1 Condensador de 100uF → 0.20€
  • 6 Resistencias de 10KΩ → 0.30€
  • 2 terminales molex para la salida de la carga y la alarma → 1.5€
  • 1 Buzzer 0 a 23v (no piezoeléctrico) → 1€
  • Herramientas típicas para soldar, taladro de 0.7 y 1mm, etc.

Coste total de los componentes = 20€

Ese precio, se puede rebajar si disponemos de alguno de los componentes ya o incluso si a la hora de comprar, compramos en “lotes”. Yo acostumbro a comprar grandes cantidades de ciertos productos, ya que al final acaba saliendo infinitamente más barato que comprar un solo componente.

¡EMPEZAMOS!

Lo primero que tenemos que hacer es crearnos nuestra PCB para poder controlar nuestra nueva insoladora, pero… si no tenemos el temporizador todavía ni hemos podido hacer pruebas de tiempos, ¿Por dónde empezamos? Cierto, esto es el pez que se muerde la cola así que propongo dos soluciones:

  1. Si tenemos algún amigo o conocido que tenga ya su insoladora o algún método para hacer PCBs y salgan bien, le pedimos que nos haga la placa.
  2. Si tenemos ganas de arriesgarnos, podemos encender nuestra nueva insoladora y con el teléfono o similar contar un tiempo aproximado de 4 minutos (medido a una tensión de 12.5V y un pañuelo actuando como difusor en la insoladora del tutorial). La placa que usé yo era marca REPRO y el tiempo exacto de insolado fueron 4′:10″ pero como os digo, aún tenemos que estrenar nuestro temporizador que nos ayudará precisamente a controlar esto, puesto que dependiendo de las pistas, la tensión de alimentación, difusores, marca de la placa…. puede cambiar de 4 a 8 minutos por ejemplo. Este es el motivo de este tutorial y de haber creado el temporizador.

Una vez tengamos ya creada la placa con el circuito impreso, no hay mucho que decir sobre el proceso de soldado e instalación de los componentes. Simplemente como notas aclaratorias:

1. Los pulsadores pueden instalarse de dos formas; o bien los podemos soldar a la placa (como en la foto) con botones tipo “pushbutton” o bien podemos usar pulsadores para instalar en alguna superficie. Este es el motivo por el cual en el circuito no se han conectado directamente, y si queremos usar los pulsadores de PCB debemos usar “jumpers” o “wires”, es decir, cables soldados como indican las líneas rojas de la capa superior.

placa_desmontada1

2. Los conectores para la salida de carga y el speaker se han diseñado para poder soldar tanto “Pin headers” como en la foto, como para poder instalar “regletas molex” que son más seguras, puesto que el cable conectado queda aprisionado por un tornillo.

Vale, ya tenemos todos los componentes situados, soldados y preparados. Sólo nos queda darle esa lógica milagrosa del siglo XXI que nos ha permitido que todos podamos hacer magia con la electrónica. Falta programar el corazón del sistema, nuestro pequeño arduino.

Para programarlo simplemente hay que cargar el código fuente que también está en el enlace anterior de descarga.

Una vez copiado el código en el IDE de Arduino, simplemente hay que conectar los pines correspondientes del adaptador USB-Serie +5, GND, TX, RX, RST a los pines del conector superior del Arduino Pro Mini. Simplemente recordar que el TX de Arduino va al RX del conversor y viceversa. El conector RST o DTR (es lo mismo) se emplea para reiniciar el Arduino justo en el momento necesario para que “escuche” la entrada de código.

Si al compilar e intentar subir el código da problemas, probar a mantener pulsado el botón de reset del Arduino hasta el momento justo en el que el IDE intenta subir el código, que es cuando debemos soltarlo.

En esta imagen se puede apreciar cómo deben conectarse ambos. En mi caso, al no hacerme caso el Arduino a la hora de programarlo, tuve que recurrir al “truco” del reset, pero debería funcionar automáticamente.

IMG_20130513_094106

Cuando tengamos programado el arduino sólo tenemos que introducirlo en su respectivo lugar, conectar la alimentación en el conector DC  y ajustar el contraste de la pantalla hasta que veamos lo que tanto estábamos esperando.

El funcionamiento del temporizador es bastante sencillo.

Tenemos un botón de selección de segundos, otro de minutos que cuando los pulsamos (o mantenemos pulsados) van incrementando su respectivo valor. El botón de start empieza la cuenta atrás con los valores cargados y las memorias funcionan del siguiente modo: una pulsación corta (menor de 1 segundo) carga los valores almacenados en el banco de memoria mientras que una pulsación larga guarda en el número de memoria que pulsemos los valores que tengamos en pantalla.

¿Sencillo no? No era necesario hacerlo complicado.

¡TOMEMOS TIEMPOS!

Ahora que ya está todo operativo, y hemos comprobado que podemos encender la insoladora mediante el temporizador llega el momento más divertido y a la vez el más importante. Tomar tiempos a la insoladora. ¿Qué es eso de tomar tiempos? Pues sencillamente hacer una única prueba de ensayo/error con el material ya acabado y reglarlo de forma que con un simple botón ( recordemos que disponemos de tres memorias) podamos hacer una placa de forma autónoma sin preocuparnos del tiempo, de las características del fabricante, etc.

¿Cómo lo hacemos?

Lo primero que necesitamos es imprimirnos el fotolito de pruebas que encontraremos en la carpeta descargada. Es algo como esto:

fotolito

Recordar que es imprescindible no cambiar el tamaño de la impresión (reducción o escalado) así que a la hora de imprimir dejar que el visor de PDF imprima el documento “desde las medidas del archivo” y no intentar escalar o encajar el documento al área de impresión.

Llegados a este punto es necesario tener preparadas ya las soluciones reveladora y atacadora. Recomiendo echar un vistazo al tutorial donde hablo de ellas para refrescar la memoria

Revelado y atacado de placas PCB. Cómo preparar las soluciones

A la hora de insolar, el procedimiento es sencillo; Simplemente debemos colocar el fotolito sobre el cristal y dejar la parte con la tinta o toner en la parte superior, para que quede en contacto con nuestra placa de circuito impreso. Recordar hacer el proceso de corte de la placa y posicionamiento con la menor luz posible para evitar que se eche a perder (tampoco hay que ponerse en peligro y querer hacerlo completamente a oscuras, simplemente hay que ser rápido y evitar la luz solar). Dependiendo del tipo y marca de placa bastará con quitarle un simple papel (REPRO) y en otros casos quitar una “pegatina” protectora (Bungard). Me parece más efectivo el método de protección de la pegatina, puesto que a la hora de cortar la placa no tenemos que ir con cuidado de mover el papel protector y podemos cortar con más comodidad. Si vamos a emplear la placa entera, es indiferente.

Una vez preparada la placa, la colocamos cuidadosamente y sin tocarla con los dedos por la parte del cobre nunca sobre el fotolito y cuando lo tengamos todo bien alineado, aplicamos peso sobre la placa para que el contacto sea perfecto (ojito no cargarse el cristal, una biblia no sirve. Necesitamos algo un poco más ligero)

¡Aquí viene lo interesante! Para tomar los tiempos como habréis observado, se repite un mismo circuito varias veces con el número de minutos que vamos a tener insolando cada parte. La prueba consiste en desplazar dos cartones o papeles completamente opacos cada minuto de forma que a cada minuto que pase, tapemos uno de los “cuadraditos” y vamos insolando en tiempos de un minuto cada vez. Así, el primer trozo solo habrá recibido la luz durante un minuto mientras que los sucesivos, un minuto más cada uno. Algo muy importante es que no se mueva lo más mínimo el fotolito respecto con la placa, ya que si se mueve echaremos la prueba a perder. Para eso, recomiendo usar cinta adhesiva para pegar la placa al fotolito de forma que al mover el cartón o papel por la parte inferior no se desalinee el fotolito y la placa.

Una foto del proceso:

IMG_20130509_104949

Cuando terminemos el insolado, procedemos a revelar la placa. En este punto, como la placa no se ha expuesto a la luz de forma uniforme, hay que tener en cuenta que no toda se revelará bien y no todos los circuitos quedarán bien definidos. Así pues, este proceso se debe hacer prestando mucha atención a todos y cuando veamos que uno está perfectamente definido, es el momento de aclarar la placa y parar el proceso. Si hay alguno que no se ha dibujado correctametne, es normal. Sólo hay uno o dos minutos buenos por lo general. El resto nos saldrán o sobreexpuestos o subexpuestos. Todo esto puede parecer un poco complicado, pero aquí dejo unas imágenes una vez revelada y atacada la placa.

Resultados de 1 y 2 minutos

IMG_20130510_110138

Resultados de 3 y 4 minutos

IMG_20130510_110149

Resultados de 5 y 6 minutos

Insolado de 5 y 6 minutos

Como se puede apreciar, el resultado a los 4 minutos es perfecto, por lo tanto, en la forma que tengo configurada la insoladora (tensión de entrada, distancia entre LEDs y placa, uso de difusor o no, potenciómetro limitador de salida, etc) 4 minutos será el tiempo que emplearé para hacer mis placas con estas características y por tanto es el valor que guardaré en una de  las memorias. Como vemos la calidad es muy buena, consiguiendo hacer pistas de hasta 10 milis.

IMG_20130510_110311

Una imagen de una placa completamente finalizada. Como se puede ver, la insolé 4:10 y en algunas zonas (el marco exterior en su esquina inferior derecha) corté el cobre, por lo tanto confirma que el tiempo correcto son 3:50 o 4:00

IMG_20130510_115206

Con todo esto, ya estamos capacitados para poder hacer tantas placas como queramos en nuestras casas y escuchar en cada una de ellas la famosa marcha imperial, que por qué no decirlo, había que darle un toque de originalidad al proyecto

26 comentarios sobre “Temporizador con Arduino

  1. Hola Carlos! Me llamo Daniel. Creo que tienes proyectos muy interesantes. Personalmente creo que el del temporizador con arduino es el que más me interesa. Te cuento: Resulta que tengo hecha ya una insoladora de leds-UV pequeña, parecida a la que tienes tú. Funciona con un temporizador progresivo, seleccionas el tiempo que desees y conforme va pasando ese tiempo se van encendiendo unas luces, hasta que finaliza la insolación.
    Ahora me he decidido ha hacer una más grande con un temporizador como el que propones. Pero no sé si tendré problemas, debido a las dimensiones considerables que quiero darle. Quiero hacerla de doble cara. Con unos 345 leds por cara. Mi idea inicial es poner 10 puentes rectificadores de 1,5A con sus respectivas resistencias. Por cada rama irían 69 leds en serie por 10 en paralelo. ¿Cómo lo ves? No sé si será factible. Espero que me respondas pronto.
    Un saludo Carlos!

    • Buenos días Daniel!

      En cuanto a la idea que tienes en mente, es muy buena la de hacer una insoladora más grande y a doble cara pero personalmente veo algunos problemas que podrían surgir con el modelo que planteas. Los comento por partes:

      El uso de la insoladora como yo la diseñé efectivamente no soporta tal carga, pero es algo que se puede solucionar muy fácilmente usando la salida como controlador de otro transistor mucho más potente o sencillamente, como interruptor de un relé. Este problema como ves se soluciona rápido.

      El siguiente, cuando hablas de usar puentes rectificadores, no se si te refieres a transformadores como tal de AC/DC o pasar los 230AC a 230DC sólo con el uso de puentes de diodos. En el caso de usar el último método, el problema más grande que puedes encontrarte está en eliminar el rizado de salida de los puentes, ya que necesitarías unos condensadores de una capacidad considerable, y sobre todo, que soporten los 230V en contínua. Yo no veo factible esta forma de hacerlo tanto por los problemas que plantea como por el presupuesto para los componentes. Creo que sale más a cuenta usar una fuente potente y estabilizada (por ejemplo una de un ordenador viejo) y usar los canales de 12V por ejemplo.

      En cuanto a la forma de conectar las ramas de LEDs, veo otro problema en tu idea, y es que conectar 69 LEDs en serie sube casi a infinito la probabilidad de errores a corto-medio plazo, me explico.
      Cuando conectas 69 LEDs en serie, el fallo de uno, hace que fallen 69, y un solo LED un poco menos dopado que el resto de los 68 hará que la corriente de la rama se limite por culpa de éste, o peor aún, que absorba más potencia y por el calor se acabe destruyendo.

      Lo suyo es intentar, dentro de las posibilidades, hacer las ramas lo más cortas posibles y aumentar así el margen para el error.

      Por último, y a falta de saber las dimensiones de la insoladora, ¿no has pensado en usar el temporizador para accionar un relé que controle unos tubos de luz ultravioleta tipo T8 o T5? Creo que podría llegar a ser más económica esa solución.

      Un saludo,
      Carlos

  2. Hola de nuevo Carlos. Graciad por responder de forma tan rápida y efectiva. En cuanto tenga tiempo te mostraré un esquema de los leds, resitencias y puentes rectificadores que te comenté. Los probé en mi protoboard y los leds funcionaban perfectos. Los puse 5 minutos y lo único que sucedió es que la resistencua se calentaba un poco, pero nada más. Un saludo!

  3. Hola Carlos. Comentarte que estoy rehaciendo el esquemático en eagle porque en vez de arduino promini, con 12 pads a cada lado, tengo arduino nano, con 15 pads. Priméramente hice el componente de 15_longpads, basándome en el de 16, ya que no existía en la librería de Sparkfun Connectors y segundo, al cambiar tus JP6 Y JP7 de 12 de tu esquemático por los mios de 15, al crear la placa desde el esquemático, cuando salen los componentes agrupados para recolocarlos, no me parte ninguna raya amarilla desde los pads de 15 como parten en el tuyo con los de 12. Espero haberme explicado bien, sino te podría mandar por privado el archivo para que le echaras un vistazo.
    Saludos

    • Buenas tardes Manuel.

      En primer lugar, agradecerte el interés por el proyecto y tus ganas de crear otra versión nueva en base a esta.

      Creo que he comprendido dónde está el problema. Si quieres puedes mandarme los archivos del esquemático a: ” admin @ carlitosspedia . info” (todo junto) y este fin de semana intento pegarles un vistazo. No estaría mal dejar una PCB ya acabada para esa versión de Arduino.

      Un saludo,
      Carlos

  4. Hola otra vez!
    Tengo el temporizador montado en un protoboard. Pero tengo un problema al conectar al ordenador el conversor usb-serial. Me lo reconoce. Nada más conectarlo, pone … instalando nuevo dispositivo … o algo así. Luego termina, y pone el dispositivo se ha instalado correctamente. Pero no pasa de ahí. Ya que me voy a “Equipo” y no me sale nada. Incluso probé a resetear el conversor y nada.
    A ver si a alguien le ha pasado algo parecido y me puede aconsejar.
    Muchas gracias! Un saludo!

  5. Hola de nuevo!
    Parece que ya me reconoce el conversor.
    Me gustaría saber si tengo que tener instalado el Eagle para copiar el código fuente al conversor. Si la respuesta es no, ¿con un copiar y pegar bastaría?
    Tampoco sé cuál es el código que hay que copiar del temporizador ya que hay varios: Temporizador.sch, temporizador.brd y temporizador_arduino_insoladora.ino
    En fin con muchas dudas y aprendiendo paso a paso.
    Agradecimientos Carlos!

    • El Eagle no es necesario para poder programar el Arduino. Sólo necesitas el IDE de arduino (se descarga desde la página oficial de arduino) y el sketch, código fuente, programa, o como cada uno quiera llamarlo (lo correcto es lo primero dentro del mundo de arduino) y simplemente es el código que está en el archivo *.ino

      Los archivos *.sch y *.brd son los esquemáticos y la PCB de Eagle respectivamente. Para abrir esos sí que es necesario el Eagle, pero ya están “exportados” en formato PDF para poder imprimir directamente.

      Un saludo.

  6. hola Carlos, en la lista de la compra creo que te has dejado el regulador 7805 tv, es esa la referencia? esta situado encima del condensador de 100uf y es lo unico que me falta. Estoy empezando con el rollito y la verdad que me ha gustado mucho tu proyecto,ya me hecho la insoladora y este tempo tiene que ir de lujo, jeje, te felicito. un saludo.

    • Buenas tardes!

      Efectivamente se me pasó en su día incluirlo en la lista de componentes. Es el problema de tener tanto material por casa y no tener que ir con “la lista de la compra” a por todo y comprobar si te has dejado algo.

      Muchas gracias por la observación! 🙂

    • Buenas tardes Pablo,

      Según lo que he leido en el código (y sin tener ni idea del esquemático) creo que hay un fallo haciendo que los pulsadores y botones sean leidos por un puerto analógico (este no es el problema realmente, se pueden usar indistintamente analógicos o digitales) usando la función “analogRead()” la cual devuelve valores entre 0 y 1023, y ese sí que es el problema real… Sólo con un mal contacto o algo de resistencia tienes 1 posibilidad frente a 1023 aproximadamente de obtener un 0. No sé si me explico…

      Lo correcto sería usar un valor booleano (0 o 1) mediante la función digitalRead() y mejor aún si se usa una doble función para comprobar que no ha sido un parásito o un rebote, ya que te sorprendería la velocidad a la que es capaz de leer (cantidad de veces por segundo) el Arduino el estado de los pines en un programa tan sencillo.

      Un saludo,
      Carlos

      • Hola Pablo,
        Estoy haciendo el temporizador que propones.
        Sin embargo me lío con el cableado, la foto y el esquema.
        Podrías poner el orden de los cables a los pulsadores y demás para supertorpes como yo?
        Muchas gracias,

        José Antonio

  7. Buenas carlitos, se podria agregar al circuito un boton de reset, por ejemplo si nos equivocamos en el tiempo seleccionado y queremos modificarlo, tanto una ves encendido el temporizador, como antes de comenzarlo?

    Muy buen proyecto

    lo estoy por armar

    • Claro, sería tan sencillo como usar una de las salidas analógicas como entrada y programar que hiciese la función de reset. Es bastante sencillo, pero en su día no se me ocurrió hacerlo.

      Si quieres agregarlo y luego actualizar el archivo del Git estaré encantado de hacerlo.

      Un saludo,
      Carlos

        • una consulta carlo, no me queda en claro una tema de los pulsadores ¿en caso de usar pulsadores externos y no en la PCB, debo hacer los jumper o wire igualmente? por que al ver los esquemas estos puentes van a las resistencias variables …. Ya arme uno como el que tenes y cuando hagas la modificacion armare el del reset, la impasiencia me jugo en contra esta partida jejeje.

Deja un comentario