This is an old revision of the document!
Boțoghină David-Ioan
Acest proiect are ca scop construirea unei incuietori care pentru a fi dezactivata, va cere introducerea unei parole de 6 biti.
#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: <br> 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. <br> 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. <br> If the introduced password is correct, then on the display is displayed the message “Correct”, and the fan will turn on.