
MATERIALES
- Protoboard
- Arduino UNO
- Paltalla LCD 16x2
- Servomotor 9G
- Jumpers macho macho
- Jumpers Macho hembra
- Tira de Pines
- Potenciometro 10K ohms
- Navaja o Cutter
- Regla
CIRCUITO

CÓDIGO
// CODIGO CREADO POR FELIX SALGUERO - CREACION XD#include <Keypad.h> //Libreria Matriz 4x4#include <LiquidCrystal.h> //Libreria LCD#include <Servo.h> //Libreria ServoServo myservo;//Crear Onjeto de Servomotorchar array1[]=" CREACION XD "; //1er Array de inicio LCDchar array2[]=" Caja Fuerte "; //2do Array de iniciochar c1,c2,c3,c4;//Declaracion caracteres contraseñaint tim = 250; //Variable de tiempoconst byte ROWS = 4; //Numero de Filasconst byte COLS = 4; //Numero de Columnaschar hexaKeys[ROWS][COLS] = {//Definicion de caracteres del Matriz 4x4{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};byte rowPins[ROWS] = {7, 8, 9, 10}; //Pines de coneccion de Filas Matrizbyte colPins[COLS] = {11, 12, 13, 14}; //Pines de coneccion Columnas Matriz//Inicializacion de funcion MAtrizKeypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);// Inicializacion de libreria LCDLiquidCrystal lcd(0, 1, 2, 3, 4, 5); //Pines Conectados del LCDvoid setup(){myservo.attach(6); //Declaracion de conecction de Servomotorlcd.begin(16, 2); //inicializacion LCDmyservo.write(90); //Mover Servo a 90 gradoslcd.clear(); //Borrar Pantalla LCDdelay(1000); //Delay 1 segundolcd.setCursor(0,0); // Posicion de caracter LCD 0,0for (int positionCounter1 = 0; positionCounter1 < 16; positionCounter1++){lcd.print(array1[positionCounter1]); // Impresion del 1er Array de iniciodelay(80); //delay 80 ms}lcd.setCursor(0,1); // Posicion de caracter LCD 0,1lcd.print(array2); //Impresion 2do Array de iniciodelay(1500); //delay 1.5 seg.lcd.clear(); //Borrar Pantalladelay(1000); //Delay 1 seg.lcd.setCursor(0,0); // Posicion de caracter LCD 0,0lcd.print("DIGITE PASSWORD"); //Impresion en Pantallalcd.setCursor(6,1); //Posicion de caracter LCD 6,1}void loop () //inicio de programa principal{char customKey = customKeypad.getKey();//Lectura Matrizwhile (!customKey){customKey = customKeypad.getKey();//Espera de un dato de la Matriz}if(c1==0){c1=customKey; //Guardar 1er Caracter en C1lcd.print(c1); //Impirmir C1 en LCD}else if(c2==0){c2=customKey; //Guardar 2do Caracter en C2lcd.print(c2); //Imprimir C2 en LCD}else if(c3==0){c3=customKey; //Guardar 3er Caracter en C3lcd.print(c3); //Impirmir C3 en LCD}else if(c4==0&&customKey!='*'){c4=customKey; //Guardar 4to Caracter en C4lcd.print(c4); //Imprimir C4 en LCDdelay(1000); //Delay 1 seg}if(c1!=0&&c2!=0&&c3!=0&&c4!=0){ //Funcion que se inicia cuando los 4 Caracteres Son Guardadosif(c1=='1'&&c2=='2'&&c3=='3'&&c4=='4'){ //Comparacion de Caracteres con Contraseña DEFAULT C1=='1'. C2=='2', C3=='3', C4=='4'lcd.setCursor(0,1); //Posicion Caracter LCD 0,1lcd.print(" CORRECTO"); //Impresion CORRECTO en LCDmyservo.write(0); //Mover Servo a 0 Grados para Abrir la Caja Fuerte}else{lcd.setCursor(0,1); //Posicion Caracter LCD 0,1lcd.print(" INCORRECTO"); //Impresion INCORRECTO en LCDdelay(1000); //Delay 1 segundolcd.clear(); //Borrar Pantallalcd.setCursor(0,0); // Posicion Caracter 0,0lcd.print("DIGITE PASSWORD"); //Impresion DIGITE PASSWORD en LCDlcd.setCursor(6,1); //Posicion Caracter 6,1c1=0; //Reinicio de C1c2=0; //Reicicio de C2c3=0; //Reicicio de C3c4=0; //Reicicio de C4}}if(customKey=='#'){ //Comparacion si Caracter == # para Cerrar Cajamyservo.write(90); //Mover servo a 90 gradoslcd.clear(); //Borrar LCDlcd.setCursor(0,0); // Psicion Caracter 0,0lcd.print(" CAJA CERRADA"); // Impresion CAJA CERRADA LCDdelay(1000); //Delay 1 Seglcd.setCursor(0,0); //Posicion Caracter 0,0lcd.print("DIGITE PASSWORD"); //Impresion DIGITE PASSWORD en LCDlcd.setCursor(6,1); //Posicion Caracter 6,1c1=0; //Reinciio C1c2=0; //Reinciio C2c3=0; //Reinciio C3c4=0; //Reinciio C4}if(customKey=='*'){ //Comparacion si Caracter == * para Borrar contraseñalcd.clear(); //Borrar LCDlcd.setCursor(0,0); //Posicion Caracter 0,0lcd.print("DIGITE PASSWORD"); //Impresion DIGITE PASSWORD en LCDlcd.setCursor(6,1); //Posicion Caracter 6,1c1=0; //Reinciio C1c2=0; //Reinciio C2c3=0; //Reinciio C3c4=0; //Reinciio C4}}
Si no pueden encontrar la librería de Keypad aquí se las dejo:
