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.
}
}
Tags:
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?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por