فهرست مطالب:

صندوق امانات: 3 مرحله
صندوق امانات: 3 مرحله

تصویری: صندوق امانات: 3 مرحله

تصویری: صندوق امانات: 3 مرحله
تصویری: محاسبة مصرفية - المحاضرة الاولى - موضوع المعالجات المحاسبية لشعبة امانةالصندوق 2024, نوامبر
Anonim
صندوق امانات
صندوق امانات
صندوق امانات
صندوق امانات
صندوق امانات
صندوق امانات

این نتیجه نهایی شما پس از جمع آوری و بارگذاری کد است.

مرحله 1: چیزهایی که به آنها نیاز خواهید داشت

چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت
چیزهایی که به آنها نیاز خواهید داشت

Jumper Wires ، مقاومت 220 OHM ، صفحه LCD 16x2 ، دکمه های فشاری ، موتور سروو ، Breadboard ، Arduino Uno.

مرحله 2: کد

جیمز چینچی

#عبارتند از

#شامل #شامل شود

آدرس int = 0؛ SaveTimer طولانی بدون علامت ثابت ؛ SaveDelay طولانی بدون علامت طولانی = (1000 * 30) ؛

char CODE [10] = "1234E"؛ char Str [10]؛ char CodeLength = 4؛ int Pos = 0 ؛ bool Unlocked؛ DisplayTimer طولانی بدون علامت ثابت ؛ DisplayDelay طولانی بدون علامت طولانی = 200؛

LCD مایع LiquidCrystal (12 ، 11 ، 9 ، 8 ، 7 ، 6) ؛

int buttonPin1 = 2 ؛ int buttonPin2 = 3 ؛ int buttonPin3 = 4 ؛ int buttonPin4 = 5 ؛

int enterbutton = 10؛ int clearlockbutton = 13؛

Servo myServo؛ // راه اندازی سازه برنامه void setup () {

myServo.attach (A1) ؛

int EEPROMCodeOK = true؛ برای (Pos = 0 ؛ Pos <= (CodeLength) ؛ Pos ++) {Str [Pos] = EEPROM.read (Pos) ؛ if (! (strrchr ("1123456789" ، Str [Pos]))) {// یک کد معتبر EEPROMCodeOK = false نیست ؛ }} Pos ++؛ Str [Pos] = EEPROM.read (Pos)؛ if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false؛ if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'؛ strncpy (CODE ، Str ، CodeLength + 1) ؛ } ClearCode ()؛ // تنظیم ورودی pinMode (buttonPin1 ، INPUT_PULLUP) ؛ pinMode (buttonPin2 ، INPUT_PULLUP) ؛ pinMode (buttonPin3 ، INPUT_PULLUP) ؛ pinMode (buttonPin4 ، INPUT_PULLUP) ؛

pinMode (دکمه ورود ، INPUT_PULLUP) ؛ pinMode (دکمه روشن ، INPUT_PULLUP) ؛

lcd.begin (16 ، 2) ؛ lcd.setCursor (0 ، 0) ؛ // راه اندازی پیام lcd.print ("سلام آقای توس") ؛ تاخیر (2000) ؛ lcd.clear ()؛ lcd.setCursor (0 ، 0) ؛ // تنظیم سریع رمز عبور lcd.print ("رمز عبور:") ؛

DisplayTimer = millis () + 200؛ }

حلقه خالی () {

قفل کردن()؛

Pos = constrain (Pos، 0، CodeLength)؛ // دکمه های خواندن int buttonState1 = digitalRead (buttonPin1) ؛ int buttonState2 = digitalRead (buttonPin2) ؛ int buttonState3 = digitalRead (buttonPin3) ؛ int buttonState4 = digitalRead (buttonPin4) ؛

int clButtonState = digitalRead (clearlockbutton) ؛ int enterButtonState = digitalRead (دکمه ورود)؛

lcd.setCursor (9 ، 0) ؛ // الزامات فعال سازی if (buttonState1 == LOW) {Str [Pos] = '1'؛ Pos ++ ؛ خیابان [Pos] = '\ 0'؛ تأخیر (250) ؛ while (digitalRead (buttonPin1) == LOW) ؛

}

else if (buttonState2 == LOW) {Str [Pos] = '2'؛ Pos ++ ؛ خیابان [Pos] = '\ 0'؛ تأخیر (250) ؛ while (digitalRead (buttonPin2) == LOW) ؛

}

else if (buttonState3 == LOW) {Str [Pos] = '3'؛ Pos ++ ؛ خیابان [Pos] = '\ 0'؛ تأخیر (250) ؛ while (digitalRead (buttonPin3) == LOW) ؛ }

else if (buttonState4 == LOW) {Str [Pos] = '4'؛ Pos ++ ؛ خیابان [Pos] = '\ 0'؛ تأخیر (250) ؛ while (digitalRead (buttonPin4) == LOW) ؛

} else if (enterButtonState == LOW) {Str [Pos] = 'E'؛ Pos ++ ؛ خیابان [Pos] = '\ 0'؛ تأخیر (250) ؛ while (digitalRead (buttonPin1) == LOW) ؛ if (strcmp (Str، CODE) == 0) {Unlocked = true؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("دسترسی مجاز است") ؛ تاخیر (2000) ؛ lcd.clear ()؛ lcd.print ("باز شده") ؛ } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {

strcpy (CODE ، Str) ؛ برای (Pos = 0؛ Pos <= (CodeLength+1)؛ Pos ++) {EEPROM.write (Pos، Str [Pos])؛ } lcd.setCursor (0 ، 0) ؛ lcd.print ("کد ذخیره:") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print (Str) ؛

باز شده = true؛ }

دیگری {

lcd.clear ()؛ lcd.print ("دسترسی ممنوع است.") ؛ تاخیر (2000) ؛ lcd.clear ()؛ lcd.print ("رمز عبور:") ؛

} // بازکردن قفل در حالی که (قفل شده است) {باز کردن ()؛ if (digitalRead (clearlockbutton) == LOW) {تاخیر (200) ؛ lcd.clear ()؛ lcd.print ("قفل شده") ؛ تاخیر (2000) ؛ lcd.clear ()؛ باز شده = false؛ SaveTimer = millis () + 30000؛ }}

ClearCode () ؛

}

else if (clButtonState == LOW) {تأخیر (500)؛

while (clearlockbutton == LOW) ؛ 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 ("رمز عبور:") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("")؛

}

void Unlock () {

myServo.write (150) ؛

} // دکمه قفل برنامه void Lock () {

myServo.write (50)؛

}

مرحله 3:

وقتی همه کارها را انجام داد باید شبیه این باشد

توصیه شده: