Obsah:
Video: Safe Box: 3 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
To by mal byť váš konečný výsledok po zostavení a nahraní kódu.
Krok 1: Veci, ktoré budete potrebovať
Prepojovacie vodiče, odpor 220 ohmov, obrazovka LCD 16 x 2, tlačidlá, servomotor, doska na chlieb, Arduino Uno.
Krok 2: Kód
James chinchay
#zahrnúť
#include #include
int adresa = 0; statický nepodpísaný dlhý SaveTimer; statický nepodpísaný dlhý SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char Dĺžka kódu = 4; int Pozícia = 0; bool odomknutý; statický bez znamienka dlhý DisplayTimer; statický nepodpísaný dlhý DisplayDelay = 200;
LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
int tlačidloPin1 = 2; int tlačidloPin2 = 3; int tlačidloPin3 = 4; int tlačidloPin4 = 5;
int zadacie tlačidlo = 10; int clearlockbutton = 13;
Servo myServo; // nastavenie programu konštrukcie void setup () {
myServo.attach (A1);
int EEPROMCodeOK = true; pre (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// nie je platný kód EEPROMCodeOK = false; }} Pozícia ++; Str [Pos] = EEPROM.read (Poz); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // nastavenie vstupov pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);
pinMode (Enterbutton, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);
lcd.begin (16, 2); lcd.setCursor (0, 0); // nastavenie zaslaných správ lcd.print („Dobrý deň, pán Birch“); oneskorenie (2000); lcd.clear (); lcd.setCursor (0, 0); // nastavenie výzvy na zadanie hesla lcd.print ("Heslo:");
DisplayTimer = milis () + 200; }
prázdna slučka () {
Zámok ();
Pos = obmedzenie (Pos, 0, CodeLength); // tlačidlá čítania 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); // požiadavky na aktiváciu if (buttonState1 == LOW) {Str [Pos] = '1'; Poz ++; Str [Pos] = '\ 0'; oneskorenie (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Poz ++; Str [Pos] = '\ 0'; oneskorenie (250); while (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Poz ++; Str [Pos] = '\ 0'; oneskorenie (250); while (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Poz ++; Str [Pos] = '\ 0'; oneskorenie (250); while (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Poz ++; Str [Pos] = '\ 0'; oneskorenie (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print („prístup povolený“); oneskorenie (2000); lcd.clear (); lcd.print ("Odomknutý"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (KÓD, Str); pre (Pos = 0; Pos <= (CodeLength+1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print („Ukladací kód:“); lcd.setCursor (0, 1); lcd.print (Str);
Odomknutý = true; }
inak {
lcd.clear (); lcd.print („Prístup odmietnutý.“); oneskorenie (2000); lcd.clear (); lcd.print ("Heslo:");
} // odblokovanie kódu pri (Odomknuté) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print („uzamknutý“); oneskorenie (2000); lcd.clear (); Unlocked = false; SaveTimer = milis () + 30 000; }}
ClearCode ();
}
else if (clButtonState == LOW) {oneskorenie (500);
while (clearlockbutton == LOW); if ((milis () - SaveTimer)> 4500) {
}
ClearCode ();
}
if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer += DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");
} }
zrušiť ClearCode () {
Pozícia = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Heslo:"); lcd.setCursor (0, 1); lcd.print ("");
}
zrušiť Odomknúť () {
myServo.write (150);
} // tlačidlo uzamknutia programu neplatné Lock () {
myServo.write (50);
}
Krok 3:
keď je všetko hotové, malo by to vyzerať takto.
Odporúča:
Corona Safe: Automatický kohútik šetriaci vodu: 6 krokov
Corona Safe: Automatický kohútik šetriaci vodu: Všetci si musíme každú chvíľu umyť ruky, aby sme sa zbavili vírusu a baktérií, špeciálne na vírus Corona, musíme si umývať ruky 20 sekúnd, aby sme sa ho úplne zbavili. Tiež dávkovač mydla alebo gombík na kohútik nemusia byť hygienické alebo
Prenosný trezor B-Safe: 8 krokov (s obrázkami)
B-Safe, prenosný trezor: *** 4. septembra 2019: Nahral som nový 3D súbor samotného poľa. Vyzeralo to, že môj zámok je príliš vysoký o 10 mm na poriadne zavretie *** Problém Predstavte si toto: Raz ráno sa zobudíte a počasie je naozaj dobré. Chcete ísť na pláž. Pretože nemáte
Juke Box pre veľmi mladých alias Raspi-Music-Box: 5 krokov
Box Juke pre veľmi mladých … Aka Raspi-Music-Box: Inšpirovaný inštruovateľným robotom „RFID-Music-Robot na báze maliny-Pi-založené“opisujúc stavbu hudobného prehrávača ROALDH pre jeho 3-ročné dieťa, rozhodol som sa postaviť juke box pre moje ešte mladšie deti. Je to v podstate krabica so 16 tlačidlami a Raspi 2 i
Digitálny SAFE BOX na báze Arduino: 10 krokov
Digitálny BEZPEČNÝ BOX na báze Arduina: Hej, chlapci! Máte niečo, čo by ste chceli bezpečne uchovať? Niečo, čo by malo byť chránené pred nechcenými votrelcami a narušiteľmi súkromia? Mám pre váš problém riešenie! Tu je bezpečný box na uzamknutie založený na Arduine
Postavte batériový box na cigaretový box pre trubicové rádiá: 4 kroky
Zostavte si krabičku z cigaretového boxu pre trubicové rádiá: Ak vás baví stavať a hrať sa s trubičkovými rádiami ako ja, pravdepodobne máte podobný problém ako ja s ich napájaním. Väčšina starých obvodov bola navrhnutá tak, aby pracovala na batériách vysokého napätia b, ktoré už nie sú k dispozícii. Takže