Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky është rezultati juaj përfundimtar pasi ta keni bashkuar dhe ngarkuar kodin.
Hapi 1: Gjërat që do t'ju nevojiten
Tela Jumper, rezistencë 220 OHM, Ekran LCD 16x2, Butona Push, Servo Motor, Breadboard, Arduino Uno.
Hapi 2: Kodi
James chinchay
#përfshi
#përfshi #përfshi
adresa int = 0; SaveTimer i gjatë statik i panënshkruar; SaveDelay e gjatë e panënshkruar statike = (30 * 1000);
char KODI [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Unlocked; DisplayTimer i gjatë statik i panënshkruar; DisplayDelay e gjatë statike e panënshkruar = 200;
LiquidCrystal LCD (12, 11, 9, 8, 7, 6);
butoni intPin1 = 2; butoni intPin2 = 3; butoni intPin3 = 4; butoni intPin4 = 5;
int enterbutton = 10; int clearlockbutton = 13;
Servo myServo; // vendosja e programit konstrukt void setup () {
myServo.attach (A1);
int EEPROMCodeOK = e vërtetë; për (Pos = 0; Pos <= (Gjatësia e Kodit); Pos ++) {Rr [Pos] = EEPROM.lexo (Pos); nëse (! (strrchr ("1123456789", Rr [Pos]))) {// nuk është një kod i vlefshëm EEPROMCodeOK = false; }} Pos ++; Rr [Pos] = EEPROM.lexo (Pos); nëse (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Rr [KodiLength + 2] = '\ 0'; strncpy (KODI, Rr, Gjatësia e Kodit + 1); } ClearCode (); // vendosja e hyrjeve pinMode (butoniPin1, INPUT_PULLUP); pinMode (butoniPin2, INPUT_PULLUP); pinMode (butoniPin3, INPUT_PULLUP); pinMode (butoniPin4, INPUT_PULLUP);
pinMode (butoni i hyrjes, INPUT_PULLUP); pinMode (butoni i pastër, INPUT_PULLUP);
lcd.filloni (16, 2); lcd.setCursor (0, 0); // vendosja e mesazheve lcd.print ("Përshëndetje Z. Birch"); vonesa (2000); lcd.qartë (); lcd.setCursor (0, 0); // vendosja e kërkesës për fjalëkalimin lcd.print ("Fjalëkalimi:");
DisplayTimer = millis () + 200; }
lak void () {
Blloko ();
Pos = kufizoj (Pos, 0, CodeLength); // lexoni butonat int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (butoniPin2); int buttonState3 = digitalRead (butoniPin3); int buttonState4 = digitalRead (butoniPin4);
int clButtonState = digitalRead (çelësi i butonit); int enterButtonState = digitalRead (butoni i hyrjes);
lcd.setCursor (9, 0); // kërkesat për të aktivizuar nëse (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Rr [Pos] = '\ 0'; vonesë (250); ndërsa (digitalRead (buttonPin1) == LOW);
}
tjetër nëse (buttonState2 == LOW) {Rr [Pos] = '2'; Pos ++; Rr [Pos] = '\ 0'; vonesë (250); ndërsa (digitalRead (buttonPin2) == LOW);
}
tjetër nëse (buttonState3 == LOW) {Rr [Pos] = '3'; Pos ++; Rr [Pos] = '\ 0'; vonesë (250); ndërsa (digitalRead (buttonPin3) == LOW); }
tjetër nëse (buttonState4 == LOW) {Rr [Pos] = '4'; Pos ++; Rr [Pos] = '\ 0'; vonesë (250); ndërsa (digitalRead (buttonPin4) == LOW);
} tjetër if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Rr [Pos] = '\ 0'; vonesë (250); ndërsa (digitalRead (buttonPin1) == LOW); if (strcmp (Rr, KODI) == 0) {Shkyçur = e vërtetë; lcd.setCursor (0, 0); lcd.print ("Qasja është dhënë"); vonesa (2000); lcd.qartë (); lcd.print ("Hape"); } tjetër nëse (SaveTimer> millis () && (Pos + 1) == Gjatësia e Kodit) {
strcpy (KODI, Rr); për (Pos = 0; Pos <= (Gjatësia e Kodit+1); Pos ++) {EEPROM.shkruani (Pos, Rr [Pos]); } lcd.setCursor (0, 0); lcd.print ("Kodi i Ruajtjes:"); lcd.setCursor (0, 1); lcd.print (Rr);
Hape = e vërtetë; }
tjeter {
lcd.qartë (); lcd.print ("Qasja është refuzuar."); vonesa (2000); lcd.qartë (); lcd.print ("Fjalëkalimi:");
} // zhbllokimi i kodit gjatë (Unlocked) {Unlock (); nëse (digitalRead (pastrojeni butonin) == LOW) {vonesë (200); lcd.qartë (); lcd.print ("Mbyllur"); vonesa (2000); lcd.qartë (); Zhbllokuar = false; SaveTimer = millis () + 30000; }}
ClearCode ();
}
tjetër nëse (clButtonState == LOW) {vonesë (500);
ndërsa (clearlockbutton == LOW); nëse ((millis () - SaveTimer)> 4500) {
}
ClearCode ();
}
nëse ((e gjatë) (milis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Rr); lcd.print ("");
} }
pavlefshme ClearCode () {
Pos = 0; Rr [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Fjalëkalimi:"); lcd.setCursor (0, 1); lcd.print ("");
}
zhbllokuar zhbllokimin () {
myServo.shkruaj (150);
} // butoni i kyçjes së programit void Lock () {
myServo.shkruaj (50);
}
Hapi 3:
kur bëhet gjithçka duhet të duket kështu.