viernes, 14 de agosto de 2009

Alarma 16F84A

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.

(Pulsar foto para agrandar)

El funcionamiento es simple, cuando enciendes, se pone en marcha el led verde (On) indicando que el PIC está 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 tenemos la alarma 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 apagar la central 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(pulsador 2) la alarma se dispara automáticamente. La alarma estará sonando durante 1 minuto y si no se desconecta volverá a armarse automáticamente.

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 conectado al ULN2003

Bueno aquí les dejo el programa escrito en microcode, compilado con PBP246 y grabado con TE-20 y el programa 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 500ms
    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