Go Down

Topic: Caja fuerte con contraseña cambiable. (Read 995 times) previous topic - next topic

Matias24

Hola, tengo este proyecto en mi mente y me esta comiendo la cabeza. :smiley-mad:
La cuestion es que yo quiero poner una contraseña con mi teclado matriz 4x4, y que la memoria EEPROM de arduino la guarde, luego que yo pueda modificar dicha contraseña, ya que cada ves que necesito modificarla debo conetar arduino a mi pc y cambiar el codigo.
Les dejo mi codigo.

Code: [Select]

#include <Keypad.h> //llama a la librería Keypad.h
 
char contrasena[]="2222";  //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
{
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
 
byte rowPins[ROWS] = {10, 9, 8, 7}; //Seleccionamos los pines en el arduino donde iran conectadas las filas
byte colPins[COLS] = {6, 5, 4, 3}; //Seleccionamos los pines en el arduino donde iran conectadas las filas
 
Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); //inicializa el teclado

int pinTono=8;

void setup()
{
  pinMode(13, OUTPUT); //Pin 13 como salida

  pinMode(8,OUTPUT);

}
 
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[]
        //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])
      {
     
      tone(12,1300,1000000);
      digitalWrite(13,HIGH);
   
     
     
      }
      else
      tone(12,1000,500);
      delay(1000);
     
     
      cont=0;  //resetear a 0 la variable cont
    }
  }
}


Materiales que dispongo:
Zumbador.
Arduino UNO R3.
Led azul.
Teclado matriz 4x4.

Alguien me podria dar una ayuda para este proyecto por favor?.
Gracias

surbyte

Tu problema ya fue respondido varias veces.
Aca el primero

surbyte

Tu problema ya fue respondido varias veces.
Aca el primero

Aca el 2do con almacenamiento de variables en EEPROM

Jopapa

Lo que tienes que hacer es guardar la clave en el EEPROM del Arduino y cargarla en la variable en el Set Up.
Mirate y practica los ejemplos del Arduino sobre ese tema de la EEPROM.

Hecho esto, una vez que teclees la clave, puedes usar otra para llamar a una función que te permita reescribir la antigua.
Jopapa
www.jopapa.me

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy