Kazalo:

Sef: 3 koraki
Sef: 3 koraki

Video: Sef: 3 koraki

Video: Sef: 3 koraki
Video: Адский шеф 1 сезон 1 выпуск 2024, Julij
Anonim
Sef
Sef
Sef
Sef
Sef
Sef

To bi moral biti vaš končni rezultat, potem ko ga sestavite in naložite kodo.

Korak: Stvari, ki jih boste potrebovali

Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali
Stvari, ki jih boste potrebovali

Mostične žice, 220 OHM upor, LCD zaslon 16x2, potisni gumbi, servo motor, plošča, Arduino Uno.

2. korak: Koda

James chinchay

#vključi

#include #include

int naslov = 0; statični nepodpisani dolgi SaveTimer; statično brez podpisa dolgo SaveDelay = (30 * 1000);

char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Odklenjeno; statični brez podpisa dolg DisplayTimer; statično brez podpisa dolgo DisplayDelay = 200;

LCD tekoči kristal (12, 11, 9, 8, 7, 6);

gumb intPin1 = 2; gumb intPin2 = 3; gumb intPin3 = 4; gumb intPin4 = 5;

int enterbutton = 10; int clearlockbutton = 13;

Servo myServo; // nastavitev programa construct void setup () {

myServo.attach (A1);

int EEPROMCodeOK = res; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.preberite (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// ni veljavna koda EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.preberite (Poz); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // nastavitev vhodov pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);

pinMode (gumb za vnos, INPUT_PULLUP); pinMode (gumb clearlock, INPUT_PULLUP);

lcd.begin (16, 2); lcd.setCursor (0, 0); // nastavitev sporočila lcd.print ("Pozdravljeni gospod Birch"); zamuda (2000); lcd.clear (); lcd.setCursor (0, 0); // nastavitev poziva za geslo lcd.print ("Geslo:");

DisplayTimer = millis () + 200; }

void loop () {

Ključavnica ();

Pos = omeji (Pos, 0, CodeLength); // gumbi za branje int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalno branje (buttonPin2); int buttonState3 = digitalno branje (buttonPin3); int buttonState4 = digitalno branje (buttonPin4);

int clButtonState = digitalRead (gumb za brisanje); int enterButtonState = digitalRead (gumb za vnos);

lcd.setCursor (9, 0); // zahteve za aktiviranje if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; zamuda (250); medtem ko (digitalRead (buttonPin1) == LOW);

}

else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; zamuda (250); while (digitalno branje (buttonPin2) == NIZKO);

}

else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; zamuda (250); while (digitalno branje (buttonPin3) == NIZKO); }

else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; zamuda (250); while (digitalno branje (buttonPin4) == NIZKO);

} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; zamuda (250); medtem ko (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Odklenjeno = true; lcd.setCursor (0, 0); lcd.print ("Dostop odobren"); zamuda (2000); lcd.clear (); lcd.print ("Odklenjeno"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

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

Odklenjeno = res; }

drugače {

lcd.clear (); lcd.print ("Dostop zavrnjen."); zamuda (2000); lcd.clear (); lcd.print ("Geslo:");

} // odklepanje kode while (Odklenjeno) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {zakasnitev (200); lcd.clear (); lcd.print ("Zaklenjeno"); zamuda (2000); lcd.clear (); Odklenjeno = napačno; SaveTimer = millis () + 30000; }}

ClearCode ();

}

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

medtem ko (clearlockbutton == NIZKA); if ((millis () - SaveTimer)> 4500) {

}

ClearCode ();

}

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

} }

void ClearCode () {

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

}

void Odkleni () {

myServo.write (150);

} // gumb za zaklepanje programa void Lock () {

myServo.write (50);

}

3. korak:

ko bo vse narejeno bi moralo izgledati tako.

Priporočena: