O vídeo mostra e explica o hardware e software de um sistema de identificação de senha construído com um Arduino, alguns botões, leds e resistores. Abaixo você pode ver o Sketch utilizado no vídeo.
O Sketch
#define leitura A0
#define ledVerde 9
#define ledAzul 11
#define ledVerm 13
//Escolhendo a senha
int digitos = 6; //Numeros de digitos da senha
int senha[6] = {1,2,3,4,5,6}; //Colocar novamente o numero dentro dos [] e escrever a senha nos {}
int senha2[6]; //Colocar novamente o numero dentro dos []
int tempoSafe = 5; //Tempo (em minutos) de bloqueio
int botao, valor, resultado = 0, erros = 0, x, z;
void setup() {
pinMode(9, OUTPUT);
pinMode(11, OUTPUT);
pinMode(13, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(9600);
}
void loop() {
//Leitura do que for digitado
for(x = 0; x < digitos; x++){
senha2[x] = botoes();
if(senha2[x] == 10){ x = x - 1; }
else{
Serial.print(senha2[x]);
if(x < digitos - 1){ Serial.print(" - "); }
delay(500);
}
digitalWrite(ledAzul, LOW);
}
//Comparacao com a senha escolhida
for(x = 0; x < digitos; x++){
if(senha[x] == senha2[x]){ resultado = resultado + 1; }
}
//Resultado final
if(resultado == digitos){
Serial.println();
Serial.println("Acertou");
Serial.println();
erros = 0;
digitalWrite(ledVerde, HIGH);
delay(1000);
digitalWrite(ledVerde, LOW);
}
else{
Serial.println();
Serial.println("Errou");
Serial.println();
erros = erros + 1;
digitalWrite(ledVerm, HIGH);
delay(1000);
digitalWrite(ledVerm, LOW);
}
if(erros == 3){ seguranca(); }
resultado = 0;
}
//Funcao de leitura dos digitos
int botoes() {
digitalWrite(11, HIGH);
valor = analogRead(leitura);
if(valor > 99 && valor < 105){ botao = 1; }
else if(valor > 109 && valor < 115){ botao = 2; }
else if(valor > 124 && valor < 130){ botao = 3; }
else if(valor > 140 && valor < 148){ botao = 4; }
else if(valor > 165 && valor < 172){ botao = 5; }
else if(valor > 200 && valor < 205){ botao = 6; }
else if(valor > 250 && valor < 255){ botao = 7; }
else if(valor > 335 && valor < 340){ botao = 8; }
else if(valor > 507 && valor < 512){ botao = 9; }
else if(valor > 900){ botao = 0; }
else if(valor == 0){ botao = 10; }
return botao;
}
//Bloqueio em caso de muitas tentativas
void seguranca() {
Serial.print("Bloqueado por ");
Serial.print(tempoSafe);
if(tempoSafe == 1){ Serial.println(" minuto"); }
if(tempoSafe > 1){ Serial.println(" minutos"); }
Serial.println();
for(z = 0; z < tempoSafe*60000; z++){
digitalWrite(ledVerm, HIGH);
delay(500);
digitalWrite(ledVerm, LOW);
delay(500);
}
erros = 0;
}
O vídeo foi feito por um aluno meu do Colégio Villa Lobos (Amparo - SP).
Comentar
amigo gostaria de saber se nesse código da escala de resistor tem como acrecentar mais de uma senha se da porfavor me de as instruções
LEGAL, mas seria legal, liga-lo a uma fechadura eletrônica com um teclado.
Leonardo parabéns, muito bom seu trabalho... peguei-o como exemplo e tentei incrementar a senha através de um controle remoto... onde em vez de clicar os botoes, ele compararia os botoes do controle remoto... fiz de tudo mas não consegui montar.
Muito Show!
Mais uma daquelas idéias que você fica se perguntando porque nunca tinha pensado.
Obrigado por compartilhar.
Man, projeto Show, eu fiz aqui, mas tem só uma resalva...
"if(tempoSafe == 1){ Serial.println(" minuto"); }
if(tempoSafe > 1){ Serial.println(" minutos"); }
Serial.println();
for(z = 0; z < tempoSafe*60000; z++){
digitalWrite(ledVerm, HIGH);
delay(500);
digitalWrite(ledVerm, LOW);
delay(500);"
" for(z = 0; z < tempoSafe*60000; z++){" Nesta parte o numero (60000) tá muito elevado, e o teclado bloquearia por 83,3 horas, então no meu eu troquei o 60000 por 18 que bloqueia por 1:30 mim, visto que o numero é multiplo de 5 ou seja 18*5=90 segundos.
Mas eu queria realmente agradecer pelo projeto que eu tava precisando mesmo de um desses e nem sabia por onde começar, parabéns e boa noite! :)
Cara perfeito gostei muito.. Excelente trabalho.
Muito bom, assisti o vídeo e assim que tiver a oportunidade vou testar. Você ta de parabéns.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)