بعد أن تلقى بضع مجالس اردوينو، ومكونات الراديو المختلفة للتعرف على وحدات التحكم الدقيقة ، قرر المؤلف القيام بشيء مثير للاهتمام وفي نفس الوقت مفيد. بعد تخزين عدد كبير من مصابيح LED ، ظهرت الفكرة لإنشاء ساعة ثنائية.
من ناحية الإلكترونيات ، فإن الساعة الثنائية ليست معقدة بشكل خاص ، لكن المؤلف عقد المهمة وقرر عدم حفظ الأزرار ومصابيح LED. في البداية ، كان المشروع يستخدم 22 مصباح LED و 6 أزرار ومكبر صوت واحد. كانت هناك أيضًا فكرة تجميع الساعات في Arduino Mega بسبب العدد الأكبر من الدبابيس ، لكن تحول النوبات 74HC595 تبين أنه خلاص.
المواد:
- اردوينو أونو
- عدد 2 لوح توصيل بالحجم الكامل
- المصابيح الحمراء 7 قطع
- المصابيح الخضراء 7 قطع
- المصابيح الزرقاء 6 قطع
- عدد 2 لمبة LED صفراء وبيضاء
- مقاومات 220 أوم 25 قطعة
- طنان بيزو 1 قطعة
- 6 أزرار أزرار براعة
- يسجل خرج التحول 74HC595 في حزمة DIP-16 3 قطع
- توصيل الأسلاك 90 قطعة
- وحدة ساعة في الوقت الحقيقي على أساس شريحة DS1307 RTC
كيف يعمل كل شيء.
هناك حوالي 10 أنواع من الساعات الثنائية. يظهر البعض الوقت بتنسيق عشري ثنائي (BCD) ، والبعض الآخر كأرقام ثنائية. نظرًا لأن المؤلف لا يحب بشكل خاص ساعة BCD ، فقد قرر أن يجعل ثنائيه النقي. يجد بعض الأشخاص صعوبة في القراءة ، ولكن الفرق ليس كبيرًا ، لأن ترجمة الأرقام من ثنائية إلى عشرية أمر سهل. كما كان من الشروط الأساسية لمبدع الساعة الإشارة إلى الثواني على الساعة.
بالإضافة إلى ذلك ، تحتوي الساعة على 6 أزرار:
الضبط - مسؤول عن وضع ضبط الساعة / المنبه وحفظ المعلمة في وضع الضبط.
الوضع - مسؤول عن التبديل بين أوضاع الساعة والمنبه والمؤقت.
أعلى - في إعداد الساعة / المنبه / المؤقت ، يزيد المعلمة بمقدار واحد. في المنبه والمؤقت ، تكون مسؤولة عن تنشيط وإلغاء تنشيط الوضع المحدد. عندما يتم تشغيل إشارة ، سيتم إيقاف إشارة التنبيه / المؤقت.
لأسفل - في إعداد الساعة / المنبه / المؤقت ، ستنقص المعلمة بمقدار واحد. سيقوم المؤقت بإيقافه مؤقتًا بدون إعادة ضبط العد التنازلي. عندما ينطلق المنبه ، سينقل الإشارة لمدة 5 دقائق.
24/12 - تغيير تنسيق الوقت.
خافت - مسؤول عن تشغيل وإيقاف تشغيل مصابيح LED (عندما تكون مصابيح LED مطفأة ، تتوقف الأزرار المتبقية عن العمل).
مخطط تحديد المواقع LED:
اتصال المكون
سيقوم المؤلف بتوصيل جميع المصابيح في سلسلة ومع المقاوم. يتم لحام المقاوم بأحد أطراف مصابيح LED ، ولا يهم أيهما. سيتم توصيل مصابيح LED عبر سجلات التحول ، هذه الشريحة لديها 16 جهة اتصال.يسمح لك هذا العدد من المسامير باستخدام عدد كبير من المسامير ، مع أخذ 3 دبابيس فقط على Arduino.
التحول شيفت Pinout 74HC595:
Q0-Q7 هي نتائج السجل الذي سيتم توصيل مصابيح LED به.
Vcc - سيتم تطبيق دبوس إمدادات الطاقة 5V عليه.
GND - أرض متصلة بـ GND على أردوينو.
OE - الدبوس مسؤول عن التنشيط المقلوب للدبابيس ، ولكن لن يتم استخدامه ، فهو ببساطة يقصر على الأرض.
MR عبارة عن مقاصة تسجيل مقلوبة ، ولا تحتاج إلى التحكم فيها ، وبالتالي سيتم توصيلها بمصدر طاقة 5 فولت.
ST_CP - دبوس مسؤول عن تحديث حالة التسجيل. عند تسجيل الحالة ، من الضروري تطبيق LOW عليها ، بعد التسجيل - HIGH ، لتحديث حالة المخرجات. يجب توصيله بدبوس على Arduino. يمكنك توصيل هذا الدبوس في ثلاثة سجلات بالتوازي.
SH_CP - دبوس ، مسؤول عن التغيير بمقدار 1 بت من السجل. يجب توصيله بدبوس على Arduino. يتم توصيلها على الدوائر المصغرة أيضًا بالتوازي.
DS - يتم إرسال البيانات إلى هذا الدبوس ، وهي متصلة بالدبوس على Arduino.
Q7 - يستخدم هذا الدبوس في التوصيل المتسلسل مع السجلات الأخرى 74HC595.
مخطط الأسلاك:
سيتم توصيل الطنان بيزو مع دبوس Arduino الثالث على التوالي باستخدام المقاوم. قبل تضمين مكبر الصوت في الدائرة ، نظر المؤلف في الدبابيس التي تدعم PWM ، لأن هذا أمر إلزامي بالنسبة لها. في Arduino Uno ، تدعم PWM 3 و 5 و 6 و 9 و 10 و 11 دبابيس.
يتم توصيل الأزرار باستخدام مقاومات مدمجة في Arduino ، مع جانب واحد من الأزرار متصل بالأرض والجانب الآخر بدبابيس Arduino.
لذا ، يبدو التصميم النهائي:
البناء على اللوح
بعد الحصول على تفاصيل إضافية ، بدأ المؤلف بتجميع المشروع على لوحة توصيل وفقًا للمخططات. كان المظهر على وشك أن يكون متوقعًا ، لأن اللوح يحد من الحرية في وضع المكونات ، ولم تخلق الأسلاك البارزة متعة جمالية. لكن اللوح بعد كل شيء مخصص لنماذج اللوح ، ولكن ليس للأجهزة النهائية.
كود البرنامج.
بعد أن أصبح مؤهلاً في البرمجة ، قرر المؤلف كتابة التعليمات البرمجية بمفرده ، دون استخدام تطورات الآخرين. كانت الخطوة الأولى هي كتابة روتين فرعي ، وهي مسؤولة عن وميض جميع الثنائيات وإعطاء إشارة بيزو عند تشغيلها. تساعد هذه الوظيفة على التحقق من سلامة الدائرة ، على غرار تلك التي يتم تنفيذها على العديد من الأجهزة.
ظهر الرسم كبيرًا جدًا ، ثم يمكنك التفكير في ميزاته الرئيسية.
عمل الصمام.
نظرًا لأنه يتم الوصول إلى مصابيح LED من خلال سجل النقل ، أولاً ، كان من الضروري تنفيذ المزيد من الإجراءات لمصابيح LED. لسهولة التشغيل مع الثنائيات ، تم تنفيذ عدد من الوظائف الإضافية. يتم تنفيذ تأثيرات مختلفة للرسوم المتحركة للثنائيات. عندما لا يتم ضبط الساعة ، ستبدأ الثنائيات المسؤولة عن الساعات والدقائق في الوميض (حيث تومض الساعة العادية عندما لا يتم ضبطها). تحتوي مصابيح LED المسؤولة عن الثواني أيضًا على رسوم متحركة خاصة بها ، ويمكن تشغيل الصمام الثنائي يسارًا ويمينًا في وضع التنبيه أو في وضع إعداد الساعة.
الحلقة الرئيسية.
تم تكوين البرنامج للعمل على النحو التالي: تعرض الساعة المعلومات اعتمادًا على الحالة الحالية ، وتغيير حالتها اعتمادًا على استخدام الأزرار والأحداث. يبدو كل ذلك قدرًا كبيرًا من الظروف المتداخلة. يتم تحديث حالة الثنائيات في كل مرة بعد التحقق من حالة المؤقتات والأزرار مع استدعاء معالجها.
أيضا ، قام المؤلف بعمل رائع من أجل التشغيل الصحيح لأزرار الإدخال والمؤقتات. يمكن تنزيل شفرة المصدر للرسم تحت المقالة.
إطلاق التخطيط
بعد تشغيل المشروع ، للوهلة الأولى ، عمل الجهاز بشكل صحيح ومستقر. لكن المؤلف وجد خللاً ، فالساعة كانت متأخرة بثانية واحدة في الساعة ، ولفترة طويلة سيكون خطأً كبيرًا.
بعد دراسة هذه المشكلة ، وجد أن Arduino Uno الأصلي يستخدم مرنان خزفي ، ويفتقر إلى الدقة لقياس الوقت في فترات طويلة. كان الحل الأكثر عقلانية هو شراء ساعة في الوقت الفعلي ، بالإضافة إلى هذه الوحدة ، لن يضيع الوقت على الساعة عند إيقاف تشغيلها. اشترى المؤلف وحدة Grove RTC من Seeed Studio. إنها لوحة منتهية بشريحة ساعة. ربط المؤلف دبابيس وحدة SDA و SCL بـ Arduino على دبابيس A4 و A5 ، GND إلى الأرض. نظرًا لأن طاقة 5V مشغولة بلوحة الساعة ، لم يكن هناك مكان لتوصيل الوحدة. قرر المؤلف تشغيل الوحدة من أحد الدبابيس الرقمية ، والتي سيتم تنشيطها باستمرار.أيضا ، يحتاج المؤلف إلى تعديل التعليمات البرمجية المصدر وإضافة مكتبة من الساعات في الوقت الحقيقي.
مشاهدة التجمع
بعد الانتهاء من العمل الطويل على الرمز ، حان الوقت لإعطاء الجهاز نظرة كاملة ونقله من لوحة التوصيل إلى لوحة الدوائر المطبوعة. بادئ ذي بدء ، كان من الضروري عمل الأسلاك للمجلس. تم استخدام Fritzing لهذا ، حيث كان لدى المؤلف بالفعل فكرة عن مظهر الساعة ، وقام ببناء رسم تخطيطي للجهاز. كما تتبع المؤلف اللوحة يدويًا ، واستغرق الأمر الكثير من الوقت.
مشروع إنتاج لوحات الدوائر المطبوعة:
تم طلب تصنيع ثنائي الفينيل متعدد الكلور في الصين. لدى Seeed Studio خدمة لوحة Fusion PCB. من خلال Fritzing ، تم تصدير الملف إلى تنسيق Extended Gerber ، ويعمل العديد من مصنعي الألواح معه. وبعد أسبوعين ، تلقى المؤلف الرسوم التي طال انتظارها في البريد.
بقي فقط لحام الأجزاء المتربة بالفعل على اللوح. كانت النتيجة النهائية بعد اللحام تبدو أفضل بكثير من التخطيط على لوحة التوصيل.
عمل مؤلف المشروع بجد لفترة طويلة وحصل على ما يريد - ساعة ثنائية فريدة من نوعها مع جهاز توقيت وساعة منبه. باستخدام حجرة البطارية ، يمكن وضع الساعة في أي مكان. حقق أردوينو التوقعات وكان يتعامل تمامًا مع المهمة.