//Programa Matricial3 //Se enciende un LED cuando se ha digitado el codigo correcto #include char contrasena[]="1234"; //aquí escribimos la contraseña de 4 dígitos char codigo[4]; //Cadena donde se guardaran los caracteres de las teclas presionadas int cont=0; //variable que se incrementara al presionar las teclas const byte ROWS = 4; //Numero de filas del teclado que se esta usando const byte COLS = 4; //Numero de columnas del teclado que se esta usando char hexaKeys[ROWS][COLS] = //Aquí pondremos la disposición de los caracteres //tal cual están en nuestro teclado { {'7','8','9','/'}, {'4','5','6','*'}, {'1','2','3','-'}, {'*','0','=','+'} }; byte rowPins[ROWS] = {7, 6, 5, 4}; //Seleccionamos los pines en el arduino //donde iran conectadas las filas byte colPins[COLS] = {3, 2, 9, 8}; //Seleccionamos los pines en el arduino //donde iran conectadas las columnas Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //inicializa //el teclado void setup() { pinMode(13, OUTPUT); //Pin 13 como salida pinMode(12, OUTPUT); //Pin 12 como salida digitalWrite(12,HIGH); Serial.begin(9600); //inicializar puerto serie } void loop() { char customKey = customKeypad.getKey(); //se guarda en la variable customKey //el caracter de la tecla presionada if (customKey != NO_KEY) //se evalúa si se presionó una tecla { codigo[cont]=customKey; //se guarda caracter por caracter en el arreglo codigo[] Serial.println(codigo[cont]); //se imprime en el puerto serie la tecla presionada cont=cont+1; //incrementamos la variable cont if(cont==4) //si ya fueron presionadas 4 teclas se evalúa si la contraseña es correcta { if(codigo[0]==contrasena[0] & codigo[1]==contrasena[1] & codigo[2]==contrasena[2] & codigo[3]==contrasena[3]) { digitalWrite(13,!digitalRead(13)); //si la contraseña fué correcta se enciende o se apaga el led del pin13 //Aqui usa el recurso de NEGAR estado de PIN13. //Asi para encender el LED de PIN 13 se debe ingresar la //contraseña, lo mismo para apagarlo. LED VERDE digitalWrite(12,!digitalRead(12));//Cambia estado LED rojo de espera. Serial.println("Codigo Correcto Ingresado"); } cont=0; //resetear a 0 la variable cont } } }