Turinys:

Seifas: 3 žingsniai
Seifas: 3 žingsniai

Video: Seifas: 3 žingsniai

Video: Seifas: 3 žingsniai
Video: Užtemimas 2024, Liepa
Anonim
Seifas
Seifas
Seifas
Seifas
Seifas
Seifas

Štai koks turėtų būti jūsų galutinis rezultatas, jį sukūrus ir įkėlus kodą.

1 žingsnis: reikalingi dalykai

Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks
Dalykai, kurių jums prireiks

Trumpieji laidai, 220 OHM rezistorius, 16x2 LCD ekranas, mygtukai, servo variklis, duonos lenta, „Arduino Uno“.

2 žingsnis: kodas

Jamesas chinchay

#įtraukti

#įtraukti #įtraukti

int adresas = 0; statinis nepasirašytas ilgas „SaveTimer“; statinis nepasirašytas ilgas SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; statinis nepasirašytas ilgas „DisplayTimer“; statinis nepasirašytas ilgas „DisplayDelay“= 200;

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

int mygtukasPin1 = 2; int mygtukasPin2 = 3; int mygtukasPin3 = 4; int mygtukasPin4 = 5;

int enterbutton = 10; int clearlockbutton = 13;

Servo myServo; // sąrankos programos kūrimas void setup () {

myServo.attach (A1);

int EEPROMCodeOK = tiesa; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos])))) {// neteisingas kodas EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); jei (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str., CodeLength + 1); } „ClearCode“(); // įėjimų nustatymas pinMode (buttonPin1, INPUT_PULLUP); pinMode (mygtukasPin2, INPUT_PULLUP); pinMode (mygtukasPin3, INPUT_PULLUP); pinMode (mygtukasPin4, INPUT_PULLUP);

pinMode (įvesties mygtukas, INPUT_PULLUP); pinMode (skaidraus užrakto mygtukas, INPUT_PULLUP);

LCD. pradžia (16, 2); lcd.setCursor (0, 0); // nustatymas messaged lcd.print ("Labas pone beržai"); vėlavimas (2000 m.); lcd.clear (); lcd.setCursor (0, 0); // slaptažodžio nustatymo raginimas lcd.print ("Slaptažodis:");

„DisplayTimer“= milis () + 200; }

void loop () {

Užraktas ();

Pos = apriboti (Pos, 0, CodeLength); // skaitymo mygtukai 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); // reikalavimai aktyvuoti, jei (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin2) == LOW);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin3) == LOW); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin4) == LOW);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; vėlavimas (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Atrakinta = tiesa; lcd.setCursor (0, 0); lcd.print („Prieiga suteikta“); vėlavimas (2000 m.); lcd.clear (); lcd.print ("Atrakinta"); } 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 ("Išsaugojimo kodas:"); lcd.setCursor (0, 1); lcd.print (Str);

Atrakinta = tiesa; }

Kitas {

lcd.clear (); lcd.print („Prieiga uždrausta“); vėlavimas (2000 m.); lcd.clear (); lcd.print ("Slaptažodis:");

} // kodo atrakinimas tuo metu (Atrakinta) {Atrakinti (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Užrakinta"); vėlavimas (2000 m.); lcd.clear (); Atrakinta = klaidinga; „SaveTimer“= milis () + 30000; }}

„ClearCode“();

}

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

while (clearlockbutton == LOW); jei ((milis () - „SaveTimer“> 4500) {

}

„ClearCode“();

}

if ((ilgas) (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 ("Slaptažodis:"); lcd.setCursor (0, 1); lcd.print ("");

}

void Unlock () {

myServo.write (150);

} // programos užrakinimo mygtukas void Lock () {

myServo.write (50);

}

3 žingsnis:

kai viskas padaryta, tai turėtų atrodyti taip.

Rekomenduojamas: