السلام عليكم ورحمة الله، أتمنى أنكم بأتم صحة وعافية أصدقائي، في هذا المشروع سنقوم بصناعة ساعة رقمية ومنبه بواسطة الاردوينو، وتمتاز هذه الساعة بحفظها للوقت حتى دون وجود مصدر خارجي للطاقة، بمعنى أنك حتى لو قمت بفصل الاردوينو عن مصدر الطاقة (مثل البطارية) فلن تحتاج إلى إعادة ضبط التوقيت أو إعادة البرمجة لاحقا بعد إعادة مصدر التغذية.
سنعتمد في هذا المشروع على الدائرة المتكاملة DS1307، حيث ستقوم هذه الأخيرة بتسيير جميع مهام حفظ الوقت، في حين أن البطارية التي سيتم توصيلها مع متكاملة الوقت الحقيقي هذه ستكون منفصلة وليست لها أي علاقة مع المصدر الرئيسي للطاقة.
أغلبية المتحكمات الدقيقة والمعالجات الدقيقة في أيامنا هذه يكون لديها مؤقت داخلي يسمح لها بتتبع الوقت، لكنه يعمل في حالة وحيدة ألا وهي عندما يكون الميكروكنترولر موصول مع مصدر للطاقة مما يجعله غير قادر على تتبع الوقت في كثير من الأوقات مثل إنقطاع التيار الكهربائي أو نفاذ البطارية من الشحن، وهذا ما يجعنا نستعمل متكاملة الوقت الحقيقي DS1307.
تكون ساعات الوقت الحقيقي (real time clocks) مفيدة عادة في مهام تسجيل البيانات والمنبِهات والمُؤقتات وغيرها الكثير من التطبيقات العديدة الأخرى. في هذا المشروع سنقوم بإنجاز ساعة وقت حقيقي تقوم بعرض الوقت الحالي والتاريخ بدقة إضافة إلى إمكانية ضبطها للعمل كمنبه، كل هذا سيتم إنجازه بالإعتماد على الاردوينو ومتكاملة الوقت الحقيقي DS1307 كما أسلفنا الذكر.
العناصر التي نحتاجها من أجل إنجاز هذه الدائرة:
- اردوينو اونو. رابط الشراء من aliexpress --> اضغط هنا.
- متكاملة الوقت الحقيقي DS1307. رابط الشراء من aliexpress --> اضغط هنا.
- عدد 3: أزرار ضغط (push buttons). رابط الشراء من aliexpress --> اضغط هنا.
- شاشة كريستالية. رابط الشراء من aliexpress --> اضغط هنا.
- طنان كهربائي (buzzer). رابط الشراء من aliexpress --> اضغط هنا.
- مقاومَتان 10 كيلوأوم. رابط الشراء من aliexpress --> اضغط هنا.
- مقاومة متغيرة 10 كيلوأوم. رابط الشراء من aliexpress --> اضغط هنا.
- كريستالة 32.7 كيلوهيرتز. رابط الشراء من aliexpress --> اضغط هنا.
- بطارية 3 فولت. رابط الشراء من aliexpress --> اضغط هنا.
دائرة ساعة المنبه بإستعمال الاردوينو:
مبدأ عمل متكاملة الوقت الحقيقي DS1307:
DS1307 عبارة عن دائرة متكاملة شائعة الإستخدام في تطبيقات الوقت الحقيقي من أجل عرض التوقيت والحالي والتاريخ، حيث تستطيع حِفظ وعرض المعلومات الخاصة بالساعات والدقائق والثواني بالنسبة للوقت، واليوم والشهر والسنة بالنسبة للتاريخ. تقوم هذه المتكاملة بتصحيح وضبط التاريخ بصورة آلية (أوتوماتيكية) بالنسبة للأشهر التي يبلغ عدد أيامها 30 يوم أو أقل، وهي تحتوي على بيانات كافية من أجل إجراء هذه التصحيحات إلى غاية سنة 2100 وهي تستطيع التمييز بين السنة الكبيسة والسنة البسيطة.
يمكنك ضبط الساعة للعمل سواء بنمط 12 ساعة مع مؤشر الوقت الصباحي (AM) ومؤشر للوقت المسائي (PM) أو بنمط 24 ساعة. يجب توصيل المتكاملة DS1307 مع بطارية خارجية 3 فولت (من نوع CR2032 على سبيل المثال) كمصدر تغذية إحتياطي تلجأ إليه هذه المتكاملة بمجرد وجود خلل بمصدر التغذية الرئيسي. كما يتوجب علينا توصيل كريستالة خارجية ذات تردد 32.768 كيلوهيرتز فهي من سيقوم بتوليد النبضات الخاصة بعداد الزمن.
ننتقل الآن إلى شرح أطراف (pins) المتكاملة DS1307:
- الطرف SQW: طرف الخرج، يقوم بإخراج موجات مربعية بأربعة ترددات مختلفة نستطيع ضبطها برمجيا على: 1 هيرتز أو 4 كيلوهيرتز أو 8 كيلوهيرتز أو 32 كيلوهيرتز.
- الطرف DS: من المُفترض أن يقوم هذا الطرف بإخراج قراء لدرجة الحرارة في حالة قمت بتوصيل مجس الحرارة DS18B20.
- الطرف SCL: مدخل نبضات الساعة.
- الطرف SDA: مدخل/مخرج البيانات لبروتوكول I2C.
- الطرف VCC: المدخل الخاص بتوصيل جهد التغذية (يمكن أن يتراوح هذا الجهد بين 3.3 فولت و 5.5 فولت)
- الطرف GND: الطرف الخاص بتوصيل المأخذ الأرضي.
- الطرف BAT: الطرف الخاص بتوصيل مصدر التغذية الإحتياطي المتمثل في بطارية 3 فولت.
ملاحظة: قبل أن تستطيع إستعمال متكاملة الوقت الحقيقي DS1307 مع الاردوينو يجب عليك أولا تثبيت المكتبة الخاصة بها وهي مكتبة RTClib، والتي يمكنك تحميلها بالضغط هنا.
مبدأ عمل الدائرة:
الاتصال بين الاردوينو والمتكاملة DS1307 سيستعمل بروتوكول الاتصال I2C، وهو (بروتوكول I2C) عبارة عن وصيلة تواصل أو تخاطب بين جهاز سريع كالمتحكم الدقيق وهو ما يُسمى في هذه الحالة بالسيد (master) مثلا وجهاز آخر أقل سرعة كمتكاملة الوقت الحقيقي DS1307 في وضعية الخادم (slave)، ويعتبر الناقل I2C عديم القيمة في حالة عدم وجود توابع كما يمكن له أن يتعامل مع أكثر من سيد.
للاردوينو طرفان خاصان ببروتوكول الاتصال I2C، هما A5 و A4، سنقوم بتوصيلهما مع الطرفين SDA (serial data) و SCL (serial clock) الخاصان بالمتكاملة DS1307.
سنستعمل ثلاثة أزرار من أجل ضبط توقيت المنبه، حيث سنوصلهم مع الأطراف 8،9 و10 الخاصة بالاردوينو على الترتيب وسنطلق عليهم أسماء NEXT، INC وSET على التوالي.
من أجل ضبط ساعة المنبه، نضغط على زر SET، عندها تنتقل الساعة إلى وضع المنبه وتطلب منا أختيار التوقيت الذي نرغب في أن يقوم فيه الطنان بالطنين، نستطيع الآن تغيير الساعات بواسطة زر INC، وبما أن ساعتنا تعمل بنمط 24 ساعة، ستتراوح الأعداد التي سنختارها بين 0 و23، بعد الإنتهاء من إختيار الساعة نضغط على زر NEXT حتى ننتقل إلأى وضعية التعديل على الدقائق، بحيث سنضغط على زر INC مجددا من أجل تغيير الدقائق، وبعدما ننتهي نضغط على زر SET.
الوقت الذي ضبطنا عليه المنبه سيتم تخزينه في الذاكرة الميتة القابلة للبرمجة والمسح الكهربائي (EEPROM) الخاصة بالاردوينو وستتم مقارنتها بصفة مستمرة مع الوقت الحالي، وفي حالة التطابق بينهما سيبدأ الطنان بالرنين، ومن أجل إيقاف صوته المزعج نقوم بالضغط على زر NEXT.
هل يمكن عمل أكثر من منبه
ردحذفنعم، ولكن يجب عليك تعديل كود البرنامج.
حذفأزال المؤلف هذا التعليق.
ردحذفما رسالة الخطأ التي تظهر؟
حذفممكن موقع للتواصل معك لتصحيح المشكله لان مشروعي يعتمد عليه رجاء
حذفممكن موقع للتواصل معك لحل مشكله المكتبه رجاءا
ردحذفArduino: 1.8.16 (Windows 10), Board: "Arduino Uno WiFi"
ردحذفIn file included from C:\Users\ALI\Documents\Arduino\sketch_apr19a\sketch_apr23a\sketch_apr23a.ino:3:0:
C:\Program Files (x86)\Arduino\libraries\RTClib-master\src/RTClib.h:25:10: fatal error: Adafruit_I2CDevice.h: No such file or directory
#include
^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Error compiling for board Arduino Uno WiFi.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
هل قمت بتثبيت المكتبة؟ وهل تستخدم بوردة Arduino UNO (WiFi)؟
حذفنعم ثبت المكتبه واخترتها ولكنها لا تعمل الرجاء موقعك ع الفيس بوك لتواصل معك اسرع
حذفوما هي البوردة التي تستخدمها؟
حذفماقصدك ببوردة ؟ قصدك نوعية الاردوينو
ردحذفنعم
حذفالعفو طلعت المشكله بالاردوينو
ردحذفإرسال تعليق