viernes, 14 de agosto de 2009

Alarma 16F84 A



Este es el circuito de mi alarma con el pic 16F84A , y aunque en principio es bastante simple espero ir añadiendo y mejorando poco a poco. (dale a la foto para agrandar)

El funcionamiento es simple, cuando enciendes, se pone en marcha el led verde (on) indicando que el PIC esta en funcionamiento y entra un contador de 10 segundos antes de que la alarma quede totalmente armada durante los cuales el led rojo parpadeara hasta quedarse encendido.
ya esta armada, ahora con los 2 pulsadores simulando las puertas del coche, en el pulsador 1 he incluido un retardo de 20 segundos para que de tiempo a apagarla antes de que comience a sonar la sirena, si no se desconecta en esos 20 segundos entrara el relé haciendo sonar el claxon a intervalos de 2 segundos si y 2 no. Si se entra por la puerta del copiloto (pulsador 2) la alarma se dispara automaticamente. La alarma estara sonando durante 1 minuto y si no se desconecta volverá a armarse automaticamente. El programa esta hecho en PBP y no es para nada
complicado. Saludos!!!
PD. en la imagen no lo he puesto pero el rele es alimentado por un 7812 conecado al ULN2003

Bueno aqui les dejo el programa escrito en microcode, compilado con PBP246 y grabado con TE-20 e ic-prog 1.06b. Con Cristal de 4Mhz.

ledon var portb.0 ;nombre al puerto B0
ledarm var portb.1 ;nombre al puerto B1
p1 var portb.2 ;nombre al puerto B2
p2 var portb.3 ;nombre al puerto B3
rele var porta.0 ;nombre al puerto A0
x var byte ;nombre a la variable X
trisb=001100
Porta=0
Portb=0

Pmarcha: ;Puesta en marcha
high ledon
for x=0 TO 20 ; repite cinco veces
high ledarm ; enciende led
pause 500 ;espera 500mls
low ledarm ; apaga led utilice comando low que cumple la misma
;funcion que toggle que cambia la configuracion
;de un bit es decir si esta en ALTO LO PASA A BAJO
;y viceversa
pause 500
NEXT ; siguiente hasta que se repite 5 veces

goto siguiente

siguiente:
pause 500
high ledarm
if p1=0 then alarma1 ;si pulsador1 a 0, va a alarma1
if p2=0 then alarma2 ;si pulsador2 a 0, va a alarma2
goto siguiente

alarma1: ;Esta parte da el retardo para apagar la
for x=0 to 40 ;alarma, en este caso son 20seg, en el
high ledon ;caso en el que no se apague pasaria
high ledarm ;a la siguiente etiqueta alarma2
pause 250
low ledon
low ledarm
pause 250
next
goto alarma2

alarma2: ;si no hemos apagado la alarma durante
for x=0 to 15 ;la etiqueta alarma1, o se a activado
high ledarm ;el segundo pulsador (p2) se activa el
high ledon ;rele conectado a una vocina o a un
high rele ;indicador luminoso a intervaluos de
pause 2000 ;2seg encendiendose tambien todos
low ledarm ;led,s del circuito, para saber el
low ledon ;tiempo que va a estar sonando calculamos
low rele ; (pause + pause)* X / 1000
pause 2000 ;donde X es igual al número de repeticiones
next ;FOR.. TO..
goto pmarcha

END ;fin del programa


PeYuTrOn

1 comentario :

  1. hola, me podrias mandar un esquema de todo el circuito porque no me doy cuenta como esta realizada la conexion. muchas gracias. Sebastian

    ResponderEliminar