Inhaltsverzeichnis:

Safe - Gunook
Safe - Gunook

Video: Safe - Gunook

Video: Safe - Gunook
Video: Обзор пистолетного кейса от MTM Case Gard - HANDGUN CASE #807 2024, Juli
Anonim
Safe
Safe
Safe
Safe
Safe
Safe

So sollte Ihr endgültiges Ergebnis aussehen, nachdem Sie es zusammengestellt und den Code hochgeladen haben.

Schritt 1: Dinge, die Sie brauchen

Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen
Dinge, die Sie brauchen

Überbrückungsdrähte, 220 OHM Widerstand, 16x2 LCD-Bildschirm, Drucktasten, Servomotor, Steckbrett, Arduino Uno.

Schritt 2: Code

James Chinchay

#enthalten

#einschließen #einschließen

int-Adresse = 0; statischer unsigned langer SaveTimer; statisch unsigned long SaveDelay = (30 * 1000);

Zeichen CODE[10] = "1234E"; charStr[10]; char CodeLänge = 4; int Pos = 0; bool Entsperrt; statisch unsigned long DisplayTimer; statisch unsigned long DisplayDelay = 200;

Flüssigkristall-LCD (12, 11, 9, 8, 7, 6);

int buttonPin1 = 2; int buttonPin2 = 3; int buttonPin3 = 4; int buttonPin4 = 5;

int Eingabetaste = 10; int clearlockbutton = 13;

Servo myServo; // Einrichten des Konstruktprogramms void setup () {

myServo.attach(A1);

int EEPROMCodeOK = wahr; for (Pos = 0; Pos <= (CodeLength); Pos++) { Str[Pos] = EEPROM.read(Pos); if (!(strrchr("1123456789", Str[Pos]))) { // kein gültiger Code EEPROMCodeOK = false; } } Pos++; Str[Pos] = EEPROM.read(Pos); if (Str[CodeLength + 1] != 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) { Str[CodeLength + 2] = '\0'; strncpy(CODE, Str, CodeLänge + 1); } ClearCode(); // Einrichten der Eingänge PinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (Eingabetaste, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);

lcd.begin(16, 2); lcd.setCursor(0, 0); // Einrichten von Nachrichten lcd.print ("Hallo Herr Birch"); Verzögerung (2000); lcd.clear(); lcd.setCursor(0, 0); // Eingabeaufforderung für Passwort einrichten lcd.print("Password:");

DisplayTimer = Millis() + 200; }

Leere Schleife () {

Sperren();

Pos = einschränken(Pos, 0, CodeLänge); // Schaltflächen lesen Int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);

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

lcd.setCursor(9, 0); //Anforderungen zum Aktivieren wenn (buttonState1 == LOW) { Str[Pos] = '1'; Pos++; Str[Pos] = '\0'; Verzögerung (250); während (digitalRead (buttonPin1) == LOW);

}

sonst if (buttonState2 == LOW) { Str[Pos] = '2'; Pos++; Str[Pos] = '\0'; Verzögerung (250); während (digitalRead (buttonPin2) == LOW);

}

sonst if (buttonState3 == LOW) { Str[Pos] = '3'; Pos++; Str[Pos] = '\0'; Verzögerung (250); während (digitalRead (buttonPin3) == LOW); }

sonst if (buttonState4 == LOW) { Str[Pos] = '4'; Pos++; Str[Pos] = '\0'; Verzögerung (250); während (digitalRead (buttonPin4) == LOW);

aufrechtzuerhalten. Sonst if (enterButtonState == LOW) { Str[Pos] = 'E'; Pos++; Str[Pos] = '\0'; Verzögerung (250); während (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) { Entsperrt = wahr; lcd.setCursor(0, 0); lcd.print("Zugriff gewährt"); Verzögerung (2000); lcd.clear(); lcd.print("entsperrt"); } 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("Speichercode:"); lcd.setCursor(0, 1); lcd.print(Str);

Entsperrt = wahr; }

anders {

lcd.clear(); lcd.print("Zugriff verweigert."); Verzögerung (2000); lcd.clear(); lcd.print("Passwort:");

} // Code entsperren während (entsperrt) { Entsperren (); if (digitalRead (clearlockbutton) == LOW) { Verzögerung (200); lcd.clear(); lcd.print("Gesperrt"); Verzögerung (2000); lcd.clear(); Entsperrt = falsch; SaveTimer = millis() + 30000; } }

ClearCode();

}

sonst if (clButtonState == LOW) { Verzögerung (500);

während (clearlockbutton == LOW); if ((millis() - SaveTimer) > 4500) {

}

ClearCode();

}

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

} }

Leere ClearCode() {

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

}

void Unlock() {

myServo.write(150);

} // Schaltfläche zum Sperren des Programms void Lock () {

myServo.write(50);

}

Schritt 3:

Wenn alles fertig ist, sollte es so aussehen.