Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

4.4. Cofre eletrônico


Projeto Cofre eletrônico

O projeto utiliza Display LCD 16x2 (+ resistores de 200Ω), Keypad 4x4 e Arduino Uno R3 para abrir um cofre.

// Programa: Projeto Cofre eletrônico 
// Autor: André Luis Marques da Silveira
// Data: 14/04/2020

#include "LiquidCrystal.h"
#include "Keypad.h"

// Define as teclas do keypad
char teclas[4][4]= {
                              {'1', '2', '3', 'A'}, 
                              {'4', '5', '6', 'B'}, 
                              {'7', '8', '9', 'C'},
                              {'*', '0', '#', 'D'}
			   };

// Define endereçando das conexões dos pinos arduino ao Keypad
byte linhaPinos[4] = {12,11,10,9};  // Linha 0 até 4
byte colunaPinos[4]= {8,7,6,5};     // Colunas 0 até 4

// Inicializa instancia de classe Keypad
Keypad keypad = Keypad(makeKeymap(teclas), linhaPinos, colunaPinos, 4, 4);

// Inicializa instancia de classe do LiquidCrystal
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

// Inteiros que vão armazenar a senha
int a=0;
int b=0;
int c=0;
int d=0;

//Definição da senha
int S1=2;
int S2=2;
int S3=2;
int S4=2;

int var=0;       // Contador de teclas digitadas
int vezes=0;     // Contadir de tentativas

void setup() {
  lcd.begin(2,16);
  lcd.setCursor(0,0);
  lcd.clear();
}

void loop() {

  char key = keypad.getKey();
  if (key){
      lcd.setCursor(6+var,1);
      lcd.print(key);
      delay(100);
    
      lcd.setCursor(6+var,1);
      lcd.print("*"); 
      key=key-48;  //converção de char em inteiros
      var++;       

      // armazena os 4 digitos da senha 
      switch(var){
        case 1:
            a=key; 
            break;
        case 2:
            b=key;  
            break;
        case 3:
            c=key;  
            break;
        case 4:
            d=key; 
            testa_senha();
            break; 
      }
  } else {
          lcd.setCursor(2,0);
          lcd.print("Insira senha");
          delay(100);
          }
}

void testa_senha(){  

  if (a==S1 && b==S2 && c==S3 && d==S4){
     lcd.setCursor(2,1);
     lcd.print("Cofre aberto");
     delay(1000);
    
     lcd.clear();
     lcd.setCursor(2,0);
     lcd.print("Insira senha");
    
     vezes=0;
     var=0;
  } else{
        lcd.setCursor(1,1);
        lcd.print("Senha invalida");
        delay(1000);
        lcd.clear();
    
        vezes++;
        var=0;
        }
  
  // --- tentativas ---//

  if (vezes > 0){
     lcd.clear();
     lcd.setCursor(2,0);
     lcd.print("Insira senha");    
     lcd.setCursor(2,1);
     lcd.print(vezes); 
     lcd.setCursor(4,1);
     lcd.print("tentativa");
     delay(1000);
    
     lcd.clear();
     lcd.setCursor(2,0);
     lcd.print("Insira senha");
  }

}

 

[Voltar]

[Avançar]