Satura rādītājs:

Seifs: 3 soļi
Seifs: 3 soļi

Video: Seifs: 3 soļi

Video: Seifs: 3 soļi
Video: SOLO SEIF 3 2024, Jūlijs
Anonim
Droša kaste
Droša kaste
Droša kaste
Droša kaste
Droša kaste
Droša kaste

Šādam vajadzētu būt jūsu gala rezultātam pēc tā salikšanas un koda augšupielādes.

1. darbība: lietas, kas jums būs nepieciešamas

Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas
Lietas, kas jums būs nepieciešamas

Džempera vadi, 220 OHM rezistors, 16x2 LCD ekrāns, spiedpogas, servomotors, maizes dēlis, Arduino Uno.

2. darbība: kods

Džeimss Činhajs

#iekļaut

#iekļaut #iekļaut

int adrese = 0; statisks neparakstīts garš SaveTimer; statisks neparakstīts garš SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char kodsLength = 4; int Pos = 0; bool Unlocked; statisks neparakstīts garš DisplayTimer; statisks neparakstīts garš DisplayDelay = 200;

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

int pogaPin1 = 2; int pogaPin2 = 3; int pogaPin3 = 4; int pogaPin4 = 5;

int ievades poga = 10; int clearlockbutton = 13;

Servo myServo; // konstruēšanas programmas iestatīšana void setup () {

myServo.attach (A1);

int EEPROMCodeOK = patiess; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos])))) {// nav derīgs kods EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); ja (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; ja (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str., CodeLength + 1); } ClearCode (); // ieeju iestatīšana pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (ievadīšanas poga, INPUT_PULLUP); pinMode (skaidrs bloķēšanas poga, INPUT_PULLUP);

lcd. sākums (16, 2); lcd.setCursor (0, 0); // messaged lcd.print iestatīšana ("Labdien, Bērza kungs"); kavēšanās (2000); lcd.clear (); lcd.setCursor (0, 0); // paroles iestatīšanas uzvedne lcd.print ("Parole:");

DisplayTimer = milis () + 200; }

void loop () {

Slēdzene ();

Pos = ierobežot (Pos, 0, CodeLength); // lasīšanas pogas 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); // prasības aktivizēt, ja (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin1) == LOW);

}

cits if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin2) == LOW);

}

cits if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin3) == LOW); }

cits if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin4) == LOW);

} cits if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; kavēšanās (250); while (digitalRead (buttonPin1) == LOW); ja (strcmp (Str, CODE) == 0) {Atbloķēts = true; lcd.setCursor (0, 0); lcd.print ("Piekļuve piešķirta"); kavēšanās (2000); lcd.clear (); lcd.print ("Atbloķēts"); } cits, ja (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 ("Saglabāšanas kods:"); lcd.setCursor (0, 1); lcd.print (Str);

Atbloķēts = taisnība; }

cits {

lcd.clear (); lcd.print ("Piekļuve liegta."); kavēšanās (2000); lcd.clear (); lcd.print ("Parole:");

} // atbloķēšanas kods, kamēr (atbloķēts) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {kavēšanās (200); lcd.clear (); lcd.print ("Bloķēts"); kavēšanās (2000); lcd.clear (); Atbloķēts = nepatiess; SaveTimer = milis () + 30000; }}

ClearCode ();

}

else if (clButtonState == LOW) {kavēšanās (500);

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

}

ClearCode ();

}

ja ((garš) (milis () - 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 ("Parole:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Unlock () {

myServo.write (150);

} // programmas bloķēšanas poga void Lock () {

myServo.write (50);

}

3. darbība:

kad viss ir izdarīts, tam vajadzētu izskatīties šādi.

Ieteicams: