Tartalomjegyzék:

Széf: 3 lépés
Széf: 3 lépés

Videó: Széf: 3 lépés

Videó: Széf: 3 lépés
Videó: ▶️ Третья жизнь Дарьи Кирилловны 3 и 4 серия - Мелодрама | Фильмы и сериалы - Русские мелодрамы 2024, November
Anonim
Széf
Széf
Széf
Széf
Széf
Széf

Ennek kell lennie a végső eredménynek, miután összeállította és feltöltötte a kódot.

1. lépés: Amire szüksége lesz

Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz
Dolgok, amire szüksége lesz

Jumper vezetékek, 220 OHM ellenállás, 16x2 LCD képernyő, nyomógombok, szervomotor, kenyértábla, Arduino Uno.

2. lépés: Kód

James chinchay

#befoglalni

#befoglalni #befoglalni

int cím = 0; statikus előjel nélküli hosszú SaveTimer; statikus előjel nélküli hosszú SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; statikus, előjel nélküli hosszú DisplayTimer; statikus előjel nélküli hosszú DisplayDelay = 200;

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

int gombPin1 = 2; int gombPin2 = 3; int gombPin3 = 4; int gombPin4 = 5;

int enterbutton = 10; int clearlockbutton = 13;

Szervo myServo; // a konstruáló program beállítása void setup () {

myServo.attach (A1);

int EEPROMCodeOK = igaz; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos])))) {// nem érvényes kód EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = hamis; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // a bemenetek beállítása pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (enterbutt, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);

lcd. kezdet (16, 2); lcd.setCursor (0, 0); // messaged lcd.print beállítása ("Hello Mr Birch"); késleltetés (2000); lcd.clear (); lcd.setCursor (0, 0); // jelszó beállítása lcd.print ("Jelszó:");

DisplayTimer = millis () + 200; }

void loop () {

Zár();

Pos = kényszer (Pos, 0, CodeLength); // olvasógombok int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);

int clButtonState = digitalRead (clearlockbutton); int enterButtonState = digitalRead (enterbutton);

lcd.setCursor (9, 0); // aktiválási követelmények, ha (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; késleltetés (250); while (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; késleltetés (250); while (digitalRead (buttonPin2) == LOW);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; késleltetés (250); while (digitalRead (buttonPin3) == LOW); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; késleltetés (250); while (digitalRead (buttonPin4) == LOW);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; késleltetés (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Feloldva = igaz; lcd.setCursor (0, 0); lcd.print ("Hozzáférés biztosított"); késleltetés (2000); lcd.clear (); lcd.print ("Feloldva"); } 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 ("Mentési kód:"); lcd.setCursor (0, 1); lcd.print (Str);

Feloldva = igaz; }

más {

lcd.clear (); lcd.print ("Hozzáférés megtagadva."); késleltetés (2000); lcd.clear (); lcd.print ("Jelszó:");

} // kód feloldása közben (Feloldva) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Zárolt"); késleltetés (2000); lcd.clear (); Feloldva = hamis; SaveTimer = millis () + 30000; }}

ClearCode ();

}

else if (clButtonState == LOW) {delay (500);

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

}

ClearCode ();

}

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

} }

void ClearCode () {

Poz = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Jelszó:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Unlock () {

myServo.write (150);

} // programzáró gomb void Lock () {

myServo.write (50);

}

3. lépés:

ha mindent megtett, annak így kell kinéznie.

Ajánlott: