Circuitos Electrónicos

Secuenciador para luces navideñas

Escrito por: Carlos Díaz

Este circuito permite permite programar una secuencia de hasta 13 luces (o grupos de luces) programando el PIC16F84 desde el ordenador. Para que la programación no sea un problema, he diseñado una plantilla para editar con el bloc de notas de windows.

Activación de luces mediante relés

Repetir el siguiente esquema para activar un relé con cada salida del integrado PIC16F84 (Excepto con la salida Luz13)

Conectar un relé a una salida estándar del PIC

Para la salida Luz13 utilizar este otro esquema:

Conectar un relé a la salida Luz13 (pin 3) del PIC

Cada luz puede estar formada por una o mas bombillas siempre que no se exceda la corriente máxima que soporte el relé.

Este tipo de adornos navideños se suelen poner en el exterior pero el circuito deberá ir bien aislado de las inclemencias del tiempo, ya sea en una caja apropiada o en el interior de la casa y sacando los cables hacia afuera.

La programación

Lo primero que necesitas es el archivo con el programa que deberá ejecutar el PIC16F84, dicho programa incluye la secuencia que desees implementar y es un archivo con extensión .asm que puedes abrir y editar con el bloc de notas de windows. Podrás cambiar el programa del PIC tantas veces como quieras.

Descarga la plantilla de programación que aparece a continuación, y ábrela con el bloc de notas de Windows.

Descargar plantilla de programación:    lucesn.asm

Vete bajando hasta donde aparece el mensaje "A PARTIR DE AQUI ESCRIBE TU SECUENCIA". El mensaje se muestra de la siguiente manera:

;***************************************************************************

;******* A PARTIR DE AQUI ESCRIBE TU SECUENCIA *****************************

;---------------------------------------------------------------------------

Después hay un espacio en blanco y luego otro mensaje que dice "FIN DE LA SECUENCIA" y se muestra de la siguiente manera:

;--------------------------------------------------------------------------

;*************** FIN DE LA SECUENCIA **************************************

;**************************************************************************

Esos dos mensajes marcan el inicio y el fin del lugar donde puedes escribir la secuencia. Esta secuencia se repetirá constantemente. Es muy importante que no cambies ni borres nada que este antes o después del espacio reservado porque si no el programa no funcionará.

Hay que escribir cada palabra en una línea. Podrás escribir todas las lineas que desees (hay un límite de memoria de 1K, pero no creo que llegues a llenarlo). A continuación se muestranlas palabras que puedes usar y la función de cada una de ellas:

ON1
ON2
....
ON13

Enciende la luz 1
Enciende la luz 2
....
Enciende la luz 13

ONTODO

Enciende todas las luces

OFF1
OFF2
....
OFF13

Apaga la luz 1
Apaga la luz 2
....
Apaga la luz 13

OFFTODO

Apaga todas las luces

ESPERA
ESPERA1
ESPERA2
ESPERA3
ESPERA4

Hace una pausa de medio segundo (Aprox)
Hace una pausa de un segundo (Aprox)
Hace una pausa de dos segundos (Aprox)
Hace una pausa de tres segundos (Aprox)
Hace una pausa de cuatro segundos (Aprox)

INVIERTE

Las luces que estén apagadas en ese momento las enciende, y las que esten encendidas las apaga

Ejemplos:

Imagina que tenemos letras luminosas formadas cada una por un varias bombillas, como los adornos que se ponen en navidad por las calles, y que en el nuestro pone "FELIZ NAVIDAD". Cada luz de nuestro programa se corresponde con cada una de las letras: la F es la luz1, la E la luz 2, la L la 3.... así hasta la última que será la luz 12.

Ejemplo 1:

Queremos hacer la siguiente secuencia: (las letras en amarillo se encuentran encendidas)

FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD
FELIZ NAVIDAD

Al llegar a este punto queremos que las letras se queden encendidas durante 4 segundos (por ejemplo) y luego que se vuelva a repetir la secuencia (apagndose todas las luces de nuevo y volvindose a encender una por una).

En el espacio reservado para la secuencia tendras que escribir lo siguiente:

;***************************************************************************

;******* A PARTIR DE AQUI ESCRIBE TU SECUENCIA *****************************

;---------------------------------------------------------------------------

ON1

ESPERA

ON2

ESPERA

ON3

ESPERA

ON4

ESPERA

ON5

ESPERA

ON6

ESPERA

ON7

ESPERA

ON8

ESPERA

ON9

ESPERA

ON10

ESPERA

ON11

ESPERA

ON12

ESPERA4

OFFTODO

ESPERA

;--------------------------------------------------------------------------

;*************** FIN DE LA SECUENCIA **************************************

;**************************************************************************

Una vez hecho esto, guarda el archivo con extensión .asm y sigue las instrucciones para programar el PIC haciendo click en el siguiente enlace: Programar el PIC16F84

Casos especiales (mas ejemplos):

Ejemplo 2:

En un momento determinado de la secuencia, las luces se encuentran de esta forma: FELIZ NAVIDAD y se quiere encender las luces 1, 3 y 6 y apagar la 2 y la 4, todo a la vez, en el mismo movimiento, para conseguir el siguiente efecto:

FELIZ NAVIDAD
FELIZ NAVIDAD

para hacerlo deberás escribir lo siguiente:

...[Secuencia anterior]

ESPERA

ON1

ON3

ON6

OFF2

OFF4

ESPERA

[Continúa secuencia]...

El pic trabaja a tal velocidad que si escribes varias órdenes seguidas sin decirle que espere entre una y otra dará la sensación de que las hace a la vez.

Ejemplo 3:

En un momento de la secuencia se encuentran todas las luces encendidas, y se quiere apagar todas las luces menos la luz1. No hace falta que escribas OFF2 OFF3 OFF4...... OFF12 OFF13 puedes hacer lo siguiente:

...[Secuencia anterior]

ESPERA

OFFTODO

ON1

ESPERA

[Continúa secuencia]...

Ejemplo 4:

Se quiere conseguir una secuencia que haga este efecto continuamente:

FELIZ NAVIDAD
FELIZ NAVIDAD

Para hacerlo deberás escribir lo siguiente:

;***************************************************************************

;******* A PARTIR DE AQUI ESCRIBE TU SECUENCIA *****************************

;---------------------------------------------------------------------------

OFFTODO

ON1

ON3

ON5

ON7

ON9

ON11

ESPERA

INVIERTE

ESPERA

;--------------------------------------------------------------------------

;*************** FIN DE LA SECUENCIA **************************************

;**************************************************************************

Información adicional