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.