الساعة الثنائية تفعل ذلك بنفسك. ساعة ثنائية DIY (Mega32 ، DS1307). خوارزمية الساعة

صنع ساعة ثنائية هو حلم كل المهووسين في العالم ، أليس كذلك؟ (... أو ربما استخدم الليزر الأزرق في السيف الضوئي :)). تصورت هذه الفكرة عندما كنت أدرس العام الماضيفي المدرسة ، ثم قررت لاحقًا تصميم وبناء ساعة يد ثنائية.

في هذه اللحظةأنا أدرس فقط المتحكمات الدقيقة ، لذلك اخترت لهذا المشروع المشهور PIC16F628.

للإشارة إلى الوقت بالساعات ، يتم استخدام 4 مصابيح LED لعرض الساعات و 6 مصابيح LED لعرض الدقائق:

يمكنك أيضًا استخدام المصابيح الخضراء للإشارة إلى الساعات ، ومصابيح LED الحمراء للدقائق:

كيف تحسن دقة التوقيت؟

لزيادة دقة الساعة ، استخدمت Timer 1 (TMR1) ، الذي يعمل في الوضع غير المتزامن ، الفكرة كالتالي:
للحفاظ على عمر البطارية ، يكون الميكروكونترولر في وضع السكون عندما لا يتم عرض أي وقت ، وستعمل مصابيح LED فقط لبضع ثوان بعد الضغط على أحد الزرين. في وضع السكون ، يتم تعطيل جميع وظائف وحدة التحكم الدقيقة تقريبًا ، ولكن يستمر عداد / عداد TMR1 في العمل في الوضع غير المتزامن ، بحيث يمكنك حساب الوقت أثناء سكون PIC16F628.

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

لاستخدام TMR1 في الوضع غير المتزامن ، تحتاج إلى ضبط مصدر الساعة ، ويتم ذلك عن طريق توصيل مرنان كوارتز 32.768 هرتز بين دبابيس RB7 و RB6.

كيف تظهر الوقت؟

يتم عرض الوقت بالضغط على أحد الزرين. السؤال الآن هو: كيف يمكنك تحديد حالة الزر إذا كان الميكروكونترولر في وضع السكون؟ حسنًا ، بالطبع ، لقد استخدمت مقاطعة تغيير المستوى على دبابيس RB4 و RB5 ، عندما تتغير حالة هذه المسامير ، تستيقظ وحدة التحكم. عند الضغط على الزر ، يقوم مؤقت TMR0 بتحميل القيمة المستخدمة لقياس وقت الإشارة ، وسيتم تنشيط المقاطعات ، إذا فاضت TMR0 ، سيتم إيقاف تشغيل جميع مصابيح LED وسيعود المتحكم الدقيق إلى وضع السكون.

خوارزمية تشغيل الساعة:

بدء البرنامج (التهيئة) ؛
- التبديل إلى وضع السكون.

إذا حدث تجاوز TMR1
- الصحوة.
- حان وقت التحديث.
- التبديل إلى وضع السكون.

في حالة حدوث مقاطعة خارجية
- الصحوة.
- بيان الوقت بواسطة الثنائيات الباعثة للضوء ؛
- في انتظار تجاوز TMR0 ؛
- قم بإيقاف تشغيل المصابيح ؛
- التبديل إلى وضع السكون.

كيف يتم ضبط الوقت؟

في هذه الحالة ، يتم ضبط الوقت باستخدام الأزرار وفقط عند تشغيل الساعة لأول مرة.

مخطط الساعة

العلبة مصنوعة من البلاستيك ، تم قطع حجرة البطارية للبطارية من النوع CR2032 بواسطة آلة CNC. يتم لصق الشريط ببساطة في الجزء السفلي من العلبة.

عند برمجة المتحكم الدقيق ، اضبط بتات التكوين ، كما هو موضح في الشكل أدناه:

أرشيف لمقال "ساعة اليد الثنائية على PIC16F628"
وصف:كود مصدر البرنامج (المجمع)
حجم الملف: 33.9 كيلو بايت عدد التنزيلات: 610

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

يمثل الرقم الأول الساعة ويمثل الثاني عدد الدقائق. على سبيل المثال ، إذا كانت الساعات تومض 0010 - 0110 ، فهذا يتوافق مع 2 - 6 ، مما يعني "2" ساعات و "6" دقائق. هذا هو 2:30. لا توجد إشارة "am" أو "pm" على الجهاز ، ولكننا نعتقد أنه واضح للجميع - الساعة 2:30 صباحًا أو بعد الظهر.يفترض المشروع أيضًا أن لديك خبرة في المكونات الإلكترونية المثبتة على السطح وأنك على دراية بأجزاء SMD الملحومة.

مخطط الساعة

كيفية تحديد الوقت

تم عمل العديد من المتغيرات والنسخ من هذه الساعة - يمكنك رؤيتها في الصور. يحتوي الأرشيف على الإصدارات 2.5 و 3.1 ، والتي تستخدم وحدة تحكم ATtiny للتثبيت على السطح ومنفذ USB صغير للبرمجة. تحتوي وحدة التحكم ATtiny على 8 دبابيس. يمكن برمجة هذه الشريحة لأداء وظائف مختلفة. يحتوي ATtiny على ساعة داخلية ويتم برمجة مصابيح LED المتصلة بحيث تومض لإظهار الوقت.

مكونات الدوائر الإلكترونية

  • متحكم اتميل ATtiny85
  • عدد 2 SMD SMD LEDs
  • عدد 2 مقاومات SMD 50 أوم
  • زر SMD صغير
  • CR2032 بطارية خلية عملة 3 فولت
  • حامل بطارية صغير

مشاهدة اللحام

لهذه العملية ، تم استخدام فرن محمصة لإعادة تدفق اللحام على مكونات SMD الصغيرة مثل مصابيح LED والمقاومات ، ثم تم استخدام مكواة لحام تقليدية لحام مكونات أكبر مثل المقبس والزر وحامل البطارية.

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

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

ناقش المقال RADIOLOGIC CLOCK

في الصورة ترى التجميع المكتمل ساعة ثنائيةصنع افعلها بنفسك. لا يوجد شيء معقد في تحديد الوقت ، وسننظر فيه بالتفصيل في المقال صف عمودي من المصابيحلعشرات ووحدات زمنية.

مخطط الساعة


تم الوفاء بالساعات على متحكم atmega8.

تم تقديم المتطلبات التالية على الفور إلى الساعة المستقبلية في مرحلة الإنشاء:

  • أبعاد صغيرة نسبيًا لكل من اللوحة والجهاز ككل ؛
  • استخدام الحد الأقصى من المكونات المتاحة ؛
  • جسد أنيق.

كشريحة ساعة في الوقت الحقيقي ، يتوفر DS1307. أيضًا ، بالتوازي مع خطوط الطاقة بالقرب من MK وعند مدخلات الطاقة ، يتم تثبيت مكثفات غير قطبية تبلغ 100 نانوفاراد ومكثف قطبي (تنتالوم) يبلغ 47 ميكروفاراد. جميع المقاومات والمكثفات موجودة في حزم SMD بحجم 0805. من بين مكونات الخرج ، لا يوجد سوى مصابيح LED وكتلة بطارية وأزرار إعداد. أزرار - أي بدون تحديد ؛ بالنسبة لإصدار العلبة ، فإن الأزرار ذات "البثور" الطويلة مناسبة ، على سبيل المثال:

المقاومات R1..R6، R14..R18 يمكن أن تختلف في نطاق واسع إلى حد ما. لا تهم أبعاد مصابيح LED ، ومع ذلك ، تم تصميم العلبة واللوحة لمصابيح LED مستديرة 5 مم. "المنفذ المحجوز" - الإخراج على اللوحة ، والذي يتم توفيره على اللوحة للتوسع المحتمل لوظائف الساعة ، على سبيل المثال ، إضافة مكبر صوت.

يوجد أدناه لوحة الدوائر المطبوعة للجهاز:


نظرًا لأن عدد التوصيلات المختلفة بين مصابيح LED و MC كبير جدًا ، ولم تكن هناك رغبة في عمل عدد كبير من وصلات العبور "المعلقة" ، فقد تم تنفيذ الجهاز على ثنائي الفينيل متعدد الكلور على الوجهين. سماكة الألياف الزجاجية 1.5 مم ، الأبعاد الكلية للوحة 80 × 50 مم. يتم عمل اللوحة ذات الضوابط (خمسة أزرار) بشكل منفصل وسيتم عرضها أدناه. يوجد على السبورة بالإضافة إلى ذلك (غير موضح في الرسم التخطيطي): موصل لمصدر الطاقة + مبرمج ؛ ثقوب إضافية لتوصيل سلك الطاقة ؛ المقاوم في دائرة إعادة الضبط ؛ بقع للمكثفات في دائرة كوارتز الساعة (سيتم مناقشتها أدناه).

اللوحة مصنوعة على آلة طحن CNC ، مما جعل من الممكن الحصول على جودة المصنع تقريبًا. فيما يلي صورة للوحة المجمعة:


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

اللوحة متصلة بعناصر التحكم الرئيسية باستخدام حلقة من سبعة أسلاك (2 - طاقة ، 5 - أزرار) ؛ الحجم - 68 × 22 مم.

بعد تجميع اللوحة ووميض MK ، يبقى إكمال الخطوة الأخيرة - لإنشاء غلاف جميل للجهاز. نظرًا لوجود آلة طحن CNC ، فقد تقرر قطع الجدران من الألياف الزجاجية بسمك 1.5 مم وربطها معًا عن طريق اللحام ؛ اللوحة الأمامية مصنوعة من الألمنيوم بسمك 1 مم تقريبًا. الطول الكلي للجسم - 104 ملم ، الارتفاع (مع الأرجل والأزرار) - 77 ملم ، السماكة - 25 ملم. يوجد تخطيط العلبة مع جميع الثقوب في ملف واحد مع لوحة الدوائر المطبوعة. ترتبط الجدران الجانبية والعلوية والسفلية ببعضها البعض باستخدام رفوف نحاسية للمسمار M3:

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


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


تمت معالجة الجانب الأمامي من اللوحة الأمامية بورق صنفرة ناعم الحبيبات ، ثم معجون GOI. على العكس من ذلك ، تتم معالجة الجانب الخلفي بورق صنفرة خشن للتثبيت بالجدران الجانبية من خلال كتل خشبية 5 مم باستخدام راتنجات الايبوكسي. يحتوي الجدار الخلفي على موصل micro-USB لإمداد الطاقة ، بالإضافة إلى فتحة لمكبر صوت محتمل ؛ الغطاء متصل بالمسامير النحاسية المذكورة أعلاه بأربعة مسامير M3 x 15 mm.



تم طلاء النهاية والجدار الخلفي بطلاء رشاش للسيارات.

تحتوي اللوحة السفلية على فتحات لربط الأرجل ، ولكن بعد ذلك تقرر استخدام أرجل مطاطية مثبتة بالغراء الفائق.

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


لا يحتاج الجهاز المجمع الصحيح إلى الضبط ويبدأ العمل على الفور. يتم ضبط الوقت على النحو التالي:

  • لحوالي 2.5 ثانية ، تحتاج إلى الضغط باستمرار على الزر "0" SEC / SET (الموجود فوق الثواني). بعد ذلك ، سيتم إعادة ضبط عداد الثواني إلى الصفر ، وستتوقف الساعة عن العمل ؛
  • ثم ، باستخدام أزرار ضبط الوقت ، تحتاج إلى ضبط الوقت المطلوب ؛
  • ثم اضغط على الزر "0" SEC لمدة 2.5 ثانية ؛ ستتم إعادة تشغيل الساعة مع الوقت المحدث.

تم التبرع بالجهاز الذي تم تجميعه بنجاح لأحد الأصدقاء ويعمل منذ أكثر من عام ، ولم يتم تحديد ملاحظات حول العمل أو الأعطال.

في الختام ، أود أن أصف المشكلة التالية (لهواة الراديو ذوي الخبرة). مشاهدة الكوارتز ليست دائما ذات نوعية جيدة. قد يحدث أن يختلف تردد الكوارتز الخاص بك عن التردد المعلن بعدة هرتز. نتيجة هذا الانحراف ضعف الدقة: على سبيل المثال ، يؤدي الانحراف عن التردد "المرجعي" بمقدار 2 هرتز إلى تأخر قدره 5.27 ثانية في اليوم ، أو دقيقتان ونصف في الشهر.
يمكن ضبط تردد كوارتز الساعة عن طريق وضع مكثف من عدة بيكوفاراد على التوالي أو بالتوازي مع الكوارتز. وبالتالي ، تمكن المؤلف من تقليل فرق التردد إلى 0.1 هرتز ، مما يؤدي إلى خطأ أقل بكثير - 7 ثوانٍ في الشهر.

المشروع في Proteus والبرامج الثابتة مع المصادر موجودة في الأرشيف- تحميل

يوم جيد. في مقال اليوم ، سنصنع ساعة ثنائية غير عادية تعتمد على Arduino. هُم اليدين. بعد أن تعاملت مع عملية إنشاء مثل هذه الحرف، في المستقبل ستتمكن من تكرار الساعة الثنائية لأي تصميم.

الخطوة 1: ما هي الساعة الثنائية؟

أولاً ، دعنا نتذكر ما هو الرقم الثنائي (الثنائي) - هذا رقم يتم تمثيله في النظام الثنائي لحساب التفاضل والتكامل ، القيم العدديةالتي تستخدم حرفين فقط: 0 (صفر) و 1 (واحد).

الساعة الثنائية هي ساعة تعرض الوقت بتنسيق ثنائي. يستخدم المشروع 6 أعمدة من مصابيح LED لعرض الأصفار والآحاد. يعرض كل عمود رقمًا / رقمًا واحدًا ، يُعرف هذا التنسيق باسم BCD. يمثل كل سطر قوة اثنين ، من 2 ^ 0 (أو 1) إلى 2 ^ 3 (أو 8). لذلك ، كل ما يجب القيام به عند قراءة المعلومات من الساعة هو جمع قيم الأعمدة باستخدام مصابيح LED. على سبيل المثال ، في العمود الأول ، يتم تشغيل مصابيح LED الرابعة والأولى. نضيف 8 إلى 1 ونحصل على 9 (عدد الثواني هو 9). العمود التالي هو أعشار من الثانية ، فقط الصمام الثالث مضاء فيه ، لذلك معنى عامستساوي 49 ثانية ، تمامًا مثل الدقائق والساعات. يرجى ملاحظة أن الساعة تعرض الوقت بتنسيق 24 ساعة.

الخطوة 2: المكونات

  • اردوينو طليعة ميني 328 5 الخامستستخدم مثل هذه اللوحة ، ولكن في الواقع يمكنك استخدام أي لوحة أخرى. إذا لم تستخدم جهاز Pro Mini مطلقًا ، فستحتاج بالتأكيد CP2102 (مبرمج)لتوصيل اللوحة بجهاز كمبيوتر ؛

  • د.1302 - وحدة ساعة الوقت الحقيقي;

  • 20 × 10 ملم المصابيح الدافئة المنتشرة(أنصحك أن تأخذ بهامش) ؛

  • 20 مقاومات بمعدل مقاومة 10Ω ؛

  • 2 أزرار اللباقة

  • 2 مقاومات بقيمة مقاومة 10kΩ (تستخدم كمقاومات تحميل).

الخطوة 3: عمل نموذج أولي

لنبدأ في صنع نموذج أولي للمستقبل الحرف. في الأساس ، هذا ليس كذلك الشرط المطلوب، ولكنك تحتاج إلى إلقاء نظرة على كيفية عمل مصفوفة LED و Arduino ووحدة الساعة معًا. عند إنشاء النماذج الأولية ، استخدمت Arduino Mega ومصابيح LED حمراء بسيطة. كل شيء يعمل بشكل جيد ، كما هو متوقع.

الخطوة 4: الجسم

إطار محلي الصنع(يتكون من نصفين ) سوف تكون مصنوعة من الخشب. سيبدو متناقضًا على خلفية ساعة ثنائية ويعطي حرفي - حرفة يدويةنمط الرجعية.

الخطوة 5: التخطيطي

يتم تجميع مصابيح LED في مصفوفة لتقليل عدد دبابيس اردوينو المعنية. في حالتنا ، تم تخصيص 9 دبابيس للمصفوفة. بعد تصنيع مصفوفة LED ، نقوم بلحام الخيوط المؤدية إلى arduino ، ثم وحدة الساعة ، والأزرار الخاصة بضبط الوقت ، وأخيراً مصدر الطاقة.

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

يعتمد الكود على مثال من منشور Arduino Playgroud لوحدة الساعة DS1302. بعد ذلك ، تم إجراء تغييرات لعرض الوقت على مصفوفة LED.

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

سيساعد تصميم الساعة الثنائية المعروض في هذه المقالة على إعادة خلق جو الماضي.

يظهر الرسم التخطيطي لساعة ثنائية بسيطة في الشكل 1. وتعتمد الدائرة على متحكم ATmega48. لا توجد وحدة خارجية في الوقت الفعلي (RTC) في دائرة الساعة ، مما يقلل بدوره من تكلفة الجهاز إلى حد ما.

في حالة انقطاع التيار الكهربائي المحتمل من مصدر خارجي ، يتم الحفاظ على التوقيت بواسطة بطارية مدمجة CR2032 ، بينما يتم إيقاف تشغيل مصابيح LED. لاكتشاف جهد الإمداد من مصدر طاقة خارجي ، يتم استخدام دائرة بها ترانزستور VT1 (BC847).

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

يتم تطبيق بيان الوقت الحالي (الساعات والدقائق والثواني) باستخدام ثلاثة خطوط من مصابيح LED. يتم التحكم في LEDs عن طريق تعدد الإرسال ، مما يقلل من استهلاك الطاقة ويقلل من عدد دبابيس وحدة التحكم الدقيقة المستخدمة.

يتم العرض فقط بتنسيق 24 ساعة. لعرض عدد الدقائق والثواني ، يلزم 6 مصابيح LED ولساعات 5 مصابيح LED.

المتحكم الدقيق ATmega48V-10AU قادر على العمل مع إمداد طاقة منخفض يصل إلى 1.8 فولت ، وهي ميزة كبيرة. بالإضافة إلى ذلك ، فإن ATmega48V-10AU يرسم تيارًا أقل. يتم تثبيت تردد إشارة الساعة بواسطة مرنان كوارتز 4 ميجاهرتز ، وهو أيضًا مرجع للتوقيت.

يتم ضبط الوقت الحالي (ساعات ودقائق) باستخدام الأزرار SW2 و SW1 على التوالي. يتم إعادة ضبط عداد الثواني عند الضغط على أي من الأزرار.

وتجدر الإشارة إلى أن هذه الأزرار معطلة عند التشغيل على بطارية احتياطية لمنع إمكانية تغيير الوقت عن غير قصد. الساعة مُجمَّعة على جانب واحد لوحة الدوائر المطبوعةمقاس 103 مم × 67 مم.

عند برمجة وحدة التحكم الدقيقة ، من الضروري ضبط المتحكم الدقيق للعمل من بلورة 4 ميجا هرتز خارجية وتعطيل تقسيم تردد الساعة بمقدار 8 (تسمى هذه القطعة CKDIV8).

بعد التجميع الصحيح ، تبدأ الساعة في العمل فورًا ويجب أن تظهر 00:00:00.

يتم تشغيل الدائرة من مصدر طاقة +5 فولت طاقة احتياطية - بطارية CR2032 غير مطلوبة ، فهي تحافظ فقط على العد التنازلي بعد انقطاع التيار الكهربائي من التيار الكهربائي.

الاستهلاك الحالي للبطارية حوالي 1.5 مللي أمبير. بسعة بطارية تبلغ حوالي 200 مللي أمبير في الساعة ، يجب أن تكون كافية لمدة 5 أيام أو أكثر من تشغيل وحدة التحكم الدقيقة ، وهو ما يكفي في المواقف العادية.

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