Obsah:

Safe Box: 3 kroky
Safe Box: 3 kroky

Video: Safe Box: 3 kroky

Video: Safe Box: 3 kroky
Video: НОЧЬ В СТРАШНОМ ДОМЕ С ДЕМОНОМ / НЕ СТОИЛО СЮДА ПРИХОДИТЬ 2024, Červenec
Anonim
Trezor
Trezor
Trezor
Trezor
Trezor
Trezor

To by měl být váš konečný výsledek po sestavení a nahrání kódu.

Krok 1: Věci, které budete potřebovat

Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat
Věci, které budete potřebovat

Propojovací vodiče, odpor 220 OHM, LCD obrazovka 16x2, tlačítka, servomotor, Breadboard, Arduino Uno.

Krok 2: Kód

James chinchay

#zahrnout

#include #include

int adresa = 0; statický nepodepsaný dlouhý SaveTimer; statický nepodepsaný dlouhý SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char Délka kódu = 4; int Pos = 0; bool Odemčeno; statický nepodepsaný dlouhý DisplayTimer; statický nepodepsaný dlouhý DisplayDelay = 200;

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

int tlačítkoPin1 = 2; int tlačítko Pin2 = 3; int tlačítko Pin3 = 4; int tlačítko Pin4 = 5;

int enterbutton = 10; int clearlockbutton = 13;

Servo myServo; // nastavení programu konstrukce neplatné nastavení () {

myServo.attach (A1);

int EEPROMCodeOK = true; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// není platný kód EEPROMCodeOK = false; }} Pozice ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // nastavení vstupů pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (Enterbutton, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // nastavení messaged lcd.print ("Dobrý den pane Birch"); zpoždění (2000); lcd.clear (); lcd.setCursor (0, 0); // nastavení výzvy k zadání hesla lcd.print ("Heslo:");

DisplayTimer = milis () + 200; }

prázdná smyčka () {

Zámek();

Pos = omezení (Pos, 0, CodeLength); // tlačítka pro čtení 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); // požadavky na aktivaci if (buttonState1 == LOW) {Str [Pos] = '1'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin2) == LOW);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin3) == LOW); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin4) == LOW);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pozice ++; Str [Pos] = '\ 0'; zpoždění (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print („přístup povolen“); zpoždění (2000); lcd.clear (); lcd.print ("Odemčeno"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (KÓD, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Ukládací kód:"); lcd.setCursor (0, 1); lcd.print (Str);

Unlocked = true; }

jinak {

lcd.clear (); lcd.print ("Přístup odepřen."); zpoždění (2000); lcd.clear (); lcd.print ("Heslo:");

} // odblokování kódu při (Odemčeno) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Zamčeno"); zpoždění (2000); lcd.clear (); Unlocked = false; SaveTimer = milis () + 30 000; }}

ClearCode ();

}

else if (clButtonState == LOW) {zpoždění (500);

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

}

ClearCode ();

}

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

} }

neplatné ClearCode () {

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

}

zrušit Odemknout () {

myServo.write (150);

} // tlačítko zamykání programu neplatné Lock () {

myServo.write (50);

}

Krok 3:

po dokončení všeho by to mělo vypadat takto.

Doporučuje: