في هذا البرنامج التعليمي ، سنقوم بإنشاء ساعة رقمية عن طريق ربط وحدة RTC DS3231 مع MSP430 وعرض الوقت والتاريخ على شاشة LCD مقاس 16 × 2. MSP-EXP430G2 هي أداة تطوير تُعرف أيضًا باسم LaunchPad توفرها شركة Texas Instruments للتعلم والممارسة على كيفية استخدام وحدات التحكم الدقيقة الخاصة بهم. تندرج هذه اللوحة ضمن فئة خط القيمة MSP430 حيث يمكننا برمجة جميع وحدات التحكم الدقيقة من سلسلة MSP430. إذا كنت مستخدمًا جديدًا لبرنامج MSP ، فتحقق من البرنامج التعليمي لبدء استخدام MSP430.
المواد المطلوبة:
- MSP430
- وحدة DS3231 RTC
- وعاء - 10 كيلو
- وحدة LCD 16 * 2
- توصيل الأسلاك
- اللوح
ما هو RTC ؟؟
DS3231 هو وحدة نمطية RTC (ساعة الوقت الحقيقي). يتم استخدامه للحفاظ على التاريخ والوقت لمعظم مشاريع الإلكترونيات. تحتوي هذه الوحدة على مصدر طاقة خلية العملة المعدنية الخاص بها والتي تحافظ باستخدامه على التاريخ والوقت حتى عند إزالة الطاقة الرئيسية أو إعادة تعيين وحدة MCU. لذلك بمجرد أن نحدد التاريخ والوقت في هذه الوحدة ، سوف نتابعها دائمًا. هناك عدة أنواع من RTC ICs المتاحة مثل DS1307 و DS3231 وما إلى ذلك.
لقد استخدمنا سابقًا RTC مع متحكمات دقيقة أخرى في المشاريع التالية:
ملاحظة: عند استخدام هذه الوحدة لأول مرة ، عليك ضبط التاريخ والوقت. يمكنك أيضًا استخدام RTC IC DS1307 ، وقد استخدمنا سابقًا DS1307 مع Arduino.
توصيل DS3231 RTC بـ MSP430:
يرد أدناه مخطط الدائرة للساعة الرقمية القائمة على متحكم MSP430 . كما ذكرنا سابقًا ، يعمل DS3231 بمساعدة اتصال I2C ، لذا سيكون به ساعة تسلسلية (SCL) ودبوس بيانات تسلسلية (SDA) والذي يجب توصيله بدبابيس I2C على MSP430 الخاص بنا وهو الرقم 9 (PIN 2.1) ، SCL) والدبوس 10 (PIN 2.2 ، SDA).
يعطي MSP430 3.3V Vcc لكننا نحتاج إلى 5V لتوصيله بوحدة LCD و RTC. لذلك ، سوف نستخدم الاختراق ، هناك وصلة مرور متاحة تسمى TP1 بالقرب من موصل كابل USB. يمكنك أن تأخذ 5V من هناك.
مخطط الرسم البياني:
برمجة MSP430 لوحدة RTC:
نحن هنا نستخدم Energia IDE للبرمجة. إنه نفس Arduino IDE وسهل الاستخدام. إذا كنت جديدًا على MSP و energia ، فابدأ في البدء مع MSP باستخدام Energia IDE. لواجهة وحدة RTC ، نحتاج إلى مكتبة لهذه اللوحة. قم بتنزيل مكتبة RTC من هذا الرابط وقم بتثبيتها.
نحتاج أيضًا إلى مكتبات Wire (المستخدمة في اتصالات I2C) ومكتبات الكريستال السائل المثبتة مسبقًا في Energia IDE.
تم تقديم الرمز الكامل لهذه الساعة الرقمية MSP430 في نهاية هذه المقالة. الكود بسيط وسهل الفهم. نحن هنا نوضح أجزاء قليلة منه.
أولاً ، علينا تضمين المكتبات الضرورية.
المكتبة أدناه مخصصة لاتصالات I2C بين وحدة RTC و MSP430. تم تحديد دبابيس SDA و SCK بالفعل في هذه المكتبة ، لذلك لا يتعين علينا الإعلان عن هذه الدبابيس بشكل منفصل.
#تضمن
ثم قمنا بتضمين مكتبة RTClib.h لساعة RTC و LiquidCrystal.h لوظائف LCD.
# تضمين "RTClib.h" # تضمين
بعد ذلك ، يتعين علينا إنشاء مثيل لتهيئة وحدة RTC الخاصة بنا.
RTC_DS3231 rtc ؛
ثم قم بعمل مصفوفة بالحجم 7 وقم بتخزين جميع الأيام السبعة مع الاسم فيها.
char daysOfTheWeek = {"الأحد" ، "الإثنين" ، "الثلاثاء" ، "الأربعاء" ، "الخميس" ، "الجمعة" ، "السبت"} ؛
هنا إعلان دبابيس MSP430 لاستخدامه بواسطة شاشة LCD: (RS (P2.0) ، EN (P1.4) ، D4 (P1.5) ، D5 (P2.3) ، D6 (P2.4) ، D7 (P2.5))
LiquidCrystal LCD (8 ، 6 ، 7 ، 11 ، 12 ، 13) ؛
في الإعداد الفارغ () ، قمنا بتهيئة الواجهة على شاشة LCD و RTC وحددنا أبعاد (العرض والارتفاع) للشاشة ، يجب استدعاء ()
قبل أي أوامر مكتبة أخرى.
إعداد باطل () { lcd.begin (16، 2) ؛ lcd.setCursor (3.0) ؛ lcd.print ("ساعة RTC") ؛ تأخير (3000) ؛ lcd.clear () ؛ rtc.begin () ، // rtc.adjust (DateTime (F (__ DATE__)، F (__ TIME__))) ؛ }
الآن ، الوقت المعروض على الشاشة صحيح ولكن هناك مشكلة ، في كل مرة تقوم فيها بإعادة تشغيل / إعادة تشغيل وحدة التحكم الدقيقة الخاصة بك ، ستعرض شاشة LCD الوقت الذي قمت فيه بتحميل الرمز. هذا لأن الدالة rtc.adjust () قد خزنت وقت جهاز الكمبيوتر الخاص بك ، لذلك عند إعادة الضبط ، يبدأ ذلك الوقت.
لإصلاح هذه المشكلة ، قم أولاً بتحميل البرنامج باستخدام وظيفة rtc.adjust () بدون تعليق. ثم ، قم بالتعليق على نفس السطر على الفور وقم بتحميل البرنامج مرة أخرى. الآن ، تم تعيين التاريخ والوقت ولن يتأثروا بإعادة ضبط وحدة التحكم الدقيقة.
في وظيفة الحلقة ، نأخذ التاريخ والوقت من وحدة RTC ونخزنها في المتغير المحدد مسبقًا المسمى الآن ونعرضه على شاشة LCD باستخدام وظيفة lcd.print () .
حلقة باطلة () { DateTime now = rtc.now () ؛ lcd.clear () ؛ lcd.setCursor (3.0) ؛ lcd.print (now.day () ، DEC) ؛ lcd.print ("/") ؛…. …….
يتم إعطاء رمز كامل والفيديو أدناه.