Como criar varias senhas para habilitar varias portas com teclado membrana.

EX:

quero digitar a senha XXXXXX para habilitar a porta 3

quero digitar a senha YYYYY para habilitar a porta 4

quero digitar a senha ZZZZZZZ para habilitar a porta 5

No programa que vou disponibilizar eu consigo acessar apenas uma porta.

Não consegui adicinar mais senhas para habilitar mais portas.

#include <Password.h> // Biblioteca utilizada para controle de senha.

#include <Keypad.h> // Biblioteca para controle do teclado de matrizes.

 

// Senha utilizada para acionamento do rele.

Password password = Password( "1234" ); 

 

const byte ROWS = 4;  // Quatro linhas por...

const byte COLS = 4;  // Quatro colunas.

 

// Define o Keypad (mapa do circuito do teclado).

char keys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

 

// Conecta o teclado matricial em linha 0, linha 1, linha 2, linha 3 e linha 4...

//dos pinos do arduino.

byte rowPins[ROWS] = {9,8,7,6};

 

// Conecta o teclado matricial em coluna 0, coluna 1, coluna 2, coluna 3 e... 

//coluna 4 do arduino.

byte colPins[COLS] = {12,11,10,5};

 

// Cria um objeto Keypad.

Keypad keypad=Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);

 

void setup(){

  pinMode(4, OUTPUT);  // Define pino 4 como saída.

  Serial.begin(9600);  // Inicializa Serial Monitor.

  keypad.addEventListener(keypadEvent);

  keypad.setDebounceTime(250);

}

 

void loop(){

  keypad.getKey();

}

 

void keypadEvent(KeypadEvent eKey){

  switch (keypad.getState()){  // Condição switch...

    case PRESSED:  // Se precionado algum botão...

   Serial.print("Digitado: ");  // Aparecera no Serial Monitor, Digitado: "X".

   Serial.println(eKey);  // Armazena numero digitado na variável eKey.

   switch (eKey){

   // Pressionando "C" confirma se a senha foi digitado corretamente.

     case 'C': guessPassword(); 

     break;

      default:

         password.append(eKey);

  }

}

}

 

void guessPassword(){

// Informa no Serial Monitor "Verificando, aguarde...".

     Serial.print("Verificando, aguarde... "); 

     if (password.evaluate()){

         // Informa no Serial Monitor "Acionando rele...".

        Serial.println("Acionando rele... ");

        digitalWrite(4, HIGH);   // Ativa o rele.

        delay(2000);  // Rele fica acionado por 2 segundos e depois...

        digitalWrite(4, LOW);   // Desativa o rele.

        password.reset(); // Apaga a senha.

             }else{

                  digitalWrite(4, LOW);

             Serial.println("Senha Invalida !");

                  password.reset(); // Apaga a senha.

     }

}

 

Exibições: 1261

Responder esta

Respostas a este tópico

Anexos

Ainda não funcionou

A outra versão que eu fiz:

http://pastebin.com/Vf1DMD2Y

abraço

Amigão, obrigado pela ajuda. Seu código funcionou perfeitamente.

olá Eduardo, aproveitando o código que você postou, como que eu faria uma variável com duas senhas?

1° senha >>> senha de acesso

2° senha >>> senha de emergência ou segurança

tentei adaptar aproveitando o seu código.. e quando eu digito a senha de emergência ele nega o acesso, eu só consigo acesso após ter ocorrido uma "senha inválida" antes...

a senha de acesso eu consigo normalmente, o problema é a senha de emergência...

poderia me ajudar?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço