“CREACION DE UNA CERRADURA ELECTRONICA”
Enviado por Stella • 16 de Mayo de 2018 • 1.128 Palabras (5 Páginas) • 417 Visitas
...
DISEÑO DE LA CERRADURA DIGITAL PARA CAJA DE SEGURIDAD
[pic 3]
FUNCION DE CADA COMPONENTE DE LA CAJA FUERTE
- Pantalla LCD:
Con ayuda de esta pantalla, el usuario podrá ver el estado en que se encuentra el sistema, y así poder realizar la acción adecuada para el manejo de esta.
- Bisagras:
Las bisagras son un componente esencial en nuestra caja, y nos permiten abrir y cerrar la caja, manteniendo alineados los componentes correctamente.
- Servomotor:
El servomotor servirá como cerrojo, el cual asegurara la cerradura, efectuando un movimiento de 90° para cerrar o abrir la cerradura, según sea el caso.
- Cerradura:
La cerradura, es el elemento que asegurará la caja fuerte, además en esta se colocaran los elementos que se utilizaran para manejar este elemento con nuestro circuito digital.
- Sensor de presencia:
Con ayuda de este sensor podrá detectarse una acción de forcejeo en la cerradura, lo cual nos permitirá darle mayor seguridad.
- Teclado matricial:
El teclado matricial nos permitirá introducir la contraseña, y las señales propuestas en nuestro sistema para poder, introducir, aceptar y cambiar la contraseña.
- Leds:
Servirán para indicar con luz, el estado en el que se encuentra el sistema, ya sea Activo o Warning.
- Alarma:
Servirán para indicar con sonido, el estado de Warning en el sistema, para llamar la atención del usuario.
---------------------------------------------------------------
CODIGO EN ARDUINO
#include
#include
#include
#include
#include
//FUNCIONES A UTILIZAR
int comp (char v[]);
void warning();
void newcontrasena();
//DECLARACION DEL TECLADO 4X4
const byte filas= 4;
const byte columnas= 4;
char keys[filas][columnas]= {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte filaspins[filas]= {9,8,7,6};
byte columnaspins[columnas]= {5,4,3,2};
Keypad teclado= Keypad(makeKeymap(keys), filaspins, columnaspins, filas, columnas);
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5); //DECLARAMOS UN OBJETO DE LA CLASE LIQUIDCRYSTAL Y LE MANDAMOS LOS PINES A UTILIZAR
Servo cerradura; //OBJETO DE LA CLASE SERVO
char pass1[]= {'0','0','0','0'}; //CONTRASEÑA POR DEFAULT
char pass2[5]; //CADENA Y AUXILIAR PARA FUNCIONES
char aux;
volatile int f;
void setup() { //INICIALIZAMOS EL LCD, Y DECLARAMOS PINES DE SALIDAS PARA LED, ALARMA Y SERVOMOTRO
lcd.begin(16, 2);
cerradura.attach(11);
pinMode(12, OUTPUT); //led war
pinMode(10, OUTPUT); //alarma
pinMode(13, OUTPUT); //led cerrado
for (int i=0; i
EEPROM.write(i, pass1[i]); //GUARDAMOS LA CONTRASEÑA EN LA EEPROM DEL ARDRUINO
}
}
void loop() {
int i=0, j=0, a=0, k=0; //INICIALIZAMOS VARIABLES
f=0;
cerradura.write(90);
lcd.setCursor(4,0);
lcd.print("¡CERRADO!"); //PONEMOS LA CERRADURA EN EL ESTADO CERRADO
aux= teclado.getKey();
if (aux != NO_KEY) { //CONDICION PARA COMENZAR A INTRODUCIR POSIBLE CONTRASEÑA
//noInterrupts();
switch(aux) {
case 'A': //ESTADO PARA ADMITIR EL INGRESO DE LOS DIGITOS
//interrupts()
while (f
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ingrese password");
lcd.setCursor(6,1);
for (j=0; j
pass2[j]= teclado.waitForKey(); //LEEMOS LOS DIGITOS INTRODUCIDOS
lcd.print("*");
delay(100);
}
a = comp(pass2);
switch(a) { //ESTADO PARA EL INGRESO DE UNA CONTRASEÑA CORRECTA
...