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

ساعة التقاعد / العد التنازلي / الساعة Dn: 4 خطوات (مع الصور)
ساعة التقاعد / العد التنازلي / الساعة Dn: 4 خطوات (مع الصور)

فيديو: ساعة التقاعد / العد التنازلي / الساعة Dn: 4 خطوات (مع الصور)

فيديو: ساعة التقاعد / العد التنازلي / الساعة Dn: 4 خطوات (مع الصور)
فيديو: Part 3 - The Last of the Mohicans Audiobook by James Fenimore Cooper (Chs 11-14) 2024, يوليو
Anonim
ساعة التقاعد / العد حتى / الساعة Dn
ساعة التقاعد / العد حتى / الساعة Dn

كان لدي عدد قليل من شاشات المصفوفة النقطية 8 × 8 LED في الدرج وكنت أفكر في ما يجب فعله بها. مستوحاة من التعليمات الأخرى ، خطرت لي فكرة إنشاء عرض للعد التنازلي / التصاعدي للعد التنازلي إلى تاريخ / وقت مستقبلي ، وإذا مر الوقت المستهدف ، فقم بالعد منه. لقد صنعت هذه الآن ساعة تقاعدي جالسة على الرف.

كانت فكرة وضعها في زجاجة أكثر من مجرد حادث أثناء التفكير في الغلاف. آخرون يضعون السفن في زجاجة ، فلماذا لا تكون الساعة؟

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

اللوازم

1. اردوينو نانو

2. RTC (استخدمت DS3231 المشترك الذي يحتوي أيضًا على ذاكرة EEPROM)

3. 12x 8x8 وحدة مصفوفة نقطية. (كان لدي الوحدات الرباعية التي يسهل ترتيبها)

4. LDR لضبط سطوع الشاشة

5. المقاوم 10 كيلو أوم

6. مكثف 5x 100 فائق التوهج قمع المسامير من الشاشة

7. لزيادة تباين وحدات 8x8 ، استخدمت "Window Film" داكن اللون. تعرض الشاشة مؤشرات LED كنقاط بيضاء إذا لم تكن مضاءة. فيلم النافذة يحولها إلى مظهر أسود لامع.

الخطوة 1: قم بتوصيل المكونات

قم بتوصيل المكونات
قم بتوصيل المكونات
قم بتوصيل المكونات
قم بتوصيل المكونات

لقد استخدمت ثلاث شاشات رباعية لتجميع الشاشة. لإظهار تاريخ بشرطة مائلة والوقت بنقطتين ، نحتاج إلى مساحة لـ 8 أحرف. باستخدام الخط النموذجي 5x7 ، نحتاج إلى ستة كتل 8x8 لكل صف. لقد قطعت إحدى الكتل الرباعية إلى نصفين ورتبتها كصفين في ستة كتل كما هو موضح في مخطط اللوح.

الخطوة 2: أجزاء مطبوعة ثلاثية الأبعاد

أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد
أجزاء مطبوعة ثلاثية الأبعاد

للاحتفاظ بصفين من الشاشة ووضعهما في الزجاجة ، قمت بطباعة حلقات المسافة الدائرية لإطار العرض. لقد أضفت الملفات التي استخدمتها أدناه. لتكون قادرًا على طباعة هذه بدون دعم ، يتم تقسيمها إلى أجزاء. تُظهر لقطة الشاشة الحلقتين الملتصقتين بإطار العرض. غطاء عنق الزجاجة يحتوي على الأزرار الثلاثة للتبديل بين أوضاع العرض وضبط الوقت الحالي والوقت المستهدف. غطاء عنق الزجاجة الذي طبعته في TPU يسمح بإدخال كبل USB في الغطاء دون قطع الموصلات وربطه بلفائف قليلة من الأسلاك. لقد نسيت أن أذكر أنني استخدمت زجاجة نبيذ سعة 1.5 لتر والتي قطعتها من الأسفل. جميع الأجزاء المراد طباعتها مناسبة لسرير طابعة مقاس 20 × 20 سم (8 × 8 بوصات).

الخطوة الثالثة: الكود

يستخدم كود Arduino عددًا قليلاً من المكتبات الشائعة الاستخدام.

MD_MAX72xx

SPI

الأسلاك

RTClib

وحدة زمنية

TimeLib

هناك بضعة أسطر في ملف INO قد تحتاج إلى التغيير:

السطر 38: #define HARDWARE_TYPE MD_MAX72XX:: FC16_HW <- يعتمد على الوحدة النمطية 8x8 واتجاهها

بدلاً من FC16_HW يمكن أن يكون أحد:

- MD_MAX72XX:: PAROLA_HW

- MD_MAX72XX:: GENERIC_HW

- MD_MAX72XX:: ICSTATION_HW

- MD_MAX72XX:: FC16_HW

يستخدم الرمز إعدادات التوقيت المركزي للولايات المتحدة ويحتاج إلى تعديل لمناطق زمنية أخرى:

سطر 53/54:

TimeChangeRule myDST = {"CDT" ، الثاني ، الأحد ، مارس ، 2 ، -300} ؛ // Daylight Time UTC-5TimeChangeRule mySTD = {"CST" ، الأول ، الأحد ، 2 نوفمبر ، -360} ؛ // التوقيت القياسي UTC -6

هذا سهل التعديل. اسم CST / CDT هو مجرد مرجع. لا أعرض الاختصار المكون من ثلاثة أحرف ، لذلك لا يهم. تشير المعلمات التالية إلى أي يوم في الشهر يحدث التبديل. يتم التعديل بالدقائق ، لذا ستعمل المواقع التي تستخدم تعديلات +/- 30 دقيقة أيضًا.

يعمل RTC داخليًا على UTC-Time مما يسمح لمكتبة المنطقة الزمنية بالعمل على النحو المنشود. قد تتساءل لماذا يشير الرمز إلى شريحة DS1307 الأقدم على عكس شريحة الساعة التي استخدمتها ، لكن هذا لا يهم. المكتبة تعمل بشكل جيد مع أي من الشريحتين. يميل DS1307 إلى الانجراف أكثر من DS3132. DS3132 هي الساعة المفضلة. بالنسبة لأولئك الذين يرغبون في إضافة وقت على الإنترنت ، فإن ESP8266 ستؤدي المهمة بسهولة تامة. هذا يمكن أن يجعل RTC عفا عليها الزمن. إذا كنت تجري هذه التغييرات ، فاستخدم Arduino EEPROM لتخزين الوقت المستهدف ، لقد استخدمت RTC EEPROM للقيام بذلك.

الخطوة 4: التشغيل والإعدادات

التشغيل والإعدادات
التشغيل والإعدادات
التشغيل والإعدادات
التشغيل والإعدادات
التشغيل والإعدادات
التشغيل والإعدادات

هناك ثلاثة أزرار

1. القائمة / الإعدادات

2. يصل

3. لأسفل

يتيح زر القائمة التنقل بين أنواع العرض الثلاثة: الوقت الحالي ، والوقت المستهدف ، ووقت دلتا. يعرض وقت دلتا عدد الأيام ، HH / MM / SS بين الوقت الحالي والوقت المستهدف. سيُظهر t- والعد التنازلي إذا كان الهدف في المستقبل أو t + والعدد التصاعدي إذا كان الهدف في الماضي.

لضبط الوقت الحالي أو الهدف ، حدد الوقت الحالي أو عرض الوقت الهدف. لتغيير الوقت ، استمر في الضغط على زر القائمة لمدة ثانيتين ثم حرر الزر الذي سينقلك إلى وضع الإعداد. المجاور "/" أو ":" سوف يتحول إلى "" للإشارة إلى الرقم الذي تقوم بتعديله. استخدم الأزرار لأعلى / لأسفل لضبط hh / mm / ss الفردية و mm / dd / yy. لم أقم بإضافة إعداد للتبديل بين mm / dd / yy و dd / mm / yy ، فهذا يحتاج إلى تغيير في الكود أو ربما شخص ما على استعداد لإضافة هذه الميزة.

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

أضفت مقطع فيديو بسيطًا لإظهار العد. أردت أن أجعلها مثل عرض عجلة الدوران. إذا كنت ترغب في تعديل مدة التغيير ، فإن السطر 69 في INO يمنحك بعض الخيارات لتسريع التغيير أو إبطائه. 120 مللي ثانية ستجعل تمرير الأرقام بطيئًا بدرجة كافية لأنها ستكون عجلة تعمل باستمرار.

آمل أن تكون قد استمتعت بهذه التعليمات.

باتريك جيشويندنر

موصى به: