You are on page 1of 5

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

Algoritmo simple de control con 2 pulsadores para programadores


horarios

Miguel Pareja Aparicio


RadioSIC (www.radiosic.com)
Espaa
Correo-e: mpareja@radiosic.com
Abstract. Uno de los principales problemas es la utilizacin al mximo de los recursos, y uno de ellos
puede ser la limitacin del nmero de puertos utilizados para control, tanto entradas como salidas, en
los sistemas con programadores horarios. Los actuales programadores horarios disponen de gran
cantidad de pulsadores para la introduccin de datos: cambios de horario, disparo de alarmas, puesta
en marcha o parada de dispositivos. En consecuencia se ha ideado un posible algoritmo, del cual se
presenta sus respectivos flujogramas, que sean de utilidad para su total control horario nicamente
con la utilizacin de dos pulsadores externos conectados a la entrada de un microcontrolador,
dejando a libertad del diseador tanto el lenguaje de programacin como el microcontrolador a
utilizar.

1 Instrucciones
El presente trabajo presenta una lnea de trabajo
interesada en el desarrollo de sistemas ms eficientes
de control, siendo el presente algoritmo un intento
por reducir al mnimo la utilizacin de puertos de un
microcontrolador para el desarrollo de programadores
horarios.

1.1 Entradas: pulsadores


Se dispondr de dos pulsadores conectados a dos
entradas de un microcontrolador, con una resistencia
pull-up y otra resistencia de menor valor hacia la
entrada al microcontrolador (Fig 1).

Figura 1.- Entrada con pulsadores

En consecuencia las entradas tendrn un valor de


tensin a la tensin de entrada (5 voltios) hasta que se
apriete uno de los pulsadores, en cuyo caso el valor
de tensin ser prximo a los 0 voltios. Entonces con
5 voltios se considerar a nivel alto y 0 voltios se
considerar a nivel bajo, siendo considerado que la
tensin este a nivel bajo para que el microcontrolador
interprete que se ha pulsado alguna de las dos
entradas.

1.2 Equipo de pruebas


Para las pruebas realizadas se ha basado en el
laboratorio PIC School de Microsystem Engineering
(Fig.2), con un microcontrolador PIC16F876A.

Figura 2.- Pic School Training

Congreso 2010, Pgina 1

Figura 3.- Flujograma general

2 Algoritmo en flujograma
A continuacin se muestran los flujogamas con sus
respectivos comentarios, en donde se ha distribuido
en varios apartados con el nico fin de que quede lo
suficientemente claro cada uno de los apartados.
Figura 4.- Flujograma cambio de hora
Se ha nombrado a los pulsadores como S1 y S2,
pudindose intercambiar dicha nomenclatura,
siempre que se asocie los mismos cambios a todos los
flujogramas que aqu se presentan. Adems hay que
tener en cuenta que van asociados a ambas entrada,
en consecuencia se requerir de una leyenda que
informe sobre el diseo a implementar.

2.3 Flujograma cambio de disparo o


alarma
Un ciclo secundario o funcin, ser el cambio de una
hora del disparo de alarma, siendo utilizado como
una activacin de una de las salidas durante un
tiempo prefijado (por ejemplo: despertado o cambio
de turno) o tiempo programable (por ejemplo:
programador de riego).

2.1 Flujograma general


Se dispondr de un ciclo principal que consiste en un
bucle que ir mostrando la informacin, en particular
la hora en formato: hh:mm. En ese punto si se pulsa
un pulsador u otro se accede al submen para el
cambio de hora (puesta en hora) o poner la hora de
una alarma.

La combinacin de ambos pulsadores debe realizarse


de forma opuesta a la utilizada para el cambio de hora
para establecer diferencias (Fig. 5). As pues, si se ha
pulsado S2 para entrar a este submen, despus se
utiliza S2 para cambiar el valor de las variables y S2
para realizar el cambio al siguiente submen. No se
trata de un bucle cclico sino lineal, en donde se
empieza cambiando la variable de la hora de disparo
de alarma y despus la variable de minutos de la
alarma, a continuacin la activacin o desactivacin
de la alarma, finalmente se vuelve a mostrar la hora,
pero con los valores actualizados. En este caso se ha
incluido un tiempo prefijado de activacin.

2.2 Flujograma cambio de hora


Un ciclo secundario o funcin ser el cambio de una
hora, denominado como puesta en hora porque suele
ser comn que al reiniciar el sistema se inicie con
todos los dgitos a 0, es decir las doce de la noche.
La combinacin de ambas entradas es importante
para evitar incompatibilidades (Fig. 4), puesto que si
se ha pulsado S1 para entrar a este submen, despus
se utiliza S1 para cambiar el valor de las variables y
S2 para realizar el cambio al siguiente submen. No
se trata de un bucle cclico sino lineal, en donde se
empieza cambiando la variable de la hora y despus
la variable de minutos, finalmente vuelve a mostrar la
hora, pero con los valores actualizados.

2.3 Aumento del flujograma


El esquema incluido es el ms sencillo posible,
dejando criterio del diseador el incluir todas las
mejoras posibles. Aunque se ha incluido el presente
apartado para comentar tres posibles opciones para
modificar o actualizar el flujograma de cambio de

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones


alarma sobre el flujograma que se muestra
en la Fig 5, tales como:

Inclusin de tiempo de puesta en marcha, es


decir el tiempo que estar activa una salida.
Siendo almacenado en una variable y con las
unidades de minutos (Fig. 6).

Inclusin de mayor nmero de activaciones


o alarmas (Fig.7).

Inclusin de una hora de activacin de


alarma y una hora de desactivacin de
alarma (Fig 8)

Figura 6.- Flujograma


programable.

alarma

con

tiempo

Figura 7.- Flujograma con 4 horas distintas de


activacin de alarmas.
Figura 5.- Flujograma cambio de alarma

Congreso 2010, Pgina 3

submen. Un tiempo estndar y con el que se han


obtenido buenos resultados tras varias pruebas es de 1
segundo, tiempo suficiente para cada pulsacin por
parte del usuario final. Se podra incluir un poco ms
tiempo, aunque un tiempo elevado producira el
efecto de que no se est cambiando de submens.
Tambin se podra haber incluido una combinacin
aleatoria de las teclas pulsadas, pero esto aumentara
la complejidad de la programacin.
Respecto al ajuste de tiempo se ha utilizado la
interrupcin por TIMER 1, con una actualizacin
cada 0,5 segundos.

Figura 8.- Flujograma alarma con hora de inicio y


parada.
Comentar que en los flujogramas representados se
han eliminado algunos pasos que se pueden
considerar obvios, para simplificar y que sea lo ms
claro posible el flujograma. Por ejemplo, se ha
indicado que en el cambio de hora y alarma se
incrementaban las horas y los minutos, pero llegara
un valor en que esos valores cambiarn a 0, es decir
no existir el valor 24 para horas y el valor 60 para
minutos. Esta condicin se incluira como otro rombo
despus de la etapa incremental, antes de la muestra
por pantalla de los valores. Tambin se puede recurrir
a circuitos exteriores; por ejemplo, cuando se activa
una salida un circuito monoestable que mediante un
circuito de adecuacin de potencia active ciertos
dispositivos.

Figura 9.- Esquema de cableado utilizado

3 Pruebas realizadas
El esquema del cableado utilizado sobre el
laboratorio PIC School se muestra en la Fig.9, en
donde se ha utilizado el lenguaje de programacin
CCS sobre el PIC16F87 y se muestra por una pantalla
LCD. Se podra haber elegido uno u otro sistema de
representacin, como la utilizacin de varios display.
Pero es que es un resultado muy cmodo y visual, el
utilizar un lcd que muestre informacin por pantalla
de los pasos que se estn realizando (Fig 10).
Comentar que para evitar que con una pulsacin se
cambie entre varios submens, se ha incluido un
pequeo retardo una vez se haya entrado en el

Figura 10.- Mensajes por pantalla de lcd

Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones


4Conclusiones
Se ha presentado el posible mtodo de control de un
programador horario, apoyado en sus respectivos
flujogramas. Con la particularidad de que como
elementos para modificar la programacin son
relativamente reducidos, dos pulsadores. Los
flujogramas presentan el esquema general, dejando al
diseador del sistema el incluir mayor nmero de
opciones y caractersticas, y con ello el aumento de
cdigo y complejidad del mismo, siendo necesaria el
uso de memorias externas.
Tambin se ha mostrado algunos comentarios sobre
el mtodo utilizado sobre un kit de prototipos, y el
circuito adicional que acompaa a cada pulsador.
El algoritmo presentado puede ser desarrollado con
uno u otro lenguaje de programacin, en
independencia de su complejidad. Adems puede ser
utilizado para diversas aplicaciones en las que se
requiere de un sistema de programacin horario, tales

como: puesta en marcha de electrodomsticos (aire


acondicionado o calefaccin), programadores de
riego, sistemas domticos, programadores de cambio
de turno, etc.

Referencias
[1] Engineering Microsystems. Manual de usuario
y
tutorial
didctico
PIC
School.
www.microcontroladores.com. V1.00 2006.
[2] Garcia Breijo, E. Compilador C CSS y
simulador Proteus para microcontroladores
PIC. Marcombo S.A. 2008.
[3] Palls Areny, R. Y. Microcontroladores:
fundamentos y aplicaciones con PIC.
Marcombo S.A. 2007.
[4] Ruiz Vassallo, F. Temporizadores electrnicos.
Ediciones CEAC. 2000.

Copyright 2010. Miguel Pareja Aparicio: El autor delega a la Organizacin del Segundo Congreso Virtual de
Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este
artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del
Segundo Congreso Virtual de Microcontroladores.

Congreso 2010, Pgina 5

You might also like