This is an old revision of the document!


Password Security Lock Circuit Using 4×4 Keypad and Arduino

Boțoghină David-Ioan

Introducere

Acest proiect are ca scop construirea unei incuietori care pentru a fi dezactivata, va cere introducerea unei parole de 6 biti.

Descriere generală

This project was meant to limit the access to certain impportant things. For example, at the output could be connected a lamp or a lock. I connected a fan because it is summer and during this period, being able to cool yourself is as immportant as having light or keep the door of a cabinet locked.

Hardware Design

Lista de piese:

  • 1x Arduino Uno
  • 1x Breadboard
  • 2x LEDs
  • 4×4 keypad
  • 1x LCD I2C
  • Some Wires
  • A fan

Electrical Schematic:

Software Design

#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <Keypad.h>

#define Password_Length 8

int signalPin = 12; int relay_pin = 10;

char Data[Password_Length]; char Master[Password_Length] = “123A456”; byte data_count = 0, master_count = 0; bool Pass_is_good; char customKey;

const byte ROWS = 4; const byte COLS = 4;

char hexaKeys[ROWS][COLS] = {

{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}

};

byte rowPins[ROWS] = {9, 8, 7, 6}; byte colPins[COLS] = {5, 4, 3, 2};

Keypad customKeypad = Keypad(makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup(){

lcd.init(); 
lcd.backlight();
pinMode(signalPin, OUTPUT);
pinMode(13, OUTPUT);
pinMode(relay_pin, OUTPUT);

}

void loop(){

lcd.setCursor(0,0);
lcd.print("Enter Password:");
customKey = customKeypad.getKey();
if (customKey){
  Data[data_count] = customKey; 
  lcd.setCursor(data_count,1); 
  lcd.print(Data[data_count]); 
  data_count++; 
  }
if(data_count == Password_Length-1){
  lcd.clear();
  if(!strcmp(Data, Master)){
    lcd.print("Correct");
    digitalWrite(signalPin, HIGH); 
    digitalWrite(13, HIGH);
    delay(3000);
    digitalWrite(signalPin, LOW);
    digitalWrite(13, HIGH);
    delay(3000);
    digitalWrite(13, LOW);
    }
  else{
    lcd.print("Incorrect");
    digitalWrite(10, HIGH);
    delay(1000);
    digitalWrite(10, LOW);
    }
    lcd.clear();
  clearData();  
}

}

void clearData(){

while(data_count !=0){
  Data[data_count--] = 0; 
}
return;

}

How it works: The user needs to introduce a code, using the keyboard (the password). In the beginnig, on LCD is displayed the message “Enter Password”, the password being composed by seven characters. If the introduced password is incorrect, then the message “Incorrect” is displayed on LCD and the green LED from the relay will turn off for one second. If the introduced password is correct, then on the display is displayed the message “Correct”, and the fan will turn on.

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2022/cstan/3.1654104880.txt.gz · Last modified: 2022/06/01 20:34 by david.botoghina
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0