جدول المحتويات:

ساعة عرض مصفوفة LED صغيرة: 8 خطوات
ساعة عرض مصفوفة LED صغيرة: 8 خطوات

فيديو: ساعة عرض مصفوفة LED صغيرة: 8 خطوات

فيديو: ساعة عرض مصفوفة LED صغيرة: 8 خطوات
فيديو: ☑️ LED Matrix أردوينو للمبتدئين - التحكم في 2024, يوليو
Anonim
Image
Image
ساعة عرض مصفوفة LED صغيرة
ساعة عرض مصفوفة LED صغيرة
ساعة عرض مصفوفة LED صغيرة
ساعة عرض مصفوفة LED صغيرة
ساعة عرض مصفوفة LED صغيرة
ساعة عرض مصفوفة LED صغيرة

كنت أرغب دائمًا في الحصول على ساعة سطح مكتب قديمة الطراز ، تبدو وكأنها شيء من أفلام التسعينيات ، مع وظائف متواضعة جدًا: ساعة الوقت الحقيقي ، والتاريخ ، وتغيير ضوء الخلفية ، والصافرة ، وخيار التنبيه. لذلك ، جئت بفكرة ، لبناء واحد: جهاز رقمي ، يعتمد على متحكم دقيق مع جميع الميزات التي ذكرتها أعلاه ، ويتم تشغيله بواسطة USB - إما كمبيوتر شخصي أو أي شاحن USB محمول. نظرًا لأنني أردت جعلها قابلة للبرمجة ، مع تعديل القوائم والإعدادات ، كان وضع MCU أمرًا لا مفر منه في هذا المشروع. تم اختيار ATMEGA328P IC (التي تتكون منها كل لوحة Arduino Uno) ليكون "عقل" الدائرة (بالحديث عن ذلك ، كان لدي الكثير منهم). أدى الجمع بين بعض الأجزاء الإلكترونية مثل RGB LED وشريحة ضبط الوقت ذات الشحن الهزيل وأزرار الضغط إلى تمكين ولادة المشروع بأكمله - ساعة سطح مكتب بشاشة LED صغيرة الحجم قابلة للبرمجة.

لذا ، بعد أن غطينا كيان المشروع ، فلنقم ببنائه

الخطوة 1: الفكرة

الفكرة
الفكرة

كما ذكرنا من قبل ، يحتوي أجهزتنا على بعض شاشات عرض مصفوفة LED ذات المظهر الجميل ، وإضاءة خلفية RGB LED متغيرة الألوان ، ورقاقة ضبط الوقت ذات الشحن الهزيل ، ووحدة إمداد طاقة USB مريحة ، وعلبة صغيرة الحجم.

دعنا نصف مخطط كتلة تشغيل الجهاز بالأجزاء:

1. وحدة إمداد الطاقة:

نظرًا لأن الجهاز يعمل على 5 Volts DC ، فإن مكون مصدر الطاقة يتكون من دائرتين منفصلتين:

  • مدخل Micro-USB - للحصول على شاحن مباشر / مصدر طاقة للكمبيوتر الشخصي.
  • 5V دائرة منظم الجهد الخطي على أساس LM7805 IC.

تعد دائرة LM7805 IC اختيارية ، إلا إذا كنت تفضل تنفيذ توفر مدخلات مختلفة لإمداد الطاقة. في أجهزتنا ، يتم استخدام Micro-USB PSU.

2. وحدة متحكم دقيق:

متحكم ATMEGA328P ، يعمل بمثابة "دماغ" للجهاز بأكمله. والغرض منه هو التواصل مع جميع الدوائر الطرفية ، وتوفير البيانات المطلوبة وواجهة مستخدم جهاز التحكم. نظرًا لأن المتحكم الدقيق الذي تم اختياره هو ATMEGA328P ، فسنحتاج إلى Atmel Studio ومعرفة أساسية بلغة C (يتم وصف المخططات وتسلسلات البرمجة في الخطوات الإضافية).

3.دائرة ساعة الوقت الحقيقي:

ثاني أهم دائرة في الجهاز. والغرض منه هو توفير بيانات التاريخ والوقت ، مع متطلبات تخزينها ، دون الاعتماد على اتصال طاقة الإدخال ، أي يتم تحديث بيانات الوقت في وضع الوقت الفعلي. من أجل جعل مكون RTC قادرًا على الاستمرار في تغيير بيانات الوقت / التاريخ ، تتم إضافة بطارية خلية عملة 3 فولت إلى الدائرة. IC هو DS1302 ، يتم وصف تشغيله في خطوات أخرى.

4. واجهة الإدخال - مفاتيح زر الضغط:

توفر مفاتيح الإدخال PB واجهة إدخال للمستخدم. تتم معالجة هذه المفاتيح في برنامج MCU وجهاز التحكم المحدد.

5. شاشة LED مصفوفة

تتكون شاشة الجهاز من مصفوفتين HCMS-2902 الأبجدية الرقمية LED ملفوفة IC ، كل IC به 4 أحرف من مصفوفة LED صغيرة 5x7. هذه الشاشات سهلة الاستخدام ومدعومة بالاتصال بثلاثة أسلاك وصغيرة الحجم - كل ما نحتاجه في هذا المشروع.

6. RGB الخلفية:

تعتمد الإضاءة الخلفية المتغيرة اللون على RGB LED خارجي ، يتم التحكم فيه بواسطة إشارات PWM القادمة من MCU. في هذا المشروع ، يحتوي RGB LED على إجمالي 4 دبابيس: R ، G ، B والمشتركة ، حيث يتم التحكم في لوحة الألوان R ، G ، B عبر PWM بواسطة MCU.

7. الجرس:

تُستخدم دائرة الجرس كإخراج صوتي ، بشكل أساسي لأغراض الإنذار. يستخدم مفتاح BJT لتوفير تيار كافٍ لمكون الجرس ، لذلك سيكون حجمه مرتفعًا بما يكفي لإيقاظ شخص على قيد الحياة.

الخطوة 2: الأجزاء والأدوات

قطع غيار وأدوات
قطع غيار وأدوات

1- الإلكترونيات:

أ.مكونات متكاملة وفعالة:

  • 1 × ATMEGA328P-MCU
  • 2 × HCMS2902 - شاشات AVAGO
  • عدد 1 DS1302 - RTC
  • 1 × 2N2222A - BJT (NPN)

المكونات السلبية:

  • المقاومات:

    • 5 × 10 كيلو
    • 1 × 180R
    • 2 × 100R
  • المكثفات:

    • 3 × 0.1 فائق التوهج
    • 1 × 0.47 فائق التوهج
    • 1 × 100 فائق التوهج
    • 2 × 22 بكسل
  • 1 × 4 سنون RGB LED
  • 1 × الجرس
  • 1 × 32.768 كيلو هرتز كريستال

موصلات:

  • 1 × موصل Micro-USB
  • 2 × 6 دبوس موصل درجة الصوت القياسية (100 ميل).
  • 2 x 4-pin قياسي موصل الملعب (100 ميل).
  • 1 × علبة بطارية خلية كوين.

د- متفرقات:

  • 3 مفاتيح الضغط على زر SPST
  • 1 × 3 فولت بطارية خلية عملة.

E. اختياري PSU:

  • 1 × LM7805 - منظم خطي
  • 2 × 0.1 فائق التوهج كاب
  • 2 × 100 فائق التوهج كاب

II. ميكانيكي:

  • 1 × حاوية بلاستيكية
  • 4 × ملحقات مطاطية
  • 1 × نموذج لوحة لحام
  • 1 × رأس MCU (في حالة فشل وحدة التحكم الدقيقة)
  • 2 × مسامير صغيرة 8 مم
  • غسالات 2 × 8 مم

ثالثا. الأدوات والمواد:

  • أسلاك اللحام
  • تقلص الأنابيب
  • لحام القصدير
  • لحام حديد
  • القاطع
  • كماشة
  • ملاقيط
  • رأس المثقاب
  • ملف صغير الحجم
  • مفكات مختلفة
  • الفرجار
  • المقياس المتعدد
  • اللوح (اختياري)
  • كابل Micro USB
  • ملف متوسط الحجم
  • مسدس الغراء الساخن
  • مبرمج AVR ISP

رابعا. برمجة:

  • Atmel Studio 6.3 أو 7.0.
  • ProgISP أو AVRDude
  • Microsoft Excel (لإنشاء أحرف العرض)

الخطوة 3: وصف المخططات

وصف المخططات
وصف المخططات

من أجل تسهيل فهم تشغيل الدائرة ، يتم تقسيم خطوة التخطيطات إلى سبع مجموعات فرعية. يجب أن تلاحظ أن أسماء الشبكة محددة في الصفحة التخطيطية تحدد أيضًا الاتصالات بين الدوائر الفرعية المنفصلة للجهاز.

أ. لوحة المكونات الرئيسية:

كما ذكرنا من قبل ، يتم وضع جميع الدوائر الفرعية المناسبة التي نريد أن نكون "داخل" الجهاز ، على لوحة نموذج أولي مقطوع واحد. دعنا ننتقل إلى شرح عملية الدوائر الموضوعة على اللوحة الرئيسية:

1. دائرة متحكم دقيق:

MCU المستخدم في هذا المشروع هو ATMEGA328P. يتم تشغيله بواسطة مصدر طاقة خارجي 5 فولت ، في هذه الحالة - موصل USB الصغير. يتم توصيل جميع دبابيس الإدخال / الإخراج المناسبة وفقًا لمتطلبات التصميم. من السهل فهم تعيين منافذ الإدخال / الإخراج ، حيث يتم تحديد جميع أسماء الشبكات تمامًا كما سيتم استخدامها في خطوة البرمجة. يحتوي MCU على دائرة إعادة تعيين RC بسيطة ، يتم استخدامها إما في تسلسل البرمجة وتهيئة الطاقة.

الجزء الحاسم من MCU هو دائرة البرمجة. يوجد موصل برمجة مكون من 6 سنون - J5 ، تأكد من أن شبكات VCC و GND و RESET مشتركة مع مبرمج ISP الخارجي ولوحة المكونات الرئيسية.

2. حلبة ساعة الوقت الحقيقي:

الدائرة التالية هي جزء هامشي رئيسي في المشروع. DS1302 عبارة عن دائرة متكاملة لضبط الوقت ذات شحن هزيل ، والتي توفر قيم الوقت والتاريخ المعالجين لوحدة المعالجة الخاصة بنا. يتصل DS1302 مع MCU عبر واجهة ثلاثية الأسلاك ، على غرار اتصال SPI ثلاثي الأسلاك ، على الأسطر التالية:

  • RTC_SCK (الإخراج): يقوم بالقيادة وأخذ عينات من البيانات التي يتم إرسالها على خط SDO.
  • RTC_SDO (I / O): خط قيادة البيانات. يعمل كإدخال إلى MCU عند تلقي بيانات الوقت / التاريخ وكإخراج عند نقل البيانات (راجع خطوة أساسيات البرمجة لمزيد من التوضيح).
  • RTC_CE: (الإخراج): خط تمكين نقل البيانات. عند ضبط HIGH بواسطة MCU ، تكون البيانات جاهزة للإرسال / الاستقبال.

يتطلب DS1302 مذبذب بلوري خارجي 32.768 كيلو هرتز لسلوك الدائرة المناسب. من أجل تجنب الانجراف الكبير في نظام عد الدائرة (ظاهرة الانجراف أمر لا مفر منه في هذه الأنواع من الدوائر المتكاملة) ، هناك حاجة لوضع مكثفات معايرة على كل دبوس بلوري (انظر الأجزاء X1 و C8 و C9 في المخططات). كانت 22pF هي القيم المثلى بعد الكثير من التجارب مع تدابير حفظ الوقت في هذا المشروع ، لذلك ، عندما تكون على وشك لحام الدائرة تمامًا ، تأكد من وجود خيار لاستبدال هذه المكثفات بأخرى ذات قيم أخرى. لكن 22pF للوحة صغيرة الحجم عملت بشكل جيد مع انجراف صغير جدًا (7 ثوانٍ في الشهر).

العنصر الأخير وليس الأخير في هذه الدائرة - يجب وضع بطارية خلية عملة 3 فولت على اللوحة من أجل توفير طاقة كافية لـ DS1302 IC حتى تستمر في عملية عد الوقت.

4. 8 أحرف مصفوفة LED:

يعتمد عرض الجهاز على 2 × 4 أحرف لدائرة عرض مصفوفة LED ، مبرمجة عبر واجهة ثلاثية الأسلاك ، على غرار DS1302 الخاص بدائرة RTC ، مع اختلاف واحد ، يتم تعريف خط توفير البيانات (SDI) على أنه إخراج MCU (ما لم ترغب في إضافة القدرة على التحقق من الحالة لدائرة العرض الخاصة بك). يتم دمج شاشات العرض في سلسلة امتدادات ثلاثية الأسلاك ، وبالتالي يعمل كلا المرحلتين كجهاز عرض واحد ، حيث توجد إمكانية لبرمجته لجميع تعريف أحرف العرض (انظر مجموعة سلسلة SPI). جميع أسماء الشبكة للدائرة ، تطابق اتصالات MCU المناسبة - لاحظ أن هناك شبكات مشتركة ، والتي تنشئ اتصالًا بين شاشات العرض ، ولا تحتاج thefe إلى توصيل كل من واجهات العرض التعليمية بـ MCU. يتم تحديد تسلسل البرمجة وبناء الشخصية في خطوات أخرى. دائرة واجهة المستخدم:

تنقسم واجهة المستخدم إلى مجموعتين فرعيتين - أنظمة الإدخال والإخراج: نظام الإدخال: يحتوي الجهاز نفسه على مدخلات مقدمة من المستخدم محددة على أنها ثلاثة مفاتيح زر ضغط SPST ، مع مقاومات سحب إضافية ، من أجل دفع المنطق المحدد إما HIGH أو LOW إلى MCU. توفر هذه المفاتيح نظام تحكم للخوارزمية المبرمجة بالكامل ، حيث توجد حاجة لضبط قيم الوقت / التاريخ ، والتحكم في القائمة ، وما إلى ذلك.

6. نظام الإخراج:

A. توفر دائرة الجرس إخراجًا صوتيًا في كلتا الحالتين ، ويقوم تبديل القائمة باستلام الصوت وخوارزمية الإنذار. يتم استخدام ترانزستور NPN كمفتاح ، مما يوفر تيارًا كافيًا للجرس ، مما يجعله يبدو في كثافة مناسبة. يتم التحكم في الطنان مباشرة بواسطة برنامج MCU. يستخدم RGB LED كجزء من الإضاءة الخلفية للجهاز. يتم التحكم فيه مباشرة بواسطة MCU ، مع أربعة خيارات لاختيار الإضاءة الخلفية: أوضاع RED أو GREEN أو BLUE أو PWM أو OFF. لاحظ أن المقاومات المتصلة في سلسلة بمصابيح LED R و G و B لها قيم مختلفة ، لأن كل لون له شدة مختلفة على تيار ثابت. بالنسبة لمصابيح LED الخضراء والزرقاء ، هناك نفس الخصائص ، عندما يكون اللون الأحمر أكثر كثافة قليلاً. وبالتالي ، فإن مؤشر LED الأحمر متصل بقيمة المقاومة الأكبر - في هذه الحالة: 180 أوم (انظر شرح RGB LED). موصلات:

يتم وضع الموصلات على اللوحة الرئيسية من أجل تمكين الاتصال بين مكونات الواجهة الخارجية مثل: الشاشة ، RGB LED ، إدخال الطاقة ومفاتيح الأزرار الانضغاطية ، واللوحة الرئيسية. كل موصل مخصص لدائرة مختلفة ، وبالتالي ينخفض تعقيد تجميع الجهاز بشكل كبير. كما ترى في المخططات ، يكون كل ترتيب لشبكات الموصل اختياريًا ويمكن تبديله ، إذا كان ذلك يجعل عملية الأسلاك أكثر بساطة. بعد أن غطينا جميع مفاهيم المخططات ، دعنا ننتقل إلى الخطوة التالية.

الخطوة 4: اللحام

لحام
لحام
لحام
لحام
لحام
لحام

ربما بالنسبة للبعض منا هي أصعب خطوة في المشروع بأكمله. من أجل تسهيل عمل الجهاز في أسرع وقت ممكن ، يجب إكمال عملية اللحام بالتسلسل التالي:

1. MCU وموصل البرمجة: يوصى بتوصيل رأس 28 دبوسًا بدلاً من MCU نفسها حتى تتمكن من استبدال MCU IC في حالة الفشل. تأكد من إمكانية برمجة الجهاز وتشغيله. يوصى بوضع ملصق وصف الدبوس على موصل البرمجة (انظر الصورة الثالثة).

2. دائرة RTC: بعد لحام جميع الأجزاء المطلوبة ، تأكد من سهولة استبدال مكثفات المعايرة. إذا كنت ترغب في استخدام علبة بطارية خلوية على شكل عملة معدنية 3 فولت - فتأكد من أنها تتطابق مع أبعاد حاوية الجهاز.

3. العرض: يجب أن يتم لحام اثنين من الدوائر المتكاملة للعرض على لوحة صغيرة الحجم منفصلة (صورة 1). بعد لحام جميع الشباك المطلوبة ، هناك حاجة لإعداد أسلاك خارج اللوح (صورة 4): يجب لحام هذه الأسلاك وإجرائها على جانب لوحة العرض ، لاحظ أن التوتر والضغط الميكانيكي المطبق على الأسلاك لن تؤثر على مفاصل اللحام على لوحة العرض.

4. على الأسلاك من الخطوة السابقة ، يجب وضع ملصقات الملصقات - وهذا من شأنه أن يجعل عملية التجميع أسهل بكثير في الخطوة التالية. خطوة اختيارية: أضف موصل ذكر أحادي السن لكل سلك (نمط اردوينو).

5. موصلات اللحام المتبقية على اللوحة الرئيسية ، بما في ذلك المكونات الطرفية. مرة أخرى ، يوصى بوضع ملصقات مع وصف دبوس لكل موصل.

6. دائرة الجرس: يوجد الجرس داخل الجهاز ، لذلك يجب أن يكون ملحومًا على اللوحة الرئيسية ، وليست هناك حاجة للموصل المترابط.

7. RGB LED: من أجل توفير مساحة اللوحة الرئيسية ، لقد قمت بلحام المقاومات المتسلسلة على دبابيس LED ، حيث يتوافق كل مقاوم مع لونه المتطابق ودبوس MCU المناسب (صورة 5).

الخطوة 5: التجميع

تجميع
تجميع
تجميع
تجميع
تجميع
تجميع

تحدد هذه الخطوة مظهر المشروع - كهربائي وميكانيكي. إذا تم أخذ جميع الملاحظات الموصى بها في الاعتبار ، تصبح عملية التجميع سهلة للغاية. يوفر التسلسل التالي خطوة بخطوة معلومات كاملة عن العملية:

الجزء أ: الضميمة

1. قم بحفر ثلاث ثقوب ، وفقًا لقطر مقبض زر الضغط (3 مم في هذه الحالة). حفر حفرة واحدة مخصصة للجرس على جانب العلبة. يمكن استخدام أي قطر مطلوب لقمة الحفر.3. حفر ثقب صغير كأساس للطحن حسب موصل USB الذي يجب أن تستخدمه (Micro USB في هذه الحالة). بعد ذلك ، قم بإجراء عملية الطحن باستخدام ملف صغير الحجم ، لتتناسب مع أبعاد الموصل.4. حفر حفرة كبيرة نسبيا كأساس للطحن. قم بالطحن بملف متوسط الحجم ، حسب أبعاد العرض. تأكد من وجود الدوائر المتكاملة للعرض على الجانب الخارجي من العلبة. قم بعمل ثقب متوسط الحجم أسفل الجهاز حسب قطر RGB LED الجزء ب - المرفقات:

1. لحام سلكين لكل من أزرار الدفع الثلاثة (GND والإشارة). يوصى باستخدام ملصقات ملصقات وموصلات ذات دبوس واحد على الأسلاك. قم بتوصيل أربعة أسلاك معدة إلى دبابيس RGB LED. ضع ملصقات الملصقات وأنابيب الانكماش على وصلات اللحام.3. قم بتركيب أربع أرجل مطاطية أسفل الجهاز الجزء ج - توصيل الأجزاء:

1. ضع RGB LED في الجزء السفلي من العلبة ، قم بتوصيله بموصل مخصص على اللوحة الرئيسية. نعلقه بالغراء الساخن.2. ضع ثلاثة مفاتيح ضغط ، وقم بتوصيلها بموصل مخصص على اللوحة الرئيسية ، ثم قم بتوصيلها بالغراء الساخن.3. ضع موصل USB ، وقم بتوصيله بدبابيس تزويد طاقة موصل البرمجة (VCC و GND). تأكد من تطابق قطبية خطوط إمداد الطاقة مع الأجزاء الملحومة. نعلقه بالغراء الساخن 4. ضع لوحة العرض ، وقم بتوصيلها بموصل مخصص. نعلقه بالغراء الساخن.

1. يوصى بإضافة أزواج صامولة برغي إلى حاوية اللوحة الرئيسية والغطاء العلوي (كما هو موضح في هذه الحالة). من أجل تجنب فشل الأسلاك المكسورة ، يتم إرفاقها بمظهرها داخل العلبة.

الخطوة 6: مقدمة موجزة عن البرمجة

مقدمة موجزة عن البرمجة
مقدمة موجزة عن البرمجة
مقدمة موجزة عن البرمجة
مقدمة موجزة عن البرمجة
مقدمة موجزة عن البرمجة
مقدمة موجزة عن البرمجة

بعد أن يتم لحام جميع الأجزاء ، يوصى بإجراء اختبار أولي للجهاز قبل الانتقال إلى خطوة التجميع النهائية ، حيث تتم كتابة كود MCU في C ، ويتم برمجة ATMEGA328P عبر أي مبرمج ISP (هناك أنواع مختلفة من أجهزة برمجة Atmel: AVR MKII ، AVR DRAGON وما إلى ذلك - لقد استخدمت مبرمج USB ISP رخيصًا من eBay ، يتم التحكم فيه بواسطة برنامج ProgISP أو AVRDude). يجب أن تكون بيئة البرمجة Atmel Studio 4 وما فوق (أوصي بشدة بأحدث إصدارات البرنامج). إذا تم استخدام مبرمج خارجي غير Atmel Studio ، فهناك حاجة لإعطاء مسار ملف.hex إلى برنامج البرمجة (يوجد عادةً في مجلد Debug أو Release الخاص بالمشروع). تأكد من أنه قبل الانتقال إلى خطوة التجميع ، يمكن برمجة الجهاز ، وأن أي عملية بناء مشروع وتجميع أساسي مخصصة لـ AVR تعتمد على متحكم ATMEGA328P (انظر البرنامج التعليمي Atmel Studio).

الخطوة 7: وصف الكود

وصف الكود
وصف الكود
وصف الكود
وصف الكود

يتم تقسيم خوارزمية رمز القرار إلى طبقتين شبه منفصلتين: 1. الطبقة الأساسية: الاتصال بالدوائر الطرفية ، تعريف عمليات الجهاز ، التهيئة وإعلانات المكونات 2. طبقة الواجهة: تفاعل جهاز المستخدم ، وظائف القائمة ، ضبط الساعة / الجرس / اللون / التنبيه ، تسلسل البرنامج موصوف في الصورة. 1 ، حيث تتوافق كل كتلة مع حالة MCU. يعمل البرنامج الموصوف كـ "نظام تشغيل" أساسي يوفر واجهة بين الأجهزة والعالم الخارجي. يصف الشرح التالي عملية البرنامج الأساسية حسب الأجزاء: الجزء أ: الطبقة الأساسية:

1. تهيئة MCU I / O: أولاً وقبل كل شيء ، هناك حاجة لتهيئة مكونات الأجهزة: - الثوابت المستخدمة في الكود. - منافذ الإدخال / الإخراج - الواجهة. - إعلانات الاتصالات الطرفية.

2. الوظائف العامة الأساسية: يتم استخدام بعض الوظائف بواسطة مجموعات رموز منفصلة ، وتحديد العمليات على المسامير التي يتحكم فيها البرنامج: - تمكين / تعطيل RTC واتصال لوحة العرض. - تشغيل / إيقاف تشغيل إصدار صوت الجرس. - 3-Wire Clock وظائف لأعلى / لأسفل. - عرض وظائف إنشاء الأحرف.3. تهيئة الأجهزة الطرفية: بعد تكوين منافذ الإدخال / الإخراج ، يحدث الاتصال بين تعريف وظائف الدوائر. عند الانتهاء - تبدأ MCU في تهيئة RTC ودوائر العرض باستخدام الوظائف التي تم تحديدها أعلاه.

4. تعريف الوظائف الأساسية: في هذه المرحلة ، يكون الجهاز جاهزًا وجاهزًا لإجراء الاتصالات مع بعض الدوائر الطرفية. تحدد هذه الوظائف: - مفتاح التحكم في التبديل - تشغيل RGB LED (خاصة PWM) - مولد الموجة المربعة للجرس

5. وظائف العرض: لم أجد الكثير على الإنترنت حول HSMS ICs التي استخدمتها ، لذلك قمت بكتابة مكتبتها بنفسي. توفر وظائف العرض وظائف كاملة لعرض الأحرف ، بما في ذلك عرض أحرف ASCII وأي أعداد صحيحة. تتم كتابة الوظائف بالطريقة المعممة ، لذلك إذا كانت هناك حاجة لاستدعاء وظائف العرض من أي جزء من الكود ، فمن السهل استخدامها نظرًا لتعميمها من خلال العملية (على سبيل المثال: عرض السلسلة وعرض حرف واحد وما إلى ذلك).

6. وظائف تشغيل RTC: تتم كتابة جميع وظائف RTC بطريقة عامة (على غرار مجموعة وظائف العرض) وفقًا لتشغيل DS1302 IC. يعتمد الرمز على مكتبة مكتوبة ، وهي متوفرة في العديد من الأشكال على gitHub. كما سترى في الكود النهائي ، يتم تضمين مجموعة وظائف العرض و RTC في ملفات منفصلة.c و. h. الجزء ب - طبقة الواجهة:

1. الوظيفة الرئيسية: في القسم الرئيسي الفارغ () ، يوجد إعلان لجميع وظائف التهيئة الأساسية. مباشرة بعد تهيئة جميع المكونات ، تدخل MCU في حلقة لا نهائية ، حيث يتحكم المستخدم في وظائف الجهاز.

2. مفاتيح التحكم في الوقت الفعلي والإضاءة الخلفية والشاشة: أثناء التشغيل في حلقة لا نهائية ، تقوم MCU بالتحديث على كل جزء من أجزاء الجهاز. يقوم باختيار البيانات التي سيتم عرضها ، والزر الذي تم الضغط عليه ووضع الإضاءة الخلفية الذي تم اختياره.

3. وظائف قائمة المستخدم: هذه الوظائف لها شكل يشبه الشجرة (انظر الصورة X) ، حيث يتم تعريف نظام القائمة والتسلسل الهرمي كجهاز حالة. يتم التحكم في كل آلة حالة عن طريق إدخال المستخدم - مفاتيح زر الضغط ، وبالتالي عند الضغط على زر الضغط المناسب - ستغير آلة الحالة قيمتها. إنه مصمم بطريقة يتم فيها تغيير أي من التغييرات في الجهاز التي يتم إجراؤها في القائمة على الفور.

4.تبديل قائمة المستخدم: عندما يتم توفير مدخلات المستخدم ، يجب أن تغير حالة القائمة حالتها. لذلك ، توفر هذه الوظائف تحكمًا يعتمد على المستخدم في جهاز الحالة. في هذه الحالة بالذات: التالي والسابق وموافق.

الخطوة 8: الكود النهائي والملفات المفيدة

وهذا كل شيء! في هذه الخطوة ، يمكنك العثور على جميع الملفات التي قد تحتاجها: - مخططات كهربائية - أكمل كود المصدر - عرض منشئ الأحرف ميزة اختيارية: هناك مجموعة متنوعة من الأحرف المتاحة للعرض في مكتبة العرض المرحلي ، لكن بعضها غير مدرج. إذا كنت ترغب في إنشاء أحرف بنفسك ، أضف حالة الحالة بمرجع ASCII في وظيفة Print_Character ('') (انظر وظائف display.c). آمل أن تجد هذا Instructable مفيدًا:) شكرًا على القراءة!

موصى به: