domingo, 15 de marzo de 2015

Acceso por contraseña con el Keypad




El siguiente tutorial consiste en la contraseña falsa y verdadera
cuando es falsa, persiste en el pin rojo y no pasa nada
cuando es verdadera, pasa al pin verde.

Utilizaremos la contraseña "1503" pero ustedes pueden usar la que ustedes quieran, solo tienen que cambiar el valor










#include <Keypad.h>

char* secretCode = "1503";
int position = 0;

const byte rows = 4; //four rows
const byte cols = 4; //three columns
char keys[rows][cols] = {
  {'1','2','3', 'A'},
  {'4','5','6', 'B'},
  {'7','8','9', 'C'},
  {'#','0','*', 'D'}
};
byte rowPins[rows] = {10, 9, 8, 7}; //connect to the row pinouts of the keypad
byte colPins[cols] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad 5, 4, 3, 2
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, rows, cols );

char tecla;
int numero;

int redPin = 13;
int greenPin = 12;



void setup(){
//  Serial.begin(9600);  
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  setLocked(true);
}
void loop(){
   char key = keypad.getKey();
  if (key == '*' || key == '#') {
    position = 0;
    setLocked(true);
  }
 
  if (key == secretCode[position]) {
    position++;
  }
 
  if (position == 6) {
    setLocked(false);
  }
  delay(50);
  
}
void setLocked(int locked){
  if (locked) {
    digitalWrite(redPin, HIGH);
    digitalWrite(greenPin, LOW);
  }
  else {
    digitalWrite(redPin, LOW);
    digitalWrite(greenPin, HIGH);
  }
}

4 comentarios:

  1. disculpa para que estarias usando la variable int de position en el programa???

    ResponderEliminar
  2. hola disculpa me puedas ayudar como puedo resetear o cambiar el codico desde el teclado matricial

    ResponderEliminar
  3. Buenas, este programa parece tener defectos. Al meter la clave si vas dandole a uno correcto uno incorrecto y asi sucesivamente hasta poner los 4 digitos de la llave,tambien te loa da por buena.Es decir,si la clave es "1503" y metemos "1 6324 5 245 0 147 3", el sistema te da luz verde

    ResponderEliminar
  4. como puedo poner 3 contraseñas?

    ResponderEliminar