Სარჩევი:

სეიფი: 3 ნაბიჯი
სეიფი: 3 ნაბიჯი

ვიდეო: სეიფი: 3 ნაბიჯი

ვიდეო: სეიფი: 3 ნაბიჯი
ვიდეო: ტიფლისი I სეზონი 1, სერია 3 2024, ივლისი
Anonim
Უსაფრთხო ყუთი
Უსაფრთხო ყუთი
Უსაფრთხო ყუთი
Უსაფრთხო ყუთი
Უსაფრთხო ყუთი
Უსაფრთხო ყუთი

ეს არის ის, რაც უნდა იყოს თქვენი საბოლოო შედეგი მისი შედგენისა და კოდის ატვირთვის შემდეგ.

ნაბიჯი 1: ის, რაც დაგჭირდებათ

რამ დაგჭირდებათ
რამ დაგჭირდებათ
ნივთები რაც დაგჭირდებათ
ნივთები რაც დაგჭირდებათ
ნივთები რაც დაგჭირდებათ
ნივთები რაც დაგჭირდებათ
ნივთები რაც დაგჭირდებათ
ნივთები რაც დაგჭირდებათ

Jumper Wires, 220 OHM რეზისტორი, 16x2 LCD ეკრანი, Push ღილაკები, Servo Motor, Breadboard, Arduino Uno.

ნაბიჯი 2: კოდი

ჯეიმს ჩინჩაი

#ჩართეთ

#ჩართეთ #ჩართეთ

int მისამართი = 0; სტატიკური ხელმოუწერელი გრძელი SaveTimer; სტატიკური ხელმოუწერელი ხანგრძლივი SaveDelay = (30 * 1000);

char კოდი [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool გახსნილია; სტატიკური ხელმოუწერელი გრძელი DisplayTimer; სტატიკური ხელმოუწერელი ხანგრძლივი DisplayDelay = 200;

LiquidCrystal LCD (12, 11, 9, 8, 7, 6);

int ღილაკი pin1 = 2; int ღილაკი pin2 = 3; int ღილაკი Pin3 = 4; int ღილაკი Pin4 = 5;

int enterbutton = 10; int clearlockbutton = 13;

Servo myServo; // კონსტრუქციის პროგრამის დაყენება void setup () {

myServo.attach (A1);

int EEPROMCodeOK = ჭეშმარიტი; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); თუ (! (strrchr ("1123456789", Str [Pos]))) {// არ არის მოქმედი კოდი EEPROMCodeOK = ყალბი; }} პოზი ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // შეყვანის pinMode (buttonPin1, INPUT_PULLUP) დაყენება; pinMode (ღილაკი Pin2, INPUT_PULLUP); pinMode (ღილაკი Pin3, INPUT_PULLUP); pinMode (ღილაკი Pin4, INPUT_PULLUP);

pinMode (შესვლის ღილაკი, INPUT_PULLUP); pinMode (გასაღების ღილაკი, INPUT_PULLUP);

lcd. დასაწყისი (16, 2); lcd.setCursor (0, 0); // შეტყობინებების გაგზავნა lcd.print ("გამარჯობა ბატონო არყო"); დაგვიანება (2000); lcd. წმინდა (); lcd.setCursor (0, 0); // პაროლის მოთხოვნის დაყენება lcd.print ("პაროლი:");

DisplayTimer = millis () + 200; }

ბათილი მარყუჟი () {

ჩაკეტვა ();

Pos = შეზღუდვა (Pos, 0, CodeLength); // ღილაკების წაკითხვა int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (ღილაკი Pin2); int buttonState3 = digitalRead (ღილაკი Pin3); int buttonState4 = digitalRead (ღილაკი Pin4);

int clButtonState = digitalRead (გასაღების ღილაკი); int enterButtonState = digitalRead (შესვლის ღილაკი);

lcd.setCursor (9, 0); // მოთხოვნები გააქტიურებისათვის if (buttonState1 == LOW) {Str [Pos] = '1'; პოზი ++; Str [Pos] = '\ 0'; დაგვიანება (250); ხოლო (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; პოზი ++; Str [Pos] = '\ 0'; დაგვიანება (250); ხოლო (digitalRead (buttonPin2) == დაბალი);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; პოზი ++; Str [Pos] = '\ 0'; დაგვიანება (250); ხოლო (digitalRead (buttonPin3) == დაბალი); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; პოზი ++; Str [Pos] = '\ 0'; დაგვიანება (250); ხოლო (digitalRead (buttonPin4) == დაბალი);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; პოზი ++; Str [Pos] = '\ 0'; დაგვიანება (250); ხოლო (digitalRead (buttonPin1) == დაბალი); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("დაშვებული დაშვება"); დაგვიანება (2000); lcd. წმინდა (); lcd.print ("გახსნილია"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (CODE, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("შენახვის კოდი:"); lcd.setCursor (0, 1); lcd.print (Str);

განბლოკილი = ჭეშმარიტი; }

სხვა {

lcd. წმინდა (); lcd.print ("წვდომა აკრძალულია."); დაგვიანება (2000); lcd. წმინდა (); lcd.print ("პაროლი:");

} // კოდის განბლოკვა (განბლოკილია) {განბლოკვა (); if (digitalRead (clearlockbutton) == LOW) {დაგვიანებით (200); lcd. წმინდა (); lcd.print ("ჩაკეტილი"); დაგვიანება (2000); lcd. წმინდა (); განბლოკილი = ყალბი; SaveTimer = millis () + 30000; }}

ClearCode ();

}

სხვა შემთხვევაში თუ (clButtonState == LOW) {დაგვიანებით (500);

ხოლო (clearlockbutton == LOW); if ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");

} }

ბათილია ClearCode () {

პოზი = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("პაროლი:"); lcd.setCursor (0, 1); lcd.print ("");

}

ბათილად გახსნა () {

myServo.write (150);

} // პროგრამის დაბლოკვის ღილაკი void Lock () {

myServo.write (50);

}

ნაბიჯი 3:

როდესაც ყველაფერი კეთდება, ასე უნდა გამოიყურებოდეს.

გირჩევთ: