21 de septiembre de 2014

Insoladora UV con Arduino V1.0. Programación

Vamos a seguir con la parte de programación del Arduino de la insoladora ultravioleta. Seguramente hay mil maneras de mejorar el código para que sea más eficiente en el tema de bucles y todo eso, pero no soy ningún experto en programación y si tenéis alguna idea mejor os agradecería mucho que avisárais.

Bueno, lo primero y lo más importante es tener una visión general del programa para ver cómo debería funcionar. Lo más sencillo para esto es que le echéis un vistazo al flujograma en la siguiente imagen:



Como veis es bastante simple. Lo primero que hago es utilizar la variable "siguiente" para saber cuántas veces se ha pusado el botón OK. Al principio el programa va a estar a la espera de que le digamos cuáles son los límites superior e inferior de la placa, por lo que nos dejará avanzar adelante o atrás la barra de led's UV con los botones más y menos. El primero que tenemos que encontrar es el inferior y, seguidamente el superior (esta es una de las cosas que tengo que pensar para cambiarlo en el código y que dé igual el orden de selección de los límites, pero por el momento lo dejaré así). Cuando lleguemos a la posición del límite inferior pulsaremos por pirmera vez OK. Esto hará aumentar en uno la variable siguiente e inicializará una variable (contador) que contará el número de vueltas dado por el motor a partir de ese momento. Buscamos ahora el límite superior y pulsamos una segunda vez OK. Con esta segunda pulsación volvemos a aumentar la variable siguiente y volcaremos el valor de contador a la variable distancia que se utilizarán para hacer el recorrido de ida y vuelta de los led's UV.

Ahora ya tenemos en memoria el número de vueltas que tendrá que dar el motor hacia delante y hacia atrás, con lo que siempre estaremos insolando la misma superficie durante las 7 idas y vueltas programadas. Lo único que nos queda por hacer es encender el led indicador de insolado, la barra de led's UV y hacer el movimiento de vayvén. Al acabar el mismo apagamos todos los led's y volvemos al inicio del programa.

Aquí os dejo un enlace para descargaros el código completo. Si tenéis alguda duda dejadme un comentario y os respoderé lo más rápido posible.