جدول المحتويات:
فيديو: خزنة: 3 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
هذا ما يجب أن تكون عليه نتيجتك النهائية بعد تجميعها وتحميل الكود.
الخطوة 1: الأشياء التي سوف تحتاجها
أسلاك توصيل ، مقاوم 220 أوم ، شاشة LCD مقاس 16 × 2 ، أزرار دفع ، محرك سيرفو ، لوح بريد ، أردوينو أونو.
الخطوة 2: الكود
جيمس شينتشاي
#يشمل
# تضمين # تضمين
عنوان int = 0 ؛ ثابت SaveTimer طويل بدون توقيع ؛ ثابت SaveDelay طويل بدون توقيع = (30 * 1000) ؛
char CODE [10] = "1234E" ؛ char Str [10] ؛ Char CodeLength = 4 ؛ كثافة نقاط البيع = 0 ؛ منطقي مفتوح DisplayTimer طويل ثابت غير موقعة ؛ DisplayDelay طويل ثابت بدون توقيع = 200 ؛
LiquidCrystal LCD (12 ، 11 ، 9 ، 8 ، 7 ، 6) ؛
int buttonPin1 = 2 ؛ int buttonPin2 = 3 ؛ int buttonPin3 = 4 ؛ int buttonPin4 = 5 ؛
int enterbutton = 10 ؛ int clearlockbutton = 13 ؛
أجهزة myServo ؛ // إعداد إعداد برنامج باطل () {
myServo.attach (A1) ؛
int EEPROMCodeOK = صحيح ، لـ (Pos = 0 ؛ Pos <= (CodeLength) ؛ Pos ++) {Str [Pos] = EEPROM.read (Pos) ؛ if (! (strrchr ("1123456789"، Str [Pos]))) {// ليس رمزًا صالحًا EEPROMCodeOK = false؛ }} Pos ++؛ Str [Pos] = EEPROM.read (Pos) ؛ إذا (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = false ؛ إذا (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 (enterbutton ، INPUT_PULLUP) ، pinMode (clearlockbutton ، INPUT_PULLUP) ،
lcd.begin (16 ، 2) ؛ lcd.setCursor (0 ، 0) ؛ // إعداد الرسائل lcd.print ("مرحبًا السيد بيرش") ؛ تأخير (2000) ؛ lcd.clear () ؛ lcd.setCursor (0 ، 0) ؛ // إعداد موجه لكلمة المرور lcd.print ("كلمة المرور:") ؛
DisplayTimer = مللي () + 200 ؛ }
حلقة فارغة() {
قفل()؛
Pos = قيد (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 (enterbutton) ،
lcd.setCursor (9 ، 0) ؛ // متطلبات التنشيط إذا (buttonState1 == LOW) {Str [Pos] = '1'؛ Pos ++ ؛ Str [Pos] = '\ 0' ؛ تأخير (250) ؛ بينما (digitalRead (buttonPin1) == منخفض) ؛
}
وإلا إذا (buttonState2 == LOW) {Str [Pos] = '2' ؛ Pos ++ ؛ Str [Pos] = '\ 0' ؛ تأخير (250) ؛ بينما (digitalRead (buttonPin2) == LOW) ؛
}
وإلا إذا (buttonState3 == LOW) {Str [Pos] = '3' ؛ Pos ++ ؛ Str [Pos] = '\ 0' ؛ تأخير (250) ؛ بينما (digitalRead (buttonPin3) == منخفض) ؛ }
وإلا إذا (buttonState4 == LOW) {Str [Pos] = '4' ؛ Pos ++ ؛ Str [Pos] = '\ 0' ؛ تأخير (250) ؛ بينما (digitalRead (buttonPin4) == LOW) ؛
} else if (enterButtonState == LOW) {Str [Pos] = 'E'؛ Pos ++ ؛ Str [Pos] = '\ 0' ؛ تأخير (250) ؛ بينما (digitalRead (buttonPin1) == منخفض) ؛ إذا (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) ؛
مفتوح = صحيح ؛ }
آخر {
lcd.clear () ؛ lcd.print ("الوصول مرفوض") ؛ تأخير (2000) ؛ lcd.clear () ؛ lcd.print ("كلمة المرور:") ؛
} // فك الشفرة أثناء (مفتوح) {Unlock () ؛ إذا (digitalRead (clearlockbutton) == LOW) {delay (200) ؛ lcd.clear () ؛ lcd.print ("مغلق") ؛ تأخير (2000) ؛ lcd.clear () ؛ مقفلة = خطأ ؛ SaveTimer = مللي () + 30000 ؛ }}
ClearCode () ،
}
وإلا إذا (clButtonState == LOW) {delay (500) ؛
بينما (clearlockbutton == LOW) ؛ إذا ((مللي () - SaveTimer)> 4500) {
}
ClearCode () ،
}
إذا ((طويل) (ملي () - DisplayTimer)> = 0) {DisplayTimer + = DisplayDelay ؛ lcd.setCursor (9 ، 0) ؛ lcd.print (Str) ؛ lcd.print ("") ؛
} }
ClearCode () باطل {
الموضع = 0 ؛ Str [Pos] = '\ 0' ؛ lcd.setCursor (0 ، 0) ؛ lcd.print ("كلمة المرور:") ؛ lcd.setCursor (0 ، 1) ؛ lcd.print ("") ؛
}
فتح باطل () {
myServo.write (150) ؛
} // قفل البرنامج زر void Lock () {
myServo.write (50) ؛
}
الخطوه 3:
عند القيام بكل شيء يجب أن يبدو هكذا.
موصى به:
تصميم اللعبة في فليك في 5 خطوات: 5 خطوات
تصميم اللعبة في Flick in 5 Steps: Flick هي طريقة بسيطة حقًا لصنع لعبة ، لا سيما شيء مثل الألغاز أو الرواية المرئية أو لعبة المغامرة
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف - خطوات خطوة: 4 خطوات
نظام اردوينو لتنبيه وقوف السيارة عند الرجوع للخلف | خطوات بخطوة: في هذا المشروع ، سأصمم دائرة مستشعر لعكس مواقف السيارات من Arduino باستخدام مستشعر الموجات فوق الصوتية Arduino UNO و HC-SR04. يمكن استخدام نظام التنبيه العكسي للسيارة المستند إلى Arduino للتنقل الذاتي ومجموعة الروبوتات وغيرها من النطاقات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: 3 خطوات
اكتشاف الوجه على Raspberry Pi 4B في 3 خطوات: في هذا Instructable سنقوم باكتشاف الوجه على Raspberry Pi 4 باستخدام Shunya O / S باستخدام مكتبة Shunyaface. Shunyaface هي مكتبة للتعرف على الوجوه / الكشف عنها. يهدف المشروع إلى تحقيق أسرع سرعة في الكشف والتعرف مع
خزنة أنجيلا الرئيسية: 5 خطوات
خزنة أنجيلا الرئيسية: مستوحاة من: https://www.instructables.com/id/Key-Safe/ مفتاح منظم جيدًا لتخزين متعلقاتك الشخصية ، لقد أجريت بعض التعديلات بناءً على الإصدار الأصلي. بإضافة 3 كلمات مرور أخرى ، & quot؛ A & quot ؛، & quot؛ B & quot ؛، & quot؛ C & quot؛ و &
خزنة ملفات DIY من محرك فلاش قديم: 6 خطوات
مخزن ملفات DIY من محرك أقراص فلاش قديم: إذا كنت تتعمق في صفقات Cyber Monday أو Black Friday ، فربما تكون قد شاهدت منتجًا مميزًا في بعض المجلات تسمى Photo Vault. فكرة هذا هو أنه يخزن بشكل أساسي جميع صورك على USB مقابل ستين دولارًا ، وهذا ما