Com uma senha configurada via pela programação e 5 teclas, você poderá acionar um LED para indicar que a senha foi digitada corretamente.
Dificuldade:
Montagem:
Programação:
Material Utilizado:
A Montagem
O Sketch
//Quantidade de dígitos para a senha
#define DIGITOS 4
//LED que irá indicar que a senha foi bem sucedida
#define ledSenhaOk 8
// Declara os botões
#define b1 3
#define b2 4
#define b3 5
#define b4 6
#define b5 7
char senha[DIGITOS];
//Cria um vetor com a quantidade de dígitos da senha
char senhaCorreta[DIGITOS]={
'4','2','4','2'}; //Senha que o usuário irá ter que digitar ("4242")
void setup()
{
Serial.begin(9600); //Inicia comunicação serial
pinMode(b1, INPUT); //
pinMode(b2, INPUT); //
pinMode(b3, INPUT); //
pinMode(b4, INPUT); //
pinMode(b5, INPUT); //
pinMode(ledSenhaOk, OUTPUT); //Led que Indica Senha correta
digitalWrite(ledSenhaOk,LOW);
}
void loop()
{
Serial.print("Por Favor, digite a senha: "); //Imprime a mensagem para a digitação da senha
leteclado(); //Chama a função para pegar a senha ("quatros digitos, nesse exemplo")
int ok=0; //Inicia uma variável para a validação do dígitos da senha
for (int j=0; j<DIGITOS; j++) //Para todos os dígitos da senha...
{
if(senha[j] == senhaCorreta[j]) //... compare com sua respectiva posição no vetor...
{ //... da senha desejada.
ok++; //Válida o dígito da posição
}
}
Serial.println();
if(ok == DIGITOS) //Se todos os dígitos da senha digitada forem validados...
{
Serial.println("Senha Correta!"); //...imprime a mensagem, "Senha Correta!"
Serial.println();
digitalWrite(ledSenhaOk,HIGH);
while (1);
}
else
{
Serial.println("Senha Incorreta!");//Se algum dos dígitos da senha digitada estiver incorreto...
Serial.println(); //...imprime a mensagem, "Senha Incorreta!"
digitalWrite(ledSenhaOk,LOW);
delay(500);
digitalWrite(ledSenhaOk,HIGH);
delay(500);
digitalWrite(ledSenhaOk,LOW);
}
}
// Função que faz a leitura das teclas do teclado
void leteclado()
{
int i = 0; //Variável de contagem
while(i<DIGITOS) //Enquanto a quantidade de dígitos da senha não for alcançado
{
if (digitalRead(b1)== HIGH){
senha[i] = '1';
//Serial.print("1");
i++;
while (digitalRead (b1) ==HIGH)
{
}
}
else if (digitalRead(b2)== HIGH){
senha[i] = '2';
//Serial.print("2");
i++;
while (digitalRead (b2) ==HIGH)
{
}
}
else if (digitalRead(b3)== HIGH){
senha[i] = '3';
//Serial.print("3");
i++;
while (digitalRead (b3) ==HIGH)
{
}
}
else if (digitalRead(b4)== HIGH){
senha[i] = '4';
//Serial.print(senha[i]);
i++;
while (digitalRead (b4) ==HIGH)
{
}
}
else if (digitalRead(b5)== HIGH){
senha[i] = '5';
//Serial.print("5");
i++;
while (digitalRead (b5) ==HIGH)
{
}
}
}
}