Cuprins:

Seif: 3 pași
Seif: 3 pași

Video: Seif: 3 pași

Video: Seif: 3 pași
Video: SAFE BANKING #3 | Poți recupera banii dacă ai fost victima unei fraude? 2024, Noiembrie
Anonim
Seif
Seif
Seif
Seif
Seif
Seif

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

Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
Lucruri de care vei avea nevoie
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: