Innholdsfortegnelse:

Safe Box: 3 trinn
Safe Box: 3 trinn

Video: Safe Box: 3 trinn

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

Dette er hva det endelige resultatet ditt bør være etter å ha satt det sammen og lastet opp koden.

Trinn 1: Ting du trenger

Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger
Ting du trenger

Jumper Wires, 220 OHM motstand, 16x2 LCD -skjerm, trykknapper, servomotor, brødbrett, Arduino Uno.

Trinn 2: Kode

James chinchay

#inkludere

#include #include

int adresse = 0; statisk usignert lang SaveTimer; statisk usignert lang SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; røye Str [10]; char CodeLength = 4; int Pos = 0; bool Låst opp; statisk usignert lang DisplayTimer; statisk usignert lang DisplayDelay = 200;

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

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

int enter -knapp = 10; int clearlock -knapp = 13;

Servo myServo; // konfigurering av konstruksjonsprogrammets ugyldige oppsett () {

myServo.attach (A1);

int EEPROMCodeOK = true; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// ikke en gyldig kode EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); hvis (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // sette opp innganger pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (enter -knapp, INPUT_PULLUP); pinMode (clearlock -knapp, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // sette opp meldt lcd.print ("Hei Mr Birch"); forsinkelse (2000); lcd.clear (); lcd.setCursor (0, 0); // sette opp ledetekst for passord lcd.print ("Passord:");

DisplayTimer = millis () + 200; }

void loop () {

Låse();

Pos = begrensning (Pos, 0, CodeLength); // lese knapper 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); // krav for å aktivere if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin1) == LOW);

}

ellers hvis (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin2) == LOW);

}

ellers hvis (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin3) == LOW); }

ellers hvis (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin4) == LOW);

} annet hvis (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; forsinkelse (250); mens (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("Tilgang gitt"); forsinkelse (2000); lcd.clear (); lcd.print ("ulåst"); } annet hvis (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (KODE, Str); for (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Lagringskode:"); lcd.setCursor (0, 1); lcd.print (Str);

Unlocked = true; }

annet {

lcd.clear (); lcd.print ("Tilgang nektet."); forsinkelse (2000); lcd.clear (); lcd.print ("Passord:");

} // opplåsingskode mens (Unlocked) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {forsinkelse (200); lcd.clear (); lcd.print ("Låst"); forsinkelse (2000); lcd.clear (); Unlocked = false; SaveTimer = millis () + 30000; }}

ClearCode ();

}

ellers hvis (clButtonState == LOW) {forsinkelse (500);

mens (clearlockbutton == LOW); hvis ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

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

} }

ugyldig ClearCode () {

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

}

void Unlock () {

myServo.write (150);

} // programlåseknapp ugyldig Lås () {

myServo.write (50);

}

Trinn 3:

når alt er gjort skal det se slik ut.

Anbefalt: