רובנו נדע להכיר את תצוגת ה- LCD של מטריקס 16 × 2 המשמשת ברוב הפרויקטים להצגת מידע כלשהו למשתמש. אבל לתצוגות LCD אלה יש מגבלה רבה במה שהם יכולים לעשות. במדריך זה אנו הולכים ללמוד על תצוגות OLED וכיצד להשתמש בהן Arduino. ישנם המון סוגים של תצוגות OLED הזמינות בשוק וישנן המון דרכים לגרום להם לעבוד. במדריך זה נדון אודות הסיווגים שלו וגם אילו יתאימו ביותר לפרויקט שלך.
נדרש חומרה:
- 7pin 128 × 64 מודול תצוגת OLED (SSD1306)
- ארדואינו UNO / ננו
- קרש לחם
- חוטי חיבור
- מחשב / מחשב נייד
היכרות עם תצוגות OLED:
המונח OLED מייצג " דיודה פולטת אור אורגני" הוא משתמש באותה טכנולוגיה המשמשת ברוב הטלוויזיות שלנו אך יש בה פחות פיקסלים בהשוואה אליהן. זה ממש כיף שמודולי התצוגה המגניבים האלה יתממשקו עם Arduino מכיוון שזה יגרום לפרויקטים שלנו להיראות מגניבים. סקרנו כאן מאמר מלא על תצוגות OLED וסוגיה.
אנו משתמשים בתצוגת OLED מונו-כרום 7 פינים SSD1306 0.96 אינץ '. הסיבה לבחירת תצוגה זו היא שהיא יכולה לעבוד על שלושה פרוטוקולי תקשורת שונים כגון מצב חוט SPI 3, מצב ארבעה חוטים SPI ומצב IIC. מדריך זה יכסה כיצד להשתמש במודול במצב SPI בעל 4 חוטים מכיוון שהוא המצב המהיר ביותר של תקשורת ומצב ברירת המחדל.
הסיכות ותפקידיה מוסברים בטבלה שלהלן.
מספר סיכה |
שם סיכה |
שמות אחרים |
נוֹהָג |
1 |
Gnd |
קרקע, אדמה |
סיכת קרקע של המודול |
2 |
Vdd |
Vcc, 5V |
פינת חשמל (נסבלת 3-5 V) |
3 |
SCK |
D0, SCL, CLK |
פועל כסיכת השעון. משמש גם ל- I2C וגם ל- SPI |
4 |
SDA |
D1, MOSI |
סיכת נתונים של המודול. משמש גם ל- IIC וגם ל- SPI |
5 |
RES |
RST, RESET |
מאפס את המודול (שימושי במהלך SPI) |
6 |
זֶרֶם יָשָׁר |
A0 |
סיכת פקודת נתונים. משמש לפרוטוקול SPI |
7 |
CS |
בחר שבב |
שימושי כאשר משתמשים ביותר ממודול אחד תחת פרוטוקול SPI |
במדריך זה פשוט נפעיל את המודול במצב SPI עם 4 חוטים, את השאר נשאיר להדרכה אחרת.
קהילת ארדואינו כבר נתנה לנו הרבה ספריות שניתן להשתמש בהן ישירות כדי להפוך את זה להרבה יותר פשוט. ניסיתי כמה ספריות ומצאתי שספריית Adafruit_SSD1306 הייתה קלה מאוד לשימוש והיתה לה קומץ אפשרויות גרפיות ולכן נשתמש בהן במדריך זה. עם זאת, אם לפרויקט שלך יש מגבלת זיכרון / מהירות נסה להשתמש בספריית U8g מכיוון שהוא עובד מהר יותר ותופס פחות זיכרון תוכנית.
חומרה וחיבורים:
Circuit תרשים עבור SSD1306 OLED התממשקות עם Arduino הוא באמת פשוט מוצג להלן
אנו פשוט מקימים תקשורת SPI בין מודול OLED לארדואינו. מכיוון שה- OLED פועל על 3V-5V וצורך מעט מאוד חשמל הוא אינו זקוק לאספקת חשמל חיצונית. אתה יכול פשוט להשתמש בחוטים כדי ליצור את החיבור או להשתמש בקרש לחם כפי שהשתמשתי בו כדי שיהיה קל להתנסות. הקשר מופיע גם בסיפור הבא
S.No |
הצמד שם למודול OLED |
שם סיכה על Arduino |
1 |
ג'נד, קרקע |
קרקע, אדמה |
2 |
Vdd, Vcc, 5V |
5V |
3 |
SCK, D0, SCL, CLK |
10 |
4 |
SDA, D1, MOSI |
9 |
5 |
RES, RST, RESET |
13 |
6 |
DC, A0 |
11 |
7 |
CS, שבב בחר |
12 |
הערה: לא תוכלו לדמיין תאורה אחורית / זוהר במודול ה- OLED רק על ידי הפעלת אותו. עליך לתכנת אותו כראוי כדי להבחין בשינויים כלשהם בתצוגת ה- OLED.
תכנות את תצוגת ה- OLED SSD1306 עבור Arduino:
לאחר שהחיבורים מוכנים תוכלו להתחיל בתכנות הארדואינו. כאמור קודם, נשתמש בספריית Adafruit ובספריית GFX לעבודה עם מודול OLED זה. בצע את השלבים לבדיקת הפעלת תצוגת ה- OLED שלך.
שלב 1: הורד את ספריית Adafruit ואת ספריית GFX מ- Github באמצעות הקישור למטה
- ספריית אדפרויט
- ספריית הגרפיקה של GFX
שלב 2: אתה צריך להוריד שני קבצי Zip. עכשיו הוסף אותם לארדואינו שלך על ידי ביצוע
סקיצה-> כלול ספרייה -> הוסף ספריית מיקוד כמוצג להלן. לאחר מכן בחר בספרייה שהורדנו זה עתה. אתה יכול לבחור רק ספרייה אחת בכל פעם, ולכן עליך לחזור על שלב זה שוב.
שלב 3: הפעל את תוכנית הדוגמה על ידי בחירת קובץ-> דוגמאות-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino כפי שמוצג בתמונה למטה.
שלב 4: בתוך תוכנית הדוגמה בראש שורה 64 הוסף את השורה "#define SSD1306_LCDHEIGHT 64" כפי שמוצג בתמונה למטה.
שלב 5: כעת העלה את התוכנית ואתה אמור לראות את תצוגת ה- OLED מפעילה את קוד הדוגמה המוגדר כברירת מחדל של Adafruit, כפי שמוצג בתמונה למטה. הווידאו עובד מלא ניתן בסוף.
תוכנית דוגמה זו מציגה בפניך את כל הגרפיקה האפשרית שניתן להציג במסך OLED. קוד זה אמור להספיק בכדי ליצור מפות סיביות, לצייר קווים / עיגולים / מלבנים, לשחק עם פיקסלים, להציג תווים ומחרוזות עם גופנים וגודל שונה וכו '…
אם אתה רוצה להבין טוב יותר את הספרייה ואת הפונקציות שלה תוכל לקרוא עוד. כל צומת הקוד מפוצל ומוסבר בעזרת שורות תגובה. קוד מלא ניתן בסוף מאמר זה
הצגת וניקוי המסך:
כתיבה על מסך OLED היא בדיוק כמו כתיבה על לוח שחור, עלינו לכתוב את הערכים ואז לנקות אותם לפני שניתן יהיה להחליף אותו. הפקודות הבאות משמשות לכתיבה ולניקוי התצוגה
display.display (); // כתוב לתצוגה display.clearDisplay (); // נקה את התצוגה
הצגת משתנה של תו:
להצגת התוכן בתוך משתנה ניתן להשתמש בקוד הבא.
char i = 5; // המשתנה שיוצג display.setTextSize (1); // בחר את גודל תצוגת הטקסט. SetTextColor (WHITE); // לתצוגה מונוכרומית רק תצוגה אפשרית. setCursor (0,0); // 0,0 היא הפינה השמאלית העליונה של תצוגת מסך ה- OLED. כתוב (i); // כתוב את המשתנה שיוצג
ציור קו, מעגל, מלבן, משולש:
אם אתה רוצה להוסיף כמה סמלים לתצוגה שלך, אתה יכול להשתמש בקוד הבא כדי לצייר אחד מהדברים הבאים
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // חלל drawLine (x0, y0, x1, y1, צבע); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // חלל drawRect (x0, y0, w, h, צבע); display.drawTriangle (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, WHITE); // חלל drawTriangle (x0, y0, x1, y1, x2, y2, צבע); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // חלל drawCircle (x0, y0, r, צבע);
ציור מחרוזת למסך:
ניתן להשתמש בנתח הקוד הבא או להציג כל הודעה על המסך במקום ובגודל מסוימים
display.setTextSize (2); // הגדר את גודל תצוגת הטקסט. setTextColor (WHITE); // הגדרת צבע display.setCursor (10,0); // המחרוזת תתחיל ב- 10,0 (x, y) display.clearDisplay (); // מחק כל תצוגה קודמת בתצוגת המסך.println ("Circuit Digest"); // הדפיסו כאן את המחרוזת "Circuit Digest" display.display (); // שלח את הטקסט למסך
מציג תמונת מפת סיביות:
דבר לא מהימן שאפשר לעשות עם מודול ה- OLED הוא שניתן להשתמש בו להצגת מפות סיביות. הקוד הבא משמש להצגת תמונת מפת סיביות
סטטי const un חתום char PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B1111111111, B11111111, B11111111, B11111111 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitmap, w, h, WHITE); // חלל drawBitmap (x, y, * מפת סיביות, w, h, צבע);
כפי שאתה יכול לראות, על מנת להציג תמונה יש לשמור את נתוני מפת הסיביות בזיכרון התוכנית בצורה של הוראת PROMGMEM. במילים פשוטות, עלינו להורות לתצוגת ה- OLED מה לעשות עם כל פיקסל על ידי העברת רצף או ערכים ממערך כפי שמוצג לעיל. מערך זה יכיל את נתוני מפת הסיביות של התמונה.
זה אולי נשמע מסובך אך בעזרת כלי אינטרנט קל מאוד להמיר תמונה לערכי מפה מעטים ולהעמיסם במערך הנ"ל.
כל שעליך לעשות הוא לטעון את התמונה ולהתאים את ההגדרות כדי לקבל את התצוגה המקדימה המועדפת עליך על התמונה. לאחר מכן לחץ על "צור קוד" העתק את הקוד והדבק אותו במערך שלך. העלה את התוכנית וכולכם סיימתם. ניסיתי להציג לוגו של באטמן וכך התברר.
עדיין יש הרבה דברים שאתה יכול לעשות עם הספריות האלה. כדי לדעת את האפשרויות המלאות, בקר בדף ה- Primitives הגרפי של Adafruit GFX.
מקווה שהפעלת את זה ומוכנה להטמיע תצוגת OLED בחלק מהפרויקטים שלך. אם הייתה לך בעיה שתף אותם בסעיף ההערות ואשתדל כמיטב יכולתי לתקן אותם.