ساعة الوقت الحقيقي القائمة على Arduino هي ساعة رقمية لعرض الوقت الفعلي باستخدام RTC IC DS1307 الذي يعمل على بروتوكول I2C. تعني ساعة الوقت الحقيقي أنها تعمل حتى بعد انقطاع التيار الكهربائي. عند إعادة توصيل الطاقة ، فإنها تعرض الوقت الفعلي بغض النظر عن الوقت والمدة التي كانت في حالة إيقاف التشغيل. في مشروع ساعة المنبه هذا من Arduino ، استخدمنا وحدة LCD مقاس 16 × 2 لعرض الوقت بتنسيق - "الساعة والدقيقة والثانية والتاريخ والشهر والسنة". تمت إضافة خيار التنبيه أيضًا ويمكننا ضبط وقت التنبيه. بمجرد حفظ وقت التنبيه في EEPROM الداخلي لاردوينو ، يظل محفوظًا حتى بعد إعادة التعيين أو انقطاع التيار الكهربائي. تُستخدم ساعات الوقت الفعلي بشكل شائع في أجهزة الكمبيوتر والمنازل والمكاتب والأجهزة الإلكترونية لدينا لإبقائها محدثة في الوقت الفعلي.
بروتوكول I2C هو طريقة لتوصيل جهازين أو أكثر باستخدام سلكين بنظام واحد ، ولذلك يُطلق على هذا البروتوكول أيضًا اسم بروتوكول سلكين. يمكن استخدامه لتوصيل 127 جهازًا بجهاز أو معالج واحد. تعمل معظم أجهزة I2C بتردد 100 كيلو هرتز.
خطوات كتابة البيانات الرئيسية إلى العبد (وضع الاستلام التابع)
- يرسل شرط START إلى التابع.
- يرسل عنوان العبد إلى العبد.
- أرسل بت كتابة (0) إلى التابع.
- تلقى بت ACK من العبد
- يرسل كلمات العنوان إلى العبد.
- تلقى بت ACK من العبد
- يرسل البيانات إلى العبد.
- تلقى بت ACK من العبد.
- وأخيرًا يرسل شرط STOP إلى العبد.
خطوات قراءة البيانات من العبد إلى السيد (وضع الإرسال التابع)
- يرسل شرط START إلى التابع.
- يرسل عنوان العبد إلى العبد.
- أرسل قراءة بت (1) إلى التابع.
- تلقى بت ACK من العبد
- البيانات المتلقاة من العبد
- تلقى بت ACK من العبد.
- يرسل شرط STOP إلى العبد.
لبناء ساعة رقمية قائمة على RTC DS1307 IC ، استخدمنا هنا Arduino Pro Mini ، ولكن يمكنك أيضًا استخدام أي طراز Arduino آخر مثل Arduino Uno أو Arduino Nano. إلى جانب لوحة Arduino ، DS1307 RTC IC ، استخدمنا وحدة 16x2 LCD لعرض الوقت والتاريخ ، وجهاز osciallator البلوري ، ومنظم الجهد 7805 ، وجرس وعدد قليل من الترانزستورات والمقاومات.
مخطط الدائرة والوصف
في دائرة الساعة الرقمية القائمة على Arduino ، استخدمنا ثلاثة مكونات رئيسية وهي IC DS1307 و Arduino Pro Mini Board ووحدة 16x2 LCD.
هنا يتم استخدام اردوينو لقراءة الوقت من ds1307 وعرضه على شاشة LCD مقاس 16 × 2. يرسل DS1307 الوقت / التاريخ باستخدام سطرين إلى اردوينو. يستخدم الجرس أيضًا لإشارة الإنذار ، والذي يصدر صوتًا عند تنشيط الإنذار. يتم عرض مخطط كتلة أدناه لفهم عمل ساعة الوقت الحقيقي هذه.
كما ترون في الرسم التخطيطي للدائرة ، يتم توصيل دبوس رقاقة DS1307 SDA و SCL بدبابيس اردوينو SDA و SCL مع مقاومة سحب تحمل القيمة الافتراضية عالية عند خطوط البيانات والساعة. يتم توصيل مذبذب الكريستال 32.768 كيلو هرتز بشريحة DS1307 لتوليد تأخير دقيق لمدة ثانية واحدة ، كما يتم توصيل بطارية 3 فولت بالدبوس 3 rd (BAT) من DS1307 والذي يحافظ على تشغيل الوقت بعد انقطاع الكهرباء. شاشة LCD مقاس 16 × 2 متصلة بـ arduino في وضع 4 بت. يتم توصيل دبوس التحكم RS و RW و En مباشرة بـ arduino pin 2 و GND و 3. ودبوس البيانات D0-D7 متصل بـ 4 و 5 و 6 و 7 من اردوينو. يتم توصيل الجرس برقم دبوس اردوينو 13 من خلال ترانزستور NPN BC547 يحتوي على مقاوم 1 k في قاعدته.
ثلاثة أزرار هي تعيين ، INC و Next تستخدم لضبط المنبه على دبوس 12 و 11 و 10 من اردوينو في الوضع المنخفض النشط. عندما نضغط على "تعيين" ، يتم تنشيط وضع ضبط المنبه والآن نحتاج إلى ضبط المنبه باستخدام زر INC ويستخدم الزر "التالي" للانتقال إلى الرقم. يتم عرض إعداد اللوح الكامل لساعة الوقت الفعلي مع التنبيه في الصورة أدناه. يمكنك أيضًا التحقق من برنامج تعليمي مفصل حول المنبه الرقمي باستخدام متحكم AVR.
وصف البرنامج
للبرمجة لساعة الوقت الفعلي هذه ، استخدمنا بعض المكتبات لاستخراج الوقت / التاريخ من DS1307 وللعرض على شاشة LCD ، والتي ترد أدناه:
ويتم إجراء تهيئة RTC و LCD وإخراج الإدخال في حلقة الإعداد.
باقي الأشياء مثل وقت القراءة ، يتم ضبط المنبه في قسم الحلقة الفارغة.