CÓDIGO DE PROGRAMA
int p [6]; // Array para almacenar la contraseña int c [6]; // Array para almacenar el código de entrada int n; int a = 0; int i = 0; int bloqueo = 3; int r1 = 6; int r2 = 7; int r3 = 8; int R4 = 9; int c1 = 10; c2 int = 11; int c3 = 12; c4 int = 13; int colm1; int colm2; int colm3; int colm4;
void setup () { pinMode (R1, salida); pinMode (R2, salida); pinMode (R3, salida); pinMode (R4, salida); pinMode (c1, INPUT); pinMode (c2, INPUT); pinMode (c3, INPUT); pinMode (c4, INPUT); pinMode (bloqueo, OUTPUT); Serial.begin (9600); // Establece la velocidad de transmisión a 9600 digitalWrite (c1, HIGH); digitalWrite (c2, HIGH); digitalWrite (c3, HIGH); digitalWrite (c4, HIGH); digitalWrite (bloqueo, LOW); p [0] = 1; // Establece 1er dígito de la contraseña p [1] = 2; // Establece segundo dígito de la contraseña p [2] = 3; // Establece 3er dígito de la contraseña p [3] = 4; // Establece cuarto dígito de la contraseña p [4] = 5; // Establece quinto dígito de la contraseña p [5] = 6; // Establece sexto dígito de la contraseña } void loop () { digitalWrite (R1, LOW); digitalWrite (r2, HIGH); digitalWrite (R3, HIGH); digitalWrite (R4, HIGH); colm1 = digitalRead (C1); colm2 = digitalRead (c2); colm3 = digitalRead (c3); colm4 = digitalRead (c4); si (colm1 == LOW) {N = 1; a = 1; Serial.println ( "1"); de retardo (200);} más { si (colm2 == LOW) {N = 2; a = 1; Serial.println ( "2"); de retardo (200);} más { si (colm3 == LOW) {Serial.println ( "3"); n = 3; a = 1; de retardo (200);} más { si (colm4 == LOW) {Serial.println ( "bloqueado"); digitalWrite (bloqueo, LOW); //cabellos i = 0; de retardo (200);} }}}
digitalWrite (R1, HIGH); digitalWrite (r2, LOW); digitalWrite (R3, HIGH); digitalWrite (R4, HIGH); colm1 = digitalRead (C1); colm2 = digitalRead (c2); colm3 = digitalRead (c3); colm4 = digitalRead (c4); si (colm1 == LOW) {Serial.println ( "4"); n = 4; a = 1; de retardo (200);} más { si (colm2 == LOW) {Serial.println ( "5"); n = 5; a = 1; de retardo (200);} más { si (colm3 == LOW) {Serial.println ( "6"); n = 6; a = 1; de retardo (200);} más { si (colm4 == LOW) { si (c [0] == p [0] & c [1] == p [1] & c [2] == p [2] & c [3] == p [3] & c [4] == p [ 4] & c [5] == p [5]) {DigitalWrite (bloqueo, HIGH); // desbloqueos Serial.println ( "ABIERTO"); c [5] = 9;} // corrompe el código en serie c más {Serial.println ( "Contraseña no válida");} de retardo (200);} }}} si (a == 1) // comprobar si se pulsa una tecla numérica { c [i] = n; // Guarda el dígito actual presiona a la matriz c i = i + 1; a = 0;} }DESCARGA EL CÓDIGO DÁNDOME CLICEl sistema se puede conectar a la PC a través del USB y las teclas pulsadas se pueden ver a través de la ventana del monitor de serie del Arduino. La captura de pantalla de la ventana del monitor de serie de este proyecto se muestra en la figura siguiente.