مساء الخير ، سأشارك اليوم تعليمات حول كيفية صنع ساعة باستخدام مقياس حرارة الغرفة. تعمل الساعة اردوينو تُستخدم شاشة الرسم UNO ، WG12864B لعرض الوقت ودرجة الحرارة. كمستشعر درجة حرارة - ds18b20. على عكس معظم الساعات الأخرى ، لن أستخدم RTS (Real Time Clock) ، لكنني أحاول الاستغناء عن هذه الوحدة الإضافية.
لهذا محلية الصنع المكونات التالية مطلوبة:
- Arduino UNO (أو أي لوحة أخرى متوافقة مع Arduino)
- شاشة رسم WG12864B
- مستشعر درجة حرارة ds18b20
- المقاوم 4.7 كوم 0.25 وات
- مقاوم 100 أوم 0.25 وات
- حجرة بطارية لأربع بطاريات مقاس AA
- صندوق مناسب
- ملف صغير
- طلاء أظافر (أسود أو لون الجسم)
- القليل من البلاستيك أو الكرتون
- شريط كهربائي
- توصيل الأسلاك
- لوحة الدوائر
- أزرار
- لحام الحديد
- اللحيم ، الصنوبري
- شريط مزدوج الجوانب
الخطوة 1 إعداد العلبة.
لذا ، يجب أن تكون ساعاتنا موجودة في مكان ما. تحتاج إلى إيجاد صندوق مناسب. الشيء الرئيسي هو أن شاشة WG12864B و Arduino ولوحة دوائر صغيرة للأزرار تتناسب معها. الحد الأدنى لحجم الصندوق هو 7 × 7 × 10 سم. إذا كنت تستخدم لوحة Arduino صغيرة ، يمكنك دفعها في صندوق وأخرى أصغر ، لكنني سأصف العملية باستخدام Arduino UNO كمثال. يفضل أن تكون المادة التي يصنع منها الصندوق بلاستيكيًا ، إذا كان مثل الحديد ، مثل الحديد ، فإنه يستحق العناية بالعزل بحيث لا يوجد شيء "يدور" في الداخل. البلاستيك هو الأفضل لأنه أسهل في القطع. مع صندوق ، هو حالة ساعاتنا ، قررت. الآن من الضروري قطع نافذة تحت الشاشة بقياس 6.5x4 سم ، إذا كان الصندوق من الحديد ، فمن الصعب للغاية القيام بذلك بعناية. مهما حاولت ، سيكون هناك طلاء متشقق وخشونة بالقرب من القطع. لذلك ، قمنا أولاً بقصها ، لذلك يمكنك استخدام "المطحنة" ، المثقاب مع فوهة للقطع أو المطحنة ، بشكل عام ، من اختيارك ، مع ما هو في متناول اليد. بعد ذلك ، نقوم بتنظيف الحواف بملف. نرسم كل الطلاء المكسور بطلاء الأظافر ، ولون مناسب. يجب أن تكون النتيجة ما يلي:
الخطوة 2 قم بإعداد شاشة الرسم.
مع اتصال الشاشة ، للوهلة الأولى ، تنشأ العديد من المشاكل والصعوبات. ولكن إذا تعاملت مع أنواعها لأول مرة ، فسيصبح الأمر أسهل وأكثر قابلية للفهم. هناك العديد من الاختلافات وأنواع الشاشات على وحدة تحكم ks0107 / ks0108.تنقسم جميع الشاشات عادة إلى 4 أنواع:
الخيار أ: HDM64GS12L-4 ، Crystalfontz CFAG12864B ، Sparkfun LCD-00710CM ، NKC Electronics LCD-0022 ، WinStar WG12864B-TML-T
الخيار ب: HDM64GS12L-5، Lumex LCM-S12864GSF، Futurlec BLUE128X64LCD، AZ Displays AGM1264F، Displaytech 64128A BC، Adafruit GLCD، DataVision DG12864-88، Topway LM12864LDW، Digitron SG1286464-YY-Digitron SG1286464-YY
الخيار C: شركة Shenzhen Jinghua Displays Co Ltd. جم 12864
الخيار D: Wintek-Cascades WD-G1906G و Wintek-GEN / WD-G1906G / KS0108B و Wintek / WD-G1906G / S6B0108A و TECDIS / Y19061 / HD61202 و Varitronix / MGLS19264 / HD61202
القائمة ليست كاملة ، هناك الكثير منها. الأكثر شيوعًا ، في رأيي ، مريحة WG12864B3 V2.0. يمكن توصيل الشاشة بـ Arduino عبر منفذ تسلسلي أو متوازي. عند استخدامها مع Arduino UNO ، من الأفضل اختيار اتصال منفذ تسلسلي - ثم نحتاج فقط إلى 3 مخرجات من وحدة التحكم الدقيقة ، بدلاً من 13 سطرًا على الأقل عند الاتصال عبر منفذ متوازي. كل شيء متصل بكل بساطة. هناك فارق بسيط آخر ، يمكن العثور على نوعين من الشاشات للبيع ، مع مقياس جهد مدمج (لتعديل التباين) وبدونه. لقد اخترت ، وأنصحك أن تفعل الشيء نفسه مع المدمج في.
هذا يقلل من عدد الأجزاء ووقت اللحام. من الجدير أيضًا وضع المقاوم المحدد الحالي لـ 100 أوم للإضاءة الخلفية. من خلال توصيل 5 فولت مباشرة ، هناك خطر حرق الإضاءة الخلفية.
WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 فولت
4 (RS) - 10
5 (R / W) - 11
6 (ه) - 13
15 (PSB) - GND
19 (BLA) - من خلال المقاوم - + 5V
20 (BLK) - GND
الشيء الأكثر ملاءمة هو جمع كل شيء خلف الشاشة وإخراج 5 أسلاك منه للاتصال بـ Arduino UNO. يجب أن تكون النتيجة شيء من هذا القبيل:
بالنسبة لأولئك الذين لا يزالون يختارون اتصالًا متوازيًا ، سأقدم جدول اتصال.
وتخطيط شاشات الخيار B:
الخطوة 3 قم بتوصيل مستشعر درجة الحرارة.
كما قلت ، سنستخدم مستشعر DS18B20 المدمج لقياس درجة الحرارة. اخترت ذلك لدقة القياس العالية ، الخطأ لا يزيد عن 0.5 درجة مئوية. تتم معايرة المستشعر في وقت التصنيع ؛ ولا يلزم إعداد إعدادات إضافية. نطاق قياس درجة الحرارة -55 ... + 125 درجة مئوية. هناك أسلوبان للعمل: مع مصدر طاقة خارجي و "طاقة زائفة". عند التشغيل في وضع الطاقة الخارجية ، يكون الاتصال كما يلي:
عند استخدام "الطاقة الزائفة" ، يتلقى المستشعر الطاقة من خط الاتصال. في هذا الوضع ، يكفي سلكان لتوصيل ds18b20 بوحدة التحكم الدقيقة. يتم شحن المكثف الداخلي لجهاز الاستشعار بسبب الطاقة على خط الاتصال عند مستوى منخفض في الحافلة. يتميز وضع "التغذية الطفيلية" بالعديد من الميزات ، وبالتالي لا أوصي باستخدامه. ولكن إذا كنت لا تزال تقرر استخدامه ، فإليك الرسم البياني:
أو يمكنك استخدام مخطط الأسلاك المحسنة عند استخدام "القوة الزائفة":
يمكن تضمين العديد من أجهزة الاستشعار في خط اتصال واحد. لساعاتنا واحد يكفي. نقوم بتوصيل السلك من دبوس "DQ" ds18b20 إلى "دبوس 5" Arduino UNO.
الخطوة 4 إعداد لوحة بأزرار.
لضبط الوقت والتاريخ على الساعة ، سنستخدم ثلاثة أزرار. من أجل الراحة ، قم بلحام الأزرار الثلاثة الموجودة على لوحة الدائرة الكهربية واسحب الأسلاك.
نربط على النحو التالي: يتم توصيل السلك المشترك في الأزرار الثلاثة بـ Arduino “GND”. الزر الأول ، يعمل على إدخال وضع إعداد الوقت والتبديل عبر الوقت والتاريخ ، والاتصال بـ "Pin 2". والثاني ، زر زيادة القيمة ، هو "Pin 3" ، والثالث ، زر تقليل القيمة ، هو "Pin 4".
الخطوة 5 تجميع كل شيء معا.
لتجنب حدوث دائرة قصر ، اعزل الشاشة. في دائرة نلفها بشريط كهربائي ، وفي الخلف نربط بشريط مزدوج الجوانب ، مقطوع بالحجم ، شريط من مادة عازلة. الورق المقوى السميك أو البلاستيك الرقيق مناسب. استخدمت البلاستيك من لوح ورقي. اتضح ما يلي:
في الجزء الأمامي من الشاشة على طول الحافة ، نلصق شريطًا مزدوج الوجه على أساس رغوي ، ويفضل أن يكون أسود.
نقوم بتوصيل الشاشة بـ Arduino:
بالإضافة إلى أننا نتصل من حجرة البطارية بـ "VIN" Arduino ، مطروحًا منه "GND". نضعه خلف اردوينو. قبل التثبيت في العلبة ، لا تنس توصيل مستشعر درجة الحرارة واللوحة بأزرار.
الخطوة 6 جهز الرسم واملأه.
يحتاج مستشعر درجة الحرارة إلى مكتبة OneWire.
الإخراج على الشاشة من خلال مكتبة U8glib:
لتحرير الرسم وملئه ، قم بتثبيت هاتين المكتبتين. هناك طريقتان للقيام بذلك. ما عليك سوى فك ضغط هذه الأرشيفات ووضع الملفات التي تم فك ضغطها في مجلد "المكتبات" الموجود في المجلد مع تثبيت Arduino IDE.أو الخيار الثاني هو تثبيت المكتبة مباشرة في بيئة البرمجة. بدون تفريغ الأرشيفات التي تم تنزيلها ، في Arduino IDE ، حدد قائمة Sketch - Connect Library. في أعلى القائمة المنسدلة ، حدد العنصر "إضافة مكتبة .Zip". في مربع الحوار الذي يظهر ، حدد المكتبة التي تريد إضافتها. افتح قائمة Sketch - Connect Library مرة أخرى. سترى مكتبة جديدة في أسفل القائمة المنسدلة. الآن يمكن استخدام المكتبة في البرامج. لا تنس إعادة تشغيل Arduino IDE بعد كل هذا.
يعمل مستشعر درجة الحرارة وفقًا لبروتوكول One Wire وله عنوان فريد لكل جهاز - رمز 64 بت. في كل مرة ، يكون البحث عن هذا الرمز غير عملي. لذلك ، يجب عليك أولاً توصيل المستشعر بـ Arduino ، وملء الرسم الموجود في ملف - أمثلة - درجة حرارة دالاس - قائمة OneWireSearch. بعد ذلك ، قم بتشغيل الأدوات - مراقب المنفذ. يجب أن يجد Arduino مستشعرنا ، ويكتب عنوانه وقراءات درجة الحرارة الحالية. نقوم بنسخ أو كتابة عنوان جهاز الاستشعار الخاص بنا. افتح الرسم Arduino_WG12864B_Term ، ابحث عن السطر:
بايت addr [8] = {0x28، 0xFF، 0xDD، 0x14، 0xB4، 0x16، 0x5، 0x97} ؛ // عنوان المستشعر الخاص بي
نكتب عنوان المستشعر الخاص بك بين الأقواس ، ونستبدل عنوان المستشعر الخاص بي.
مخزون:
//u8g.setPrintPos (44، 64) ؛ u8g.print (sek) ؛ // اطبع ثواني للتحقق من صحة الدورة
يعرض الثواني بجوار "البيانات". هذا ضروري لتحديد مسار الوقت بدقة.
إذا كانت الساعة في عجلة من أمرها أو متأخرة ، يجب عليك تغيير القيمة في السطر:
إذا كان (micros () - prevmicros> 494000) {// التغيير لآخر للتصحيح كان 500000
لقد حددت تجريبيًا الرقم الذي تعمل فيه الساعة بدقة تامة. إذا كانت ساعتك في عجلة من أمرك ، فيجب عليك زيادة هذا الرقم ؛ إذا كنت متأخرًا ، فقم بتقليله. لتحديد دقة الدورة وتحتاج إلى خاتمة ثانية. بعد معايرة الرقم بدقة ، يمكن التعليق على الثواني وبالتالي إزالتها من الشاشة.
املأ الرسم التخطيطي.