5.7 PROYECTOS CON TECLADOS
5.7.2 Cerradura electrónica con clave en memoria FLASH
Este es un proyecto aplicable en seguridad, se trata de una cerradura electrónica en la cual al ingresar los 4 dígitos correctamente en su teclado, el PIC energiza un relé (puerta), pero si la clave es incorrecta el PIC emite 3 pitos indicando que ingresó una clave errónea y por supuesto que el relé no se conectará, para hacerlo más interesante se le ha agregado sonido a las teclas en el momento de ser pulsadas esto sirve para que el usuario sepa que el PIC reconoció la pulsación, también tiene un programa antirrebote de tecla para asegurarse que ingrese una sola tecla a la vez.
El único inconveniente es que la clave no puede ser cambiada, ya que el número de la combinación (1,2,3,4) se lo grabó en el programa del PIC por lo que reside en la memoria FLASH, más adelante en los próximos proyectos la clave podrá ser cambiada a gusto del usuario, en tal caso este proyecto sirve para poder identificar y diferenciar las 3 memorias que dispone el PIC.
MATERIALES.
-1 teclado matricial hexadecimal como el de la figura 5.7.2.3 -6 resistencia de 4,7 KΩ
-1 resistencia de 330 Ω -2 transistores 2N3904
-1 chicharra activa ( las que suenan directamente al alimentarles con 12 voltios) -1 relé de 12 voltios de 5 patitas
-1 LED rojo de 5 mm.
--- Microcontroladores PIC --- Figura 5.7.2.1. Diagrama de conexión de un teclado hexadecimal con un relé un led y una chicharra, para hacer una cerradura electrónica.
cmcon=7 ;cambiar a modo digital todo el puerto A NUMERO VAR BYTE ;variable número para almacenar la tecla pulsada R VAR BYTE ;variable r para hacer repeticiones
BIP VAR PORTA.0 ;el portA.1 Bip (conectar chicharra activa) LED VAR PORTA.1 ;el portA.2 se llamará led
DOOR VAR PORTA.2 ;el portA.3 conectar relé para la cerradura
A VAR PORTB.0 ;nombres para los pines de las filas B VAR PORTB.1
C VAR PORTB.2 D VAR PORTB.3
UNO VAR PORTB.4 ;nombres para los pines de las columnas DOS VAR PORTB.5
TRES VAR PORTB.6 CUATRO VAR PORTB.7
INICIANDO: ;programa del led para saber si está funcionando
HIGH LED : HIGH BIP
PAUSE 500
LOW LED : LOW BIP
GOTO TECLAUNO ;ir a comparar claves BARRIDO:
IF UNO = 0 THEN NUMERO =1 :RETURN ;tecla retorna cargada con 1 IF DOS = 0 THEN NUMERO =2 :RETURN ;tecla retorna cargada con 2 IF TRES = 0 THEN NUMERO =3 : RETURN ;tecla retorna cargada con 3 IF CUATRO = 0 THEN NUMERO =10: RETURN ;tecla retorna cargada con 10 HIGH A
LOW B ;sensar la fila B
IF UNO = 0 THEN NUMERO =4 : RETURN IF DOS = 0 THEN NUMERO =5 : RETURN IF TRES = 0 THEN NUMERO =6 : RETURN IF CUATRO = 0 THEN NUMERO =11: RETURN HIGH B
LOW C ;sensar la fila C IF UNO = 0 THEN NUMERO =7 : RETURN
IF DOS = 0 THEN NUMERO =8 : RETURN IF TRES = 0 THEN NUMERO =9 : RETURN IF CUATRO = 0 THEN NUMERO =12: RETURN HIGH C
LOW D ;sensar la fila D IF UNO = 0 THEN NUMERO =14: RETURN
IF DOS = 0 THEN NUMERO =0 : RETURN IF TRES = 0 THEN NUMERO =15: RETURN IF CUATRO = 0 THEN NUMERO =13: RETURN HIGH D
PAUSE 10 GOTO BARRIDO
; ***************** programa de antirrebote de teclas ************* PTECLA:
HIGH LED : HIGH BIP ;genera sonido cada que se pulsa tecla PAUSE 100 ;duración 100 milisegundos
LOW LED : LOW BIP ;apagar sonido y led
ESPACIO: ;programa de antirrebote de teclas IF UNO = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
IF DOS = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio IF TRES = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio
IF CUATRO = 0 THEN ESPACIO ;si la tecla sigue pulsada ir a espacio PAUSE 25
RETURN ;retorna si se suelta las teclas ; ***************** comparación de claves ************************ TECLAUNO:
GOSUB BARRIDO ;ir a barrido y retornar con un valor
GOSUB PTECLA ;envía a un programa antirrebote para soltar tecla IF NUMERO = 1 THEN TECLADOS ;si el número es igual a 1 ir teclados
GOTO FALSO ;caso contrario ir a lazo falso
TECLADOS:
GOSUB BARRIDO: GOSUB PTECLA ;ir a barrido y retornar con un valor
--- Microcontroladores PIC --- Figura 5.7.2.2. cerradura_FLASH.pbp Programa para hacer una cerradura electrónica
codificada (1,2,3,4) en la que la clave no se puede cambiar.
NOTA: Para evitar fallas en su funcionamiento debido a la activación del relé, asegúrese de
colocar un capacitor de 0,1 uF paralelo a la alimentación del PIC.
IF NUMERO = 2 THEN TECLATRES ;si el número es igual a 2 ir teclatres GOTO FALSO1 ;caso contrario ir a lazo falso
TECLATRES:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF NUMERO = 3 THEN TECLACUATRO ;si el número es igual a 3 ir teclacuatro GOTO FALSO2 ;caso contrario ir a lazo falso
TECLACUATRO:
GOSUB BARRIDO :GOSUB PTECLA ;ir a barrido y retornar con un valor
IF NUMERO = 4 THEN OPENGE ;si el número es igual a 4 conectar relé GOTO FALSO3 ;caso contrario ir a lazo falso
OPENGE:
FOR R = 1 TO 2 ;2 pitos indica clave correcta PAUSE 100
HIGH LED : HIGH BIP PAUSE 100
LOW LED : LOW BIP NEXT
HIGH DOOR ; se conecta el relé (abrir puerta) PAUSE 1000 ; esperar 1 segundo
LOW DOOR ; desconectar relé
GOTO TECLAUNO ;ir nuevamente a comparar las claves
; ***************** lazos falsos teclas erroneas ***************** FALSO:
GOSUB BARRIDO :GOSUB PTECLA ;estas teclas no comparan ninguna FALSO1: ;clave sólo espera que termine de GOSUB BARRIDO :GOSUB PTECLA ;pulsar las 4 teclas y no hace nada FALSO2:
GOSUB BARRIDO :GOSUB PTECLA FALSO3:
FOR R = 1 TO 3 ;3 pitos indica clave incorrecta PAUSE 100
HIGH LED : HIGH BIP PAUSE 100
LOW LED : LOW BIP NEXT
GOTO TECLAUNO ;ir nuevamente a comparar las claves
Figura 5.7.2.3. Fotografía de teclados matriciales hexadecimales comunes en las tiendas electrónicas.
5.7.3. CERRADURA ELECTRÓNICA CON CLAVE EN MEMORIA RAM Y CAMBIO