תוכן עניינים:

LCD COG לננו Arduino: 3 שלבים
LCD COG לננו Arduino: 3 שלבים

וִידֵאוֹ: LCD COG לננו Arduino: 3 שלבים

וִידֵאוֹ: LCD COG לננו Arduino: 3 שלבים
וִידֵאוֹ: Explanation of LCD screen with COG COF COP structure 2024, יולי
Anonim
LCD COG עבור Arduino Nano
LCD COG עבור Arduino Nano

מדריך זה מתאר כיצד להשתמש ב- LCD COG עם Arduino Nano.

צגי LCD COG זולים אך מעט יותר קשים לממשק. (COG מייצג "שבב על זכוכית".) זה שבו אני משתמש מכיל שבב דרייבר UC1701. הוא דורש רק 4 סיכות של ה- Arduino: שעון SPI, נתוני SPI, בחירת שבבים ופקודה/נתונים.

UC1701 נשלט על ידי אוטובוס SPI ופועל במהירות 3.3V.

כאן אני מגדיר כיצד להשתמש בו עם Arduino Nano. זה אמור לעבוד גם עם מיני Arduino או Uno - אנסה זאת בקרוב.

זהו פרויקט ה- Arduino הראשון שלי ולא כתבתי C מזה עשרות שנים, כך שאם אני עושה טעויות ברורות, אנא יידע אותי.

שלב 1: בניית החומרה

בניית החומרה
בניית החומרה
בניית החומרה
בניית החומרה
בניית החומרה
בניית החומרה

קנה LCD COG המכיל שבב UC1701. זה צריך להשתמש באוטובוס SPI ולא בממשק מקביל. יהיו בו כ -14 סיכות שיסומנו בשמות כמו אלה המפורטים להלן. (אתה לא רוצה ממשק מקביל עם הרבה יותר סיכות שכותרתן D0, D1, D2 …)

זה שקניתי הוא: https://www.ebay.co.uk/itm/132138390168 או שאתה יכול לחפש ב- eBay אחר "12864 LCD COG".

בחר אחד בעל זנב רחב למדי עם סיכות במרווחים של 1.27 מ"מ - סיכות עדינות יותר יהיה קשה להלחמה. וודא שיש לו שבב UC1701. שימו לב כיצד בתמונה השישית בדף ebay כתוב "מחבר: COG/UC1701".

הצג שקוף וקשה לדעת מהו החלק הקדמי והאחורי. למד את התמונות שלי בעיון. שימו לב היכן הסיכות 1 ו -14 - הן מסומנות על הזנב.

הזנב הגמיש די קל להלחם אך הוא דורש מתאם כך שתוכל לחבר אותו ללוח לחם. קניתי: https://www.ebay.co.uk/itm/132166865767 או שאתה יכול לחפש ב- eBay אחר "מתאם SMD SSOP28 DIP28".

המתאם לוקח שבב SOP של 28 פינים בצד אחד או שבב SSOP של 28 פינים בצד השני. לשבב SOP יש מרווח סיכות של 0.05 אינץ '(1.27 מ מ) שזהה לזנב ה- LCD.

תצטרך גם כמה סיכות לכותרת. בכל פעם שאני קונה Arduino או מודול אחר, הוא מגיע עם יותר סיכות כותרת ממה שצריך אז כנראה שכבר יש לך כמה. אחרת, חפש ב- eBay אחר "סיכות כותרת 2.54 מ"מ".

הלחמה 14 של סיכות הכותרת על המתאם. אל תדחוף אותם לאורך כל הדרך - זה יותר נחמד אם החלק האחורי של המתאם שטוח. שים אותו שטוח על הספסל שלך כך שלא ניתן לדחוף את הסיכות רחוק מדי לתוך החורים. וודא שהסיכות נמצאות בצד ה- SOP של הלוח (כלומר השבב הגדול יותר).

כריות הזנב נמצאות במעין חלון. פח את שני צידיהם בעזרת הלחמה. הדקו את כריות המתאם. החזק את זנב המתאם במקומו ולאחר מכן גע בכל פד בעזרת מגהץ (תצטרך קצה דק למדי).

קשרו קצת חוט דרך החורים במתאם כדי לשמש הקלה במתיחות. (השתמשתי ב"חוט שנאי ").

אם אתה מלחם אותו בצורה לא נכונה, אל תנסה להסיר את הזנב. הוצא את הסיכות אחת אחת והעבר אותן לצד השני של הלוח. (כן, עשיתי את הטעות הזו והלחמתי מחדש את הזנב ולכן זה קצת בלגן בתמונה.)

שלב 2: התחברות ל- Arduino

מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו
מתחבר לארדואינו

חלק זה מסביר כיצד להתחבר ל- Arduino Nano. זה יהיה דומה מאוד עבור מיני או אונו אבל עדיין לא ניסיתי את זה.

למד את תרשים המעגלים.

Arduino Nano המחובר ליציאת USB פועל במהירות 5V. מסך LCD עובד על 3.3V. אז אתה צריך להפעיל את ה- LCD מהפין 3V3 של הננו ולהפחית את המתח על כל סיכת בקרה מ -5V ל -3.3V.

נקודת הסימון של ה- LCD היא:

  • 1 CS
  • 2 RST
  • 3 תקליטורים
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS הוא שבב בחר. הוא נמשך נמוך כדי לבחור (לאפשר) את השבב UC1701. (CS יכול להיקרא CS0 או En או דומה).

RST הוא איפוס. הוא נמשך נמוך כדי לאפס את השבב. (RST עשוי להיקרא איפוס).

תקליטור הוא פקודה/נתונים. הוא נמשך נמוך כאשר שולחים פקודות לשבב באמצעות SPI. זה גבוה בעת שליחת נתונים. (תקליטור עשוי להיקרא A0.)

CLK ו- SDA הם סיכות האוטובוס SPI. (SDA עשוי להיקרא SPI-Data. CLK עשוי להיות SCL או SPI-Clock).

VB0+ ו- VB0- משמשים את משאבת הטעינה הפנימית של UC1701. משאבת הטעינה מייצרת את המתחים המוזרים הדרושים ל- LCD. חבר קבל 100n בין VB0+ ל- VB0-. תיעוד UC1701 ממליץ על 2uF אך לא יכולתי לראות הבדל עם ה- LCD המסוים הזה.

אם במסך ה- LCD שלך יש סיכות VB1+ ו- VB1, חבר גם ביניהן קבל 100n. (אם למסך ה- LCD שלך יש סיכת VLCD, תוכל לנסות לחבר קבל 100n בין VLCD ל- Gnd. זה לא שינה שום דבר עם ה- LCD שלי.)

חבר את ה- LCD ל- Nano כדלקמן:

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 תקליטורים = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

("*" פירושו שימוש במפריד פוטנציאלי כדי להפחית את המתח. אם הארדואינו פועל על 3V3 מאספקה עצמאית, לא תזדקק לנגדים.)

3.3V פלט על ידי ה- Nano ויכול לספק מספיק זרם ל- LCD. (התצוגה שואבת בסביבות 250uA.)

5V מופלט גם על ידי ה- Nano וניתן להשתמש בו כדי להפעיל את התאורה האחורית. הגבל את הזרם לתאורה האחורית עם נגד 100ohm.

אם חסרים לכם סיכות ב- Nano, תוכלו לחבר RST ל- 3V3 - אז תוכלו להשתמש ב- D6 למשהו אחר. ניתן לאפס את U1701 בתוכנה באמצעות פקודה ב- SPI. מעולם לא היו לי בעיות עם זה, אבל אם אתה משתמש במעגל שלך בסביבה רועשת, אולי עדיף להשתמש באיפוס חומרה.

שלב 3: תוכנה

תוֹכנָה
תוֹכנָה

בתיאוריה, אתה יכול להסיע את UC1701 מספריית U8g2 (או Ucglib או מהספריות האחרות הזמינות). נאבקתי במשך ימים כדי לגרום לזה לעבוד ולא הצלחתי. ספריית U8g2 היא מפלצת מכיוון שהיא יכולה להניע מגוון עצום של שבבים וקשה מאוד לעקוב אחר הקוד. אז ויתרתי וכתבתי ספרייה קטנה משלי. הוא תופס הרבה פחות מקום ב- Arduino (כ- 3400 בתים בתוספת גופנים).

אתה יכול להוריד את הספרייה שלי מכאן (כפתור ההורדה בדף זה). רישום לדוגמא ומדריך למשתמש כלולים. דף האינטרנט https://www.arduino.cc/en/Guide/Libraries מתאר כיצד לייבא ספרייה; עבור לסעיף "ייבוא ספריית.zip".

אתחל את ה- LCD עם

UC1701Begin ();

UC1701Begin יכול לקחת פרמטרים כדי לשנות את הסיכות או להתעלם מהסיכה RST. הספרייה משתמשת רק בחומרת SPI (תוכנת SPI לא ניתנת). ניתן להעיף את הצג בצירים x ו- y. זה שימושי אם אתה רוצה להרכיב את ה- LCD בכיוון אחר.

מספר נהלים הוכפלו מספריית U8g2:

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • צייר מעגל
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • צייר משולש
  • UC1701SetCursor
  • UC1701ClearDisplay

חלק מהנהלים שונים במקצת:

  • void DrawChar (uint8_t c, font font);
  • void DrawString (char * s, word font);
  • void DrawInt (int i, Font word);

הליכי ציור מחרוזות עוברים את האינדקס של פונט. גופנים מוכרזים בזיכרון הבזק של הארדואינו, כך שהם אינם תופסים SRAM יקר. מסופקים שלושה גופנים (קטנים, בינוניים וגדולים). הם מקושרים רק ותופסים זיכרון פלאש אם אתה משתמש בהם (כ- 500 עד 2000 בתים כל אחד).

"צבע" מטופל בצורה שונה מספריית U8g2. כאשר ה- LCD נמחק יש לו רקע כהה. אם MakeMark (משתנה גלובלי) נכון, הציור נעשה בלבן. אם MakeMark שקר, הציור נעשה בחושך.

כמה נהלים ייחודיים ל- UC1701:

SetInverted מצייר בשחור-על-לבן ולא בלבן-על-שחור.

void SetInverted (bool inv);

הבהירות והניגודיות של UC1701 נקבעים על ידי:

  • void SetContrast (ערך uint8_t); // המוצע הוא 14
  • SetResistor חלל (ערך uint8_t); // המוצע הוא 7

הם עובדים יחד בצורה די לא מספקת.

SetEnabled מכבה את ה- LCD:

void SetEnabled (bool en);

התצוגה לוקחת 4uA בזמן השינה. כדאי גם לכבות את התאורה האחורית - להניע אותה מסיכה של הננו. לאחר ההפעלה מחדש, UC1701 יאופס; התצוגה מתנקה והניגודיות וההתנגדות יאופסו לערכי ברירת המחדל שלהם.

אז לסיכום, תצוגות COG זולות ובגודל הגון. קל להתחבר לארדואינו.

מוּמלָץ: