Cuprins:
Video: Seif: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Iată ce ar trebui să fie în cele din urmă rezultatul dvs. după asamblarea acestuia și încărcarea codului.
Pasul 1: Lucruri de care vei avea nevoie
Sârme jumper, rezistență 220 OHM, ecran LCD 16x2, butoane push, servomotor, panou de rulare, Arduino Uno.
Pasul 2: Cod
James Chinchay
#include
#include #include
adresa int = 0; static nesemnat lung SaveTimer; static nesemnat lung SaveDelay = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; char CodeLength = 4; int Pos = 0; bool Deblocat; DisplayTimer lung nesemnat static; static unsigned long DisplayDelay = 200;
LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
butonul intPin1 = 2; butonul intPin2 = 3; butonul intPin3 = 4; butonul intPin4 = 5;
int enterbutton = 10; int clearlockbutton = 13;
Servo myServo; // configurarea programului de construcție void setup () {
myServo.attach (A1);
int EEPROMCodeOK = adevărat; for (Pos = 0; Pos <= (CodeLength); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// nu este un cod valid EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (COD, Str, CodeLength + 1); } ClearCode (); // configurarea intrărilor 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.inceput (16, 2); lcd.setCursor (0, 0); // configurarea mesajelor lcd.print („Bună ziua domnule mesteacăn”); întârziere (2000); lcd.clear (); lcd.setCursor (0, 0); // configurare prompt pentru parolă lcd.print ("Parolă:");
DisplayTimer = milis () + 200; }
bucla nulă () {
Lacăt();
Pos = constrângere (Pos, 0, CodeLength); // citire butoane 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); // cerințe pentru activare if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; întârziere (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; întârziere (250); while (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; întârziere (250); while (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; întârziere (250); while (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; întârziere (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Deblocat = adevărat; lcd.setCursor (0, 0); lcd.print („Acces acordat”); întârziere (2000); lcd.clear (); lcd.print („Deblocat”); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (COD, Str); pentru (Pos = 0; Pos <= (CodeLength + 1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print („Cod de salvare:”); lcd.setCursor (0, 1); lcd.print (Str);
Deblocat = adevărat; }
altceva {
lcd.clear (); lcd.print („Acces refuzat”); întârziere (2000); lcd.clear (); lcd.print ("Parolă:");
} // cod de deblocare în timp ce (Deblocat) {Deblocare (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print („Blocat”); întârziere (2000); lcd.clear (); Deblocat = fals; SaveTimer = milis () + 30000; }}
ClearCode ();
}
else if (clButtonState == LOW) {întârziere (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 ("");
} }
void ClearCode () {
Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Parolă:"); lcd.setCursor (0, 1); lcd.print ("");
}
void Deblocare () {
myServo.write (150);
} // butonul de blocare a programului void Lock () {
myServo.write (50);
}
Pasul 3:
când ați terminat totul ar trebui să arate așa.
Recomandat:
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino - Pași cu pași: 4 pași
Sistemul de alertă pentru parcarea inversă a autovehiculului Arduino | Pași cu pas: în acest proiect, voi proiecta un senzor senzor de parcare inversă Arduino Car Circuit folosind senzorul cu ultrasunete Arduino UNO și HC-SR04. Acest sistem de avertizare auto bazat pe Arduino poate fi utilizat pentru navigație autonomă, autonomie robotică și alte r
Un seif luminos: 6 pași
O lumină sigură: acest proiect vă propune o modalitate de a vă asigura securitatea. Rezultatul final al proiectului este un comutator comandat de arduino după două etape de securitate. Comutatorul poate deschide un portal, înlocui telecomanda sau pur și simplu comanda motorul. Proiectul meu este preconizat
Realizarea unui seif digital securizat: 26 de pași
Realizarea unui seif digital securizat: m-am gândit să împărtășesc elementele de bază ale creării unui seif digital sigur folosind software-ul veracrypt. L-am folosit de câțiva ani pentru a crea seifuri digitale pentru mine și familia mea. este un software puternic de criptare și foarte versatil, dar nu în
Seif de fișiere DIY de pe vechea unitate flash: 6 pași
DIY File Vault From Old Flash Drive: Dacă sunteți adânc în ofertele Cyber Monday sau Black Friday, atunci este posibil să fi văzut un produs prezentat în unele dintre reviste numit Photo Vault. Ideea este că, în principiu, stochează toate imaginile pe un USB pentru șaizeci de dolari și că va
Crăpați și resetați un seif electronic: 3 pași
Crack and Reset a Electronic Safe: short story, dacă aș elimina conținutul seifului pentru un prieten, aș putea păstra seiful … de ce să nu-i dau o șansă