Escrito originalmente por Xsion en 17 de Marzo del 2006
Bueno, al final ya tengo la solucion a lo que quiero.
Voy a poner todo lo necesario y todos los pasos, más o menos es lo mismo que se utiliza con las luces de navidad. Esta todo sacado y copiado de una página de Electronica:
-------------------------------------------------------------------------------------
CONFIGURACION E INSTALACIÓN DE LAS LUCES
Con este circuito podrás programar una secuencia con un total de hasta 13 luces de 220V con solo programar el PIC16F84 en tu ordenador, pero no te asustes por la programación porque te lo voy a poner muy fácil. El circuito que he diseñado es el siguiente:

El oscilador del PIC16F84 aqui empleado es de tipo RC (esta información te hará falta a la hora de cargar el programa en el PIC)
El conjunto de la derecha (relé, diodo, transistor y resistencia) se repite tantas veces como luces quieras poner y se conecta cada uno a un pin diferente del PIC. El relé es el que enciende y apaga cada luz.
Cada luz puede estar formada por una o mas bombillas siempre que no se exceda la corriente máxima que soporta 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.
Hablemos de la programación
Podrás cambiar el programa del PIC tantas veces como quieras.
La programación se efectuará desde tu ordenador y utilizarás este archivo:
luzesn.asm si ya sabes programar no te hará falta.
Para abrirlo usa el bloc de notas de windows, es un archivo de texto. Cuando lo abras no te asustes ya que no te va a hacer falta saber programar. Vete bajando y, casi al final, encontrarás una zona con unos asteriscos y un mensaje de esta manera:
;***************************************************************************
;********A PARTIR DE AQUI ESCRIBE TU SECUENCIA*********
;---------------------------------------------------------------------------
Después un espacio en blanco y luego otro mensaje que dice:
;--------------------------------------------------------------------------
;****************FIN DE LA SECUENCIA*****************************
;**************************************************************************
Pues bién, como ya habrás adivinado tendrás que escribir lo que quieres que hagan las luces en este espacio en blanco. Es muy importante que no cambies ni borres nada que este antes o después de tu espacio para escribir porque si no el programa no funcionará.
La secuencia que escribas en este espacio se repetirá una y otra vez de principio a fin sin parar.
Escribirás una palabra en cada línea y podrás escribir todas las lineas que quieras, hay un límite de memoria pero no creo que llegues a llenarlo. A continuación te muestro las palabras que puedes usar y lo que hacen cada una:
ON1 Enciende la luz 1
ON2 Enciende la luz 2
....
ON13 Enciende la luz 13
....
ONTODO Enciende todas las luces
OFF1 Apaga la luz 1
OFF2 Apaga la luz 2
....
OFF13 Apaga la luz 13
....
OFFTODO Apaga todas las luces
ESPERA Hace una pausa de medio segundo (Aprox)
ESPERA1 Hace una pausa de un segundo (Aprox)
ESPERA2 Hace una pausa de dos segundos (Aprox)
ESPERA3 Hace una pausa de tres segundos (Aprox)
ESPERA4 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
Y como no hay nada mejor que un ejemplo para explicarse te pondré uno y verás lo facil que es crear tu propia secuencia:
Imagina que tenemos unas letras luminosas formadas cada una por un montón de 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 corresponderá con cada una de las letras: la F es la luz1, la E la luz 2, la L la 3.... así hasta la D última que será la 12. Imagina que queremos hacer la siguiente secuencia: (las letras en negro son las que están apagadas)
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 (apagándose todas las luces de nuevo y volviéndose a encender una por una).
En el espacio reservado para la secuencia tendrías que escribir lo siguiente:
OFFTODO
ESPERA
ON1
ESPERA
ON2
ESPERA
ON3
ESPERA
ON4
ESPERA
ON5
ESPERA
ON6
ESPERA
ON7
ESPERA
ON8
ESPERA
ON9
ESPERA
ON10
ESPERA
ON11
ESPERA
ON12
ESPERA4
Y ya está, ya has programado el pic para que haga lo que querias, ahora guardas el archivo con extensión .asm y sigues estas instrucciones para grabar el programa en el pic: Más abajo pongo explicado como Programar el PIC16F84
El pic trabaja tan rápido que aunque tu le pongas una palabra detrás de otra te parecerá que lo hace todo a la vez
* Supón que en un momento determinado tienes todas las luces encendidas y quieres apagar todas menos una, la 1 por ejemplo. No hace falta que escribas OFF2 OFF3 OFF4...... OFF12 OFF13 puedes hacer lo siguiente:
...
[secuencia antes]
ESPERA
OFFTODO
ON1
ESPERA
[Continua la secuencia]
...
PROGRAMACIÓN DE LAS LUCES (PIC)
El pic16F84 es un microcontrolador de dimensiones muy reducidas, consta solamente de 18 pines y además se puede programar fácilmente todas las veces que quieras con un sencillo circuito conectado al puerto serie de tu PC.
El programa se escribe en el bloc de notas de Windows con extensión .ASM, después hay que ensamblarlo para obtener el fichero con extensión .hex que es el que hay que transferir al PIC. En esta página podrás conseguir los archivos .hex listos para ser transferidos al PIC.
Si quieres saber algo mas sobre el pic16F84 (patillaje, set de instrucciones, sintaxis de programación...) puedes consultar su hoja de características (en inglés) que esta disponible
aqui.
Para poder grabar un programa en un PIC tendrás que seguir los siguientes pasos:
1. En primer lugar tendrás que montar el circuito programador, aquí tienes el esquema

Si dispones de una insoladora este
archivo de autocad 14 te será muy útil.
Lista de componentes:
Programador PIC16F84.txt
2. Una vez tengas el circuito lo conectas al puerto serie de tu PC mediante el conector DB9.
3. Si ya tienes el archivo .hex listo para ser transferido al pic vete directamente al punto 4 . Si sigues leyendo esto es que tienes el archivo .asm y quieres convertirlo en .hex. Para ello te tienes que bajar este programa ensamblador:
MPASM cuando lo abras te saldrá una ventana como esta:

Configura todas las opciones como las ves en la imagen. Para abrir el archivo .asm que quieres convertir pulsa "BROUSE" y elige el archivo. A continuación pulsa "ASSEMBLE". Si no te salen errores se te grabará en tu disco duro el archivo .hex
4. Para poder grabar el archivo .hex al PIC necesitas bajarte el programa
Ic-Prog(265 Kb) no necesita instalación, lo descomprimes y ya esta.
5. Para configurarlo: en el menú Ajustes=>Tipo de hardware asegurate de que tienes seleccionado el puerto en el que tienes tu programador (com1 o com2 normalmente).
En la pantalla principal, arriba a la derecha tienes una ventanita para elegir el tipo de PIC que quieres programar, eliges el pic16F84.
A la derecha, donde pone configuración tienes que elegir el tipo de oscilador que vas a usar, normalmente suele ser un cristal de cuarzo (XT). Pero también suele ser muy común usar una resistencia y un condensador (RC).
Justo debajo tienes que poner si se usa WDT=WACHTDOG, PWRT=POWERRESET Y CP=CODE PROTECT. Si no sabes de lo que te hablo no verifiques ninguna de las tres casillas.
Ya tienes configurado el programa, el aspecto es el siguiente:

6. Insertas el PIC que quieres grabar en el zócalo de 18 pines (en el de 8 no entra

con la muesca hacia arriba.
7. Abres el programa con extensión .hex con el menú Archivo=>Abrir. y le das a Comando=>Programar todo. (tambien puedes pulsar el botoncito ese donde sale un chip y un rayo verde.
8. Después de programar se verifica si se ha grabado correctamente, si no te da error ya tienes el PIC programado, lo puedes sacar del zócalo (con cuidado) y ponerlo en tu circuito.
-------------------------------------------------------------------------------------
Bueno esto es todo,que ya es bastante creo, ahora con paciencia y tiempo me ire haciendo poco a poco los circuitos y ya comento como queda todo...
Espero que os sirva todo esto.
Saludos.