Բովանդակություն:

Պահարան ՝ 3 քայլ
Պահարան ՝ 3 քայլ

Video: Պահարան ՝ 3 քայլ

Video: Պահարան ՝ 3 քայլ
Video: Ինչպես պարզել, որ ձեր դիմաց ՉԱՐ մարդ է․ Այս նշանները կօգնեն հասկանալ դա 2024, Նոյեմբեր
Anonim
Անվտանգության արկղ
Անվտանգության արկղ
Անվտանգության արկղ
Անվտանգության արկղ
Անվտանգության արկղ
Անվտանգության արկղ

Սա այն է, ինչ պետք է լինի ձեր վերջնական արդյունքը այն միացնելուց և ծածկագիրը վերբեռնելուց հետո:

Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի:

Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան
Բաներ, որոնք ձեզ պետք կգան

Jumper Wires, 220 OHM ռեզիստոր, 16x2 LCD էկրան, կոճակներ, Servo Motor, Breadboard, Arduino Uno:

Քայլ 2: Կոդ

Jamesեյմս Չինչայ

#ներառում

#ներառել #ներառել

int հասցե = 0; ստատիկ անստորագիր երկար SaveTimer; ստատիկ անստորագիր երկար SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; ստատիկ անստորագիր երկար 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 = ճշմարիտ; համար (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); եթե (! (strrchr ("1123456789", Str [Pos]))) {// վավեր կոդ չէ EEPROMCodeOK = կեղծ; }} Pos ++; 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 (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (մուտքագրման կոճակ, INPUT_PULLUP); pinMode (հստակ կողպեք, INPUT_PULLUP);

lcd. սկսել (16, 2); lcd.setCursor (0, 0); // հաղորդագրությունների տեղադրում lcd.print («Բարև պարոն Birch»); ուշացում (2000); lcd. հստակ (); lcd.setCursor (0, 0); // գաղտնաբառի արագ հուշում lcd.print ("Գաղտնաբառ:");

DisplayTimer = millis () + 200; }

դատարկ շրջան () {

Կողպել ();

Pos = սահմանափակում (Pos, 0, CodeLength); // կարդալ կոճակներ int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (կոճակ Pin4);

int clButtonState = digitalRead (հստակ կողպեք); int enterButtonState = digitalRead (մուտքագրման կոճակ);

lcd.setCursor (9, 0); // եթե ակտիվացնելու պահանջները (buttonState1 == LOW) {Str [Pos] = '1'; Պոզ ++; Str [Pos] = '\ 0'; ուշացում (250); while (digitalRead (buttonPin1) == LOW);

}

այլապես, եթե (buttonState2 == LOW) {Str [Pos] = '2'; Պոզ ++; Str [Pos] = '\ 0'; ուշացում (250); while (digitalRead (buttonPin2) == LOW);

}

այլապես եթե (buttonState3 == LOW) {Str [Pos] = '3'; Պոզ ++; Str [Pos] = '\ 0'; ուշացում (250); while (digitalRead (buttonPin3) == LOW); }

այլապես եթե (buttonState4 == LOW) {Str [Pos] = '4'; Պոզ ++; Str [Pos] = '\ 0'; ուշացում (250); իսկ (digitalRead (buttonPin4) == OWԱOWՐ);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Պոզ ++; Str [Pos] = '\ 0'; ուշացում (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print («Մուտքը տրված է»); ուշացում (2000); lcd. հստակ (); lcd.print ("Unlocked"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (CODE, Str); համար (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 ("Գաղտնաբառ:");

} // ապակողպման կոդը (Unlocked) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {հետաձգում (200); lcd. հստակ (); lcd.print («Կողպված»); ուշացում (2000); lcd. հստակ (); Ապակողպված = կեղծ; SaveTimer = millis () + 30000; }}

ClearCode ();

}

այլապես եթե (clButtonState == LOW) {հետաձգում (500);

while (clearlockbutton == LOW); եթե ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

եթե ((երկար) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");

} }

դատարկ ClearCode () {

Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Գաղտնաբառ:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Բացել () {

myServo.write (150);

} // ծրագրի կողպման կոճակ void Lock () {

myServo.write (50);

}

Քայլ 3:

ամեն ինչ անելուց հետո այն պետք է ունենա այս տեսքը.

Խորհուրդ ենք տալիս: