#include <Keypad.h> // Añadimos la libreria del teclado matricial
const byte ROWS = 4; // Numero de filas
const byte COLS = 4; // Numero de columnas
char keys[ROWS][COLS] = { //Creamos una matriz con los caracteres del teclado
{ '1', '2', '3'},
{ '4', '5', '6'},
{ '7', '8', '9'},
{ ' ', '0',' '},
};
byte rowPins[ROWS] = {9, 8, 7, 6 }; // Pines de Arduino para las filas
byte colPins[COLS] = {5, 4, 3, 2}; // Pines de Arduino para las columnas
char i[4] = {0,0,0,0}; // Declaramos una matriz de cuatro variables
char key = 0; //Variable que contendrá cada uno de lso digitos del teclado
int j = 0; // Con esta variable que el char I acumule los digitos
int cont = 0; //variable que se encarga de contar que tenemos 4 numeros
Keypad tecladomatricial = Keypad (makeKeymap (keys), rowPins, colPins, ROWS, COLS ); // Creamos un objeto teclado
// donde pasamos la matriz de las teclas, pines de las filas, numero de filas, numero de columnas
int led1=10; //verde
int led2=11; //rojo
void setup(){
Serial.begin(13200); //Iniciamos comunicación serie
}
void loop() {
while (cont < 4) { // Mientas que el contador de numeros sea menor a 4
char key = tecladomatricial.getKey(); //La variable guarda las teclas pulsadas
i[j] = key; //Si la variable contiene datos
if (key) { //Si pusamlos una tecla
Serial.print('*'); //Entonces que salga un asterisco en cada digito
j=j+1; // Incrementamos la variable J
cont = cont+1; // incrementamos la variable contados de numeros introducidos
}
}
//CONTRASEÑA USUARIO 1///////////////////////////////////////////////
if(i[0] == '0' && i[1] == '0' && i[2] == '0' && i[3] == '1')
{
Serial.print(" ");
Serial.print("CLAVE ACEPTADA!! ");
Serial.print("bien venido usuario1 ");
analogWrite(A0, 255);
delay(1000);
i[0]=0;
i[1]=0;
i[2]=0;
i[3]=0;
digitalWrite(led1, HIGH);
noTone(A0);
digitalWrite(led1, HIGH);
delay(2000);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}
}