צהריים טובים, היום אני אחלוק הוראות כיצד להכין שעון עם מדחום לחדר. השעון פועל ארדואינו המסך הגרפי UNO, WG12864B משמש להצגת זמן וטמפרטורה. כחיישן טמפרטורה - ds18b20. בניגוד לרוב השעונים האחרים, אני לא אשתמש ב- RTS (שעון זמן אמיתי), אלא אנסה להסתדר בלי המודול הנוסף הזה.
בשביל זה תוצרת בית המרכיבים הבאים נדרשים:
- Arduino UNO (או כל לוח אחר תואם Arduino)
- מסך גרפי WG12864B
- חיישן טמפרטורה ds18b20
- נגד 4.7 קומ 0.25 W
- נגד 100 אוהם 0.25 וואט
- תא סוללות ל -4 סוללות AA מסוג "אצבע"
- קופסא מתאימה
- קובץ קטן
- לק (שחור או צבע גוף)
- מעט פלסטיק או קרטון דקים
- קלטת חשמל
- חוטי חיבור
- מעגל מעגל
- כפתורים
- הלחמה
- הלחמה, רוזין
- קלטת דו צדדית
שלב 1 הכנת המתחם.
אז, השעונים שלנו צריכים להיות ממוקמים איפשהו. אתה צריך למצוא קופסה מתאימה. העיקר שמסך WG12864B, ארדואינו ולוח מעגלים קטן לכפתורים ישתלבו בו. גודל התיבה המינימלי הוא 7X7X10 ס"מ. אם אתה משתמש בלוח ארדואינו קטן אתה יכול לדחוף אותו לקופסה וקטן יותר, אבל אתאר את התהליך באמצעות ה- Arduino UNO כדוגמה. החומר ממנו עשוי התיבה הוא עדיף מפלסטיק, אם כמו שלי הוא מברזל, כדאי לדאוג לבידוד כך שלא יהיה מה "להסתובב" בתוכו. עדיף פלסטיק מכיוון שקל יותר לחתוך. עם ארגז, הוא המקרה של השעונים שלנו, החליט. כעת יש צורך לחתוך חלון מתחת למסך בגודל 6.5x4 ס"מ. אם התיבה מברזל, קשה מאוד לעשות זאת בזהירות. לא משנה איך תנסו, יהיה צבע סדוק וחספוס ליד החתך. לפיכך, ראשית אנו חותכים אותה, לשם כך תוכלו להשתמש ב"מטחנה ", מקדחה עם זרבובית לחיתוך או חותך טחינה, באופן כללי, לבחירתכם, עם הדברים העומדים לרשותך. לאחר מכן אנו מנקים את הקצוות בעזרת קובץ. אנו צובעים את כל הצבע הסדוק עם לק בצבע מתאים. התוצאה צריכה להיות הבאה:
שלב 2 הכן את המסך הגרפי.
עם חיבור המסך, במבט ראשון, מתעוררות בעיות וקשיים רבים. אבל אם תחילה תתעסקו בסוגים שלהם, זה יהפוך להרבה יותר קל ומובן יותר. קיימות וריאציות וסוגים רבים של מסכים בבקר ks0107 / ks0108.בדרך כלל כל המסכים מחולקים ל -4 סוגים:
אפשרות A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T
אפשרות ב ': HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ מציגה AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J86, QJ, Q, 1
אפשרות ג: שנזן Jinghua מציגה Co בע"מ Jm12864
אפשרות D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202
הרשימה לא שלמה, יש הרבה כאלה. הנפוצה ביותר, ולדעתי, WG12864B3 V2.0. ניתן לחבר את התצוגה לארדואינו דרך יציאה טורית או מקבילה. כשמשתמשים בו עם Arduino UNO, עדיף לבחור חיבור יציאה טורית - אז אנו זקוקים רק ל 3 יציאות של בקר המיקרו, במקום מינימום של 13 שורות כשמחוברים דרך יציאה מקבילה. הכל מחובר די פשוט. יש עוד ניואנס אחד, במכירה תוכלו למצוא שתי גרסאות לתצוגה, עם פוטנציומטר מובנה (להתאמת הניגודיות) ובלעדיו. בחרתי, ואני ממליץ לך לעשות את אותו הדבר עם המובנה.
זה מקטין את מספר החלקים ואת זמן ההלחמה. כדאי גם לשים נגן מגביל זרם של 100 אוהם עבור התאורה האחורית. על ידי חיבור ישיר של 5 וולט, ישנו סכנה של שריפת התאורה האחורית.
WG12864B - ארדואינו UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (ה) - 13
15 (PSB) - GND
19 (BLA) - דרך הנגד - + 5V
20 (BLK) - GND
הדבר הנוח ביותר הוא לאסוף את כל מה שמאחורי המסך ולהוציא ממנו 5 חוטים כדי להתחבר ל- UND של ארדואינו. התוצאה צריכה להיות משהו כזה:
למי שעדיין בוחר חיבור מקביל, אתן טבלת חיבור.
והפריסה למסכי אפשרות B:
שלב 3 חבר את חיישן הטמפרטורה.
כאמור, אנו נשתמש בחיישן המשולב DS18B20 כדי למדוד טמפרטורה. בחרתי בו בגלל דיוק המדידה הגבוה שלו, השגיאה אינה עולה על 0.5 מעלות צלזיוס. החיישן מכויל בזמן הייצור, אין צורך בהגדרות נוספות. טווח מדידת טמפרטורה -55 ... + 125 מעלות צלזיוס. ישנם שני מצבי פעולה: עם מקור כוח חיצוני ו"כוח מזויף ". בעת הפעלה במצב כוח חיצוני, החיבור הוא כדלקמן:
בעת שימוש ב"כוח מזויף "החיישן מקבל חשמל מקו התקשורת. במצב זה מספיקים שני חוטים בכדי לחבר את ds18b20 למיקרו-בקר. הקבל הפנימי של החיישן טעון בגלל אנרגיה בקו התקשורת ברמה נמוכה באוטובוס. למצב "תזונה טפילית" תכונות רבות ולכן אינני ממליץ להשתמש בו. אבל אם אתה עדיין מחליט להשתמש בו, הנה התרשים:
או שתוכל להשתמש בתרשים חיווט משופר בעת השימוש ב"כוח מזויף ":
ניתן לכלול מספר חיישנים בקו תקשורת אחד. לשעונים שלנו מספיק אחד. אנו מחברים את החוט מהסיכה "DQ" ds18b20 ל"סיכה 5 "Arduino UNO.
שלב 4 הכנת לוח עם כפתורים.
כדי לקבוע את השעה והתאריך בשעון, נשתמש בשלושה כפתורים. לנוחיותכם, הלחמו את שלושת הכפתורים בלוח המעגל וחברו את החוט.
אנו מתחברים באופן הבא: החוט המשותף לשלושת הכפתורים מחובר לארנדינו "GND". הכפתור הראשון, הוא משמש לכניסה למצב הגדרת הזמן ולעבור זמן ותאריך, התחבר ל"פין 2 ". השנייה, הכפתור להגדלת הערך הוא "פין 3", והשלישי, הכפתור להפחתת הערך הוא "פין 4".
שלב 5 הרכבת הכל ביחד.
כדי להימנע מקצר, בידוד את המסך. במעגל אנו עוטפים קלטת, ועל הגב אנו מהדקים לקלטת דו צדדית, חתוכים לגודל, רצועת חומר מבודד. קרטון עבה או פלסטיק דק מתאים. השתמשתי בניילון מלוח נייר. התברר כדלקמן:
בחזית המסך לאורך הקצה אנו מדביקים קלטת דו צדדית על בסיס קצף, רצוי שחור.
אנו מחברים את המסך לארדואינו:
בנוסף אנו מתחברים מתא הסוללה לארנדינו "VIN", מינוס ל- "GND". אנו ממקמים אותו מאחורי הארדואינו. לפני ההתקנה בתיק, אל תשכח לחבר את חיישן הטמפרטורה ואת הלוח באמצעות כפתורים.
שלב 6 הכן ומלא את הסקיצה.
חיישן טמפרטורה זקוק לספריית OneWire.
הפלט למסך הוא דרך ספריית U8glib:
כדי לערוך ולמלא את השרטוט, התקן את שתי הספריות הללו. ישנן שתי דרכים לעשות זאת. פשוט פתח את הארכיון של הארכיונים ושם את הקבצים שלא רוכסו בתיקיה "ספריות" הממוקמת בתיקיה עם התקנת ה- Arduino IDE.או שהאפשרות השנייה היא להתקין את הספרייה ישירות בסביבת התכנות. מבלי לפרוק את הארכיונים שהורדת, בחר ב- Arduino IDE, בחר בתפריט Sketch - Connect Library. בחלק העליון של הרשימה הנפתחת, בחר בפריט "הוסף. ספריית זיפ". בתיבת הדו-שיח שמופיעה, בחר את הספרייה שברצונך להוסיף. פתח שוב את התפריט Sketch - Connect Library. בתחתית הרשימה הנפתחת אתה אמור לראות ספרייה חדשה. כעת ניתן להשתמש בספריה בתוכניות. אל תשכח להפעיל מחדש את ה- IDE של ארדואינו אחרי כל זה.
חיישן הטמפרטורה עובד על פי פרוטוקול One Wire ויש לו כתובת ייחודית לכל מכשיר - קוד 64 סיביות. כל פעם, חיפוש אחר קוד זה אינו מעשי. לכן עליכם תחילה לחבר את החיישן לארדואינו, למלא את השרטוט שנמצא בתיקייה - דוגמאות - טמפרטורת דאלאס - תפריט OneWireSearch. בשלב הבא הפעל כלים - צג יציאה. ארדואינו צריך למצוא את החיישן שלנו, לכתוב את הכתובת שלו ואת קריאות הטמפרטורה הנוכחיות. אנו מעתיקים או פשוט כותבים את הכתובת של החיישן שלנו. פתח את הסקיצה Arduino_WG12864B_Term, חפש את השורה:
בתים addr [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // כתובת חיישן שלי
אנו רושמים את הכתובת של החיישן שלך בין סוגריים, ומחליפים את הכתובת של החיישן שלי.
מלאי:
//u8g.setPrintPos (44, 64); u8g.print (sek); // הדפס שניות כדי לבדוק את נכונות הקורס
מציג שניות ליד "נתונים". זה הכרחי כדי לקבוע במדויק את מהלך הזמן.
אם השעון ממהר או מפגר, עליך לשנות את הערך בשורה:
אם (מיקרו () - prevmicros> 494000) {// שינוי לאחר להתאמה היה 500,000
קבעתי באופן ניסיוני את המספר בו השעון הולך די מדויק. אם השעון שלך ממהר, עליך להגדיל את המספר הזה; אם אני מאחור, הקטן אותו. לקבוע את דיוק הקורס וצריך שניות מסקנה. לאחר כיול המספר במדויק, ניתן להגיב על שניות וכך להסיר מהמסך.
מלא את הסקיצה.