אחר הצהריים הטוב, אני ממשיך לעשות ארדואינו בזמנו הפנוי, והפעם הוא כתב הוראות לייצור תחנת מזג אוויר קטנה. זה ישמש כשעון עם תאריך ויציג טמפרטורות בחדר ומחוצה לו. כבקר הראשי, אנו נשתמש ב- Arduino UNO, אך לוח אחר עם Atmega328p על הלוח יעשה זאת. לתצוגה אנו משתמשים במסך הגרפי WG12864B. אנו מחברים גם שני חיישני טמפרטורה ds18b20. אחד בתוך הבית, אנו מוציאים את השני בחוץ. בואו נתחיל.
בתהליך הייצור תוצרת בית אנו נצטרך:
- Arduino UNO (או כל לוח אחר תואם Arduino)
- מסך גרפי WG12864B
- חיישן טמפרטורה ds18b20, 2 יחידות
- ספק כוח 6 - 12 וולט
- נגדים 4.7 קום 0.25 W, 2 יח '.
- נגדים 100 אוהם 0.25 וואט
- תא סוללות ל -4 סוללות AAA "ורדרדות"
- ארגז מהמחסנית של קונסולת SEGA
- קלטת חשמל
- חוטי חיבור
- מעגל מעגל
- כפתורים
- סכין כתיבה
- הלחמה
- הלחמה, רוזין
- קלטת דו צדדית
שלב 1 הכנת WG12864B3.
מי שלא עבד עם מסכים לפני כן עשוי להיבהל ממספר גדול של שינויים, שנראים זהים, למסכים. אני אסביר מעט. מרבית המסכים מסוג זה עובדים על שבבי 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, אבל אם המסך עלה אחרת, או שפשוט אין לך את זה בהישג יד, אתה יכול להבין זאת בקלות באמצעות הטבלה:
מאפיינים קצרים:
יש הרבה תוכניות חיבור שונות באינטרנט ונראה שהכל עובד. העניין הוא שלא ישנם רק מסכים שונים, אלא גם שתי דרכים לחבר ביניהם: סדרתי ומקביל. בעת שימוש בחיבור יציאה טורית, אנו זקוקים ל 3 יציאות בלבד של המיקרו-בקר. עם מינימום מקביל של 13. הבחירה במקרה זה ברורה מאליה, לארדואינו אין מעט מסקנות. לחיבור מקביל, תרשים החיבור הוא כדלקמן:
לחיבור סדרתי, בו נשתמש, התוכנית היא כדלקמן:
WG12864B - ארדואינו UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (ה) - 13
15 (PSB) - GND
19 (BLA) - באמצעות נגן 100 אוהם - + 5V
20 (BLK) - GND
כדי להתאים את הניגודיות, פוטנציומטר צריך להיות על המסך. יש מסכים בלעדיו, אבל עכשיו זה נדיר:
יש צורך בנגן של 100 אוהם כדי שמתח של 5 וולט לא ישר בטעות דיודות תאורה אחורית.
שלב 2 טיעון התיק.
במקרה, קח את הקופסה מקידומת המחסנית Sega. אם אינך מוצא תיבה זו בהישג יד, אתה יכול להשתמש במקרה אחר. העיקר שהמסך והארדואינו ישתלבו בו.
חותכים את הסרט השקוף על גבי הקופסה כך שלא יישארו חלקים:
ואז, בעזרת סכין פקידותית, חתך חלון בגודל 37x69 למסך.
בצד האחורי, לאורך קצה החיתוך, אנו מדביקים סרט דו צדדי, רצוי שחור:
הסר את נייר המגן מהקלטת דבק והדבק עליו את המסך שלנו:
מבחוץ זה צריך להיראות כך:
מתחת למסך, גם על קלטת דו צדדית, אנו מהדקים את הארדואינו, מבצעים חתכים ראשוניים ליציאת USB ושקע החשמל:
חיתוכים לשקעי ארדואינו חייבים להיעשות משני צידי התיבה כך שניתן יהיה לסגור אותה בחופשיות:
שלב 3 חיישני טמפרטורה.
אנו נשתמש בחיישני טמפרטורה דיגיטליים DS18B20. בעזרתם אנו משיגים דיוק מדידה נהדר, השגיאה אינה גבוהה מ- 0.5 מעלות צלזיוס, בטווח טמפרטורות רחב -55 ... + 125 מעלות צלזיוס. בנוסף, החיישן הדיגיטלי מבצע את כל החישובים עצמו והארדואינו פשוט מקבל קריאות מוכנות. כשאתה מחבר חיישן זה, אל תשכח את הנגרר הנמשך, 4.7 קילוΩ, בין אנשי הקשר DQ ו- VDD. אפשר גם מספר אפשרויות חיבור. בעוצמה חיצונית, לדעתי האפשרות הטובה ביותר, נשתמש בה:
אם אתה רוצה אתה יכול להשתמש במצב הכוח הטפילי:
או אפשרות אוכל משופרת טפילית:
עם כל ספק כוח, החיישנים מחוברים במקביל:
אנו מניחים את חיישן מדידת הטמפרטורה על הלוח הקטן יחד עם שני כפתורים, בהם נשתמש כדי לקבוע את השעה ואת תאריך השעון:
החוט המשותף משני הכפתורים מחובר ל- GND, החוט מהכפתור הראשון מחובר ל- A0, מהשני ל- A1.
מהדקים לטייפ דו צדדי ליד הארדואינו:
עדיף לבחור את החיישן, שאמור להיות ממוקם מחוץ לחדר, בתוך מעטפת מתכת, אבק ולחות:
חשב את החוט באורך הנדרש כך שניתן יהיה לתלות את החיישן מחוץ לחלון, העיקר שהוא צריך להיות לא יותר מ- 5 מטרים, אם אתה זקוק לאורך רב יותר, תצטרך להפחית את הערך של הנגרר הנמשך.
החוט מאוטובוס הנתונים של DQ של שני החיישנים מחובר לפין 5 של הארדואינו.
Vdd - +5 Arduino.
GND - GND Arduino.
שלב 4 כוח.
עבור כוח, אתה יכול להשתמש באספקת חשמל עם מתח של 6 עד 12 וולט. בסוף חוט ההתלקחות החשמלי, יש להלחם את התקע המתאים לשקע החשמל בארדואינו:
או שאתה יכול לשים תא סוללה לארבע סוללות "ורודה" AAA במקרה. ולחבר את החוט החיובי מהתא לווין ארדואינו, והמינוס ל- GND.
שלב 5 הכנת סביבת התכנות.
ראשית עליך להוריד ולהתקין עם Arduino IDE באמצעות האתר הרשמי
וגם להוסיף לשתי הספריות הדרושות לרישום. OneWire - חובה לתקשורת עם חיישני ds18b20:
U8glib - משמש להצגת מידע על המסך:
הורד את הספרייה. לאחר מכן אנו מפרקים את הארכיונים, ומעבירים את תוכן הארכיונים לתיקיית "הספריות" שנמצאת בתיקיה עם התקנת ה- Arduino IDE. אתה יכול גם להוסיף ספריות דרך ה- Arduino IDE. לשם כך, מבלי לפרוק את הארכיונים, הפעל את ה- Arduino IDE, בחר Sketch - Connect Library מתוך התפריט Sketch. בראש הרשימה הנפתחת, בחר בפריט "הוסף. ספריית זיפ". אנו מציינים את מיקום הארכיונים שהורדת. לאחר כל הצעדים, אתה צריך להפעיל מחדש את ה- Arduino IDE.
שלב 6 עריכת הסקיצה.
חיישני טמפרטורה פועלים באמצעות פרוטוקול One Wire ויש להם כתובת ייחודית לכל מכשיר - קוד 64 סיביות. לא מומלץ להוסיף פקודות חיפוש של חיישנים לרישום. אין צורך להעמיס חיישני שיהוק של ארדואינו בכל פעם.לכן ראשית, הרכיב הכל, מלא את השרטוט בארדואינו, שנמצא בתפריט קובץ - דוגמאות - טמפרטורה של דאלאס - OneWireSearch. ואז הפעל כלים - צג יציאה. ארדואינו צריך למצוא את החיישנים שלנו, לכתוב את הכתובות ואת קריאות הטמפרטורה. יש לכתוב את הכתובות האלה או פשוט להעתיק איפשהו. כעת פתח את הסקיצה Ard_Tic_Tak_WG12864B_2_x_Term_Serial, וחפש את השורות:
בתים addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // כתובת פנימית
בתים addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // כתובת של החיישן החיצוני
אנו מחליפים את הכתובות המתאימות למיקום החיישנים בכתובות שלנו.
השעונים שלנו לא משתמשים במודול RTC (שעון בזמן אמת), לכן עליכם להתאים את השעון. למען הנוחות, בטל את הפרסום של הקו (שניות יופיעו על המסך):
//u8g.setPrintPos (44, 50); u8g.print (sek); // הדפס שניות כדי לבדוק את נכונות הקורס
קבע את השעה הנכונה דרך צג היציאה. לשם כך, פתח את צג היציאה, המתן לסיום מדידות הטמפרטורה הראשוניות והזן את התאריך והשעה הנוכחיים בפורמט "יום, חודש, שנה, שעות, דקות, שניות." ללא רווחים, חלק את המספרים באמצעות פסיקים או תקופות.
אם השעון ממהר, שנה את הערך לגודל גדול יותר, אני ממליץ להתנסות במרווחים של 100 יחידות. אם מפגרת, צמצם את הערך בשורה:
אם (מיקרו () - prevmicros & gt; 494000) {// שינוי לאחר להתאמה היה 500,000
קבע אמפירי את המספר בו השעון הולך די מדויק. לקבוע את דיוק הקורס וצריך שניות מסקנה. לאחר כיול המספר במדויק, ניתן להגיב על שניות וכך להסיר מהמסך.
מלא את הסקיצה.