فهرست مطالب:
تصویری: صندوق امانات: 3 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
این نتیجه نهایی شما پس از جمع آوری و بارگذاری کد است.
مرحله 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:
وقتی همه کارها را انجام داد باید شبیه این باشد
توصیه شده:
سنسور صندوق پستی با استفاده از آردوینو: 4 مرحله
سنسور صندوق پستی با استفاده از آردوینو: سلام ، امیدوارم حال همه شما خوب باشد. امروز قصد دارم نحوه ساخت صندوق پستی با حسگر با استفاده از برد آردوینو و IDE را به شما نشان دهم. این پروژه بسیار ساده است و بیشتر لوازم مورد نیاز را می توان در اکثر خانه ها یافت. بدانید که کووید -19 به ما حمله کرده است
Smart B.A.L (صندوق پستی متصل): 4 مرحله
Smart B.A.L (صندوق پستی متصل): از بررسی هر بار صندوق پستی خود خسته شده اید در حالی که هیچ چیزی داخل آن وجود ندارد. شما می خواهید بدانید که آیا نامه خود را دریافت می کنید یا بسته ای در طول سفر دریافت می کنید. بنابراین صندوق پستی متصل برای شما است. اگر پستچی نامه یا مبلغی را واریز کرده باشد به شما اطلاع می دهد
صندوق تلفن: 5 مرحله (همراه با تصاویر)
صندوق تلفن: تغییر از: Alissahuang من به تلفنم معتاد هستم ، که نمی توانم روی تکالیفم تمرکز کنم. هر روز که به خانه می روم ، ابتدا با تلفنم بازی می کنم ، سپس حدود ساعت 10 شب. من تکالیفم را شروع کردم که خیلی دیر شده است. بنابراین هر روز ساعت 2 بامداد به رختخواب می رفتم که باعث
صندوق پستی هوشمند: 11 مرحله
صندوق پستی هوشمند: من معمولاً روزنامه را صبح هنگام صبحانه می خوانم. این هر روز در صندوق پستی ارسال می شود. اما گاهی اوقات اتفاق می افتد که من باید در سرما یا باران از طریق پیاده روی به صندوق پستی قدم بزنم تا ببینم هیچ روزنامه ای تحویل داده نمی شود
صندوق پول سازنده شرط بندی تصادفی: 6 مرحله (همراه با تصاویر)
صندوق پول سازنده شرط بندی تصادفی: من با نیمه دیگرم در مورد فوتبال و پول بحث می کردم و موضوع به شرط بندی رسید. هر زمان که او به مسابقه می رود ، جفتش همه را در چند قيمت تراشه می کند و آنها شرط می بندند. شرط معمولاً نمره نهایی است و یا فی