השם האיקוני " נוקיה 5110 " עצמו היה צריך לקנות זיכרונות מהטלפון הנייד החזק של נוקיה שהיה פופולרי מאוד בשנות ה -90. הדגם 5110 הגיע עם תצוגה גרפית שהספיקה מספיק כדי לשמש כמסך תצוגה עבור הנייד אז. מסך זה היה מסוגל להציג כל דבר, החל מדמויות אלפאנומריות ועד גרפיקה קטנה שהיא כל מה שנדרש לטלפון הנייד. בזמן שהאדמה הסתובבה טכנולוגיות חדשות עם מסכי מגע מבריקים צצו ותצוגה זו כבר אינה בשימוש. אך אני מקווה שניתן להשתמש בהם ביישומי אלקטרוניקה שבהם יש להציג גרפיקה קטנה ולהימנע מהוצאות כסף על מסכי LCD גדולים. אז במדריך זה נלמד כיצד לממשק LCD גרפי של Nokia 5110 עם Arduino ולגרום לו לעבוד.
LCD זה כולל פיקסלים בשחור-לבן במידות 84 × 48. הם עשויים להראות מונוטוניים אך עדיין ניתן להשתמש בהם כדי להציג גרפיקה ראויה עבור הפרויקטים שלכם וניתן להשתמש בהם בקלות עם מיקרו-בקרים כמו Arduino. אז בואו נתחיל….!
חומרים נדרשים:
- לוח Arduino (כל גרסה)
- תצוגה של נוקיה 5110
- חוטי חיבור
מודול תצוגה גרפית Nokia 5110:
ישנם שני סוגים של מסכי LCD גרפיים אלה הזמינים בשוק. האחד עם רפידות הלחמה מעל ומתחת לתצוגה והשני עם רפידות הלחמה רק בתחתית התצוגה. זה שאנו משתמשים בו שייך לסוג 2, שבו יש רפידות רק מתחת לתצוגה. שני המודולים עובדים זהים ומכאן שהחיבורים זהים עבור שניהם. אז בלי קשר לאיזה מודול אתה יכול לעקוב אחר ההדרכה.
כפי שנאמר קודם לכן Nokia 5110 LCD גרפי כולל 84 פיקסלים אופקיים ו 48 פיקסלים אנכיים. גודל התצוגה הכולל הוא 1.72 'x 1.72'. למודול 6 פינים קלט באמצעותם נוכל לממשק אותו לכל מיקרו-בקר באמצעות תקשורת SPI. ממשק ה- IC המתקשר בין התצוגה לארדואינו הוא IC בקר ה- PCD8544 של פיליפס שאת גליון הנתונים שלו תוכלו למצוא כאן. עם זאת, אם אתה משתמש בארדואינו כדי לתקשר עם IC זה, איננו צריכים לדאוג לגליון הנתונים מכיוון שישנן ספריות שמוכנות להורדה ושימוש. המודול בו אנו משתמשים כאן מוצג להלן.
תרשים מעגל:
תרשים המעגל השלם לחיבור Nokia5110 LCD גרפי עם Arduino מופיע להלן.
למודול התצוגה 8 פינים המשמשים להגדרת תקשורת SPI עם Arduino. המודול מופעל באמצעות הסיכה 3.3V של לוח הארדואינו. שים לב כי מודולים אלה עובדים על הגיון 3.3V ולכן אינם מספקים 5V לסיכת ה- Vcc של התצוגות. חיברתי ישירות את פין התצוגה לארדואינו, למרות ש- LCD עובד על הגיון 3.3V וארדואינו על היגיון של 5V כי רק אז מצאתי שה- LCD יעבוד כמו שצריך. ניתן להשתמש במחלק מתח להמרה של 5 וולט ל -3.3 וולט אם נדרש, אך מבחינתי זה עובד רק ללא המרת ההיגיון. החיבורים די פשוטים וישר קדימה לביצוע. לאחר שתסיים עם החיבורים ההתקנה שלך תיראה בערך כמו זו המוצגת למטה.
תוכנית Arduino ועבודה:
בצע את השלבים הבאים כדי לתכנת את Arduino שלך לתצוגה של Nokia 5110. הצעדים מניחים שכבר התקנת את ה- IDE של Arduino ואתה מכיר את השימוש בו.
שלב 1: פתח את ה- Arduino IDE במחשב שלך ובחר את הלוח המתאים בתפריט כלים לאחר חיבור ה- Arduino למחשב שלך.
שלב 2: לחץ כאן להורדת ספריית התצוגה של Nokia 5110 מאת Adafruit ממאגר GitHub.
שלב 3: לאחר הורדת קובץ ה- Zip, בחר סקיצה -> כלול ספרייה -> הוסף ספריית ZIP ודפדף למיקום בו הורדת ה- ZIP.
הערה: יהיה עליכם להוריד את ליבת הגרפיקה של Adafruit GFX שעושה את כל המעגלים, הטקסטים, המלבנים וכו '. תוכלו להשיג אותה מ- https://github.com/adafruit/Adafruit-GFX-Library ולהתקין אותה באותה דרך..
שלב 4: כעת פתח את תוכנית הדוגמה על ידי בחירת קובץ -> דוגמאות -> Adafruit PCD Nokia 5110 LCD Library -> pcdtest ולחץ על כפתור ההעלאה
שלב 5: לאחר העלאת התוכנית, לחץ על כפתור האיפוס בארדואינו ותראה את התוכנית לדוגמה המציגה את כל האנימציות כפי שמוצג בסרטון שניתן בסוף הדרכה זו.
אתה יכול לקרוא את התוכנית לדוגמא כדי להבין את הפונקציות המובנות השונות שיכולות לשמש לביצוע עיצוב גרפי שונה על גבי ה- LCD. אבל בואו נלך צעד אחד קדימה וננסה להציג את לוגו CircuitDigest על גבי מסך ה- LCD.
כעת פתח את התמונה הנדרשת ב- Paint ושנה את גודל התמונה. גודל התמונה המרבי שבו אנו יכולים להשתמש לתצוגה שלנו הוא 84 × 48.
לאחר שינוי גודל התמונה, שמור את התמונה כמפת סיביות (שחור-לבן) על ידי שימוש באפשרות שמור כצבע. כדי להציג תמונה כמפת סיביות במסך ה- LCD שלנו נצטרך תוכנה שתוכל להמיר תמונה של מפת סיביות לקוד. ניתן להוריד את התוכנה על ידי לחיצה כאן. לאחר ההורדה פתח את הקובץ ולחץ על "BitmapEncoder" להפעלת היישום. פתח את תמונת מפת הסיביות שרק שמרנו באמצעות תוכנה זו כדי לקבל את מערך הערכים המקודדים. אתה יכול להעתיק ישירות את הערכים האלה ולהדביק אותם במערך Arduino שלך. הערך שמוצג על ידי תוכנה עבור הלוגו שלנו מוצג להלן
כפי שניתן לראות המערך מתחיל בערך 48, 48 זה גודל התמונה שלנו. אנחנו לא צריכים להוסיף את זה למערך שלנו. לכן, הסר את שני הערכים הראשונים והשתמש בשאר כערך המערך בתוכנית. המערך ייראה כמו למטה. התכנית המלאה ניתנת בסוף הדף הזה לעיונך.
סטטי const לא חתום char PROGMEM לוגו = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111000, B00000000, B00000000, B00000000, B00000000, B00001111, B11111111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 B11111111, B11000000, B00000000, B00000000, B00001110, B00111110, B00111111, B11110000, B00000000, B00000000, B00111110, B00111110, B10000000, B01111100, B00000000, B00000000, B01111100, B01111100, B11000000, B11000000, B110000 B00001111, B00000000, B00000001, B11111000, B11111111, B00111111, B10000111, B10000000, B00000011, B11111000, B11111111, B11111111, B11000011, B11000000, B00000111, B11110001, B11111111, B1111, 1111 B01100000, B00000000, B00000011, B11100000, B00001001, B11111100, B00000000, B00000000, B00000111,B11100000, B00011001, B11111110, B00000000, B00000000, B00000111, B11000000, B00000001, B11111111, B10000000, B00011111, B11111111, B11000111, B11100011, B11111111, B11111000, B00111111, B1111 B11111111, B11111111, B11111100, B00111111, B11111111, B00011111, B11111111, B11111111, B11111100, B00111111, B11111110, B00111111, B00111111, B11111111, B11111110, B01111111, B11111110, B00111110, B00000000, B01111111, B11111100, B01111111, B11111100, B01111100, B11000000, B00000000, B00000000, B01111111, B11111100, B01111110, B10000000, B00000000, B00000000, B00000000, B00000000, B11111110, B00111111, B11111111, B11111110, B00000000, B00000001, B11111111, B11111111, B1111 B11111110, B01111111, B11111111, B11111111, B11111111, B11111111, B11111110, B01111111, B11111111,B11000111, B11111111, B11111111, B11111110, B00111111, B11111111, B10000011, B11111110, B00000000, B00000000, B00111111, B11111111, B10110011, B11111000, B00000000, B00000000, B00111111, B11110011, B111111 B10000001, B11111111, B11111100, B00000000, B00011111, B11111000, B00000111, B11111111, B11111000, B00000000, B00000111, B11111110, B00011111, B11111111, B11111000, B00000000, B00000001, B1111 B11111111, B11110000, B00000111, B11111000, B00001111, B11111111, B11000000, B00000000, B00000011, B11111100, B00100111, B11111111, B00000000, B00000000, B00000011, B11111111, B00110111, B11001100, B111111, B10000000, B00000000, B11111111, B11001111, B10000000, B11111111, B00000000, B00000000, B01111111,B11111111, B10110001, B11111110, B00000000, B00000000, B00011111, B11111111, B10110111, B11111100, B00000000, B00000000, B00001111, B11111111, B0000, B1111, B1111, B1111, B1111 B11111111, B00000000, B00000000, B00000000, B00000000, B00001111, B11110000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000};
כעת כדי להציג את מפת הסיביות הזו עלינו להשתמש בשורות הקוד הבאות. איפה הנתונים הקודמים על המסך נמחקים ונכתבת תמונת מפת הסיביות החדשה.
display.clearDisplay (); display.drawBitmap (20, 0, לוגו, 48, 48, 1); display.display ();
הקו display.drawBitmap (20, 0, לוגו, 48, 48, 1); להציג את המיקום, הגודל והצבע של תמונת מפת הסיביות. התחביר יכול להינתן כ-.
display.drawBitmap (X_Position, Y_Position, שם המערך, אורך התמונה, רוחב התמונה);
את אורך ורוחב התמונה ניתן להשיג משני האלמנטים הראשונים של המערך בהתאמה כפי שנאמר קודם. כאשר קוד זה מופעל נקבל את מפת הסיביות המוצגת על גבי מסך ה- LCD שלנו כמוצג להלן.
ניתן גם להציג טקסט פשוט כמוצג להלן:
מקווה שהבנת את ההדרכה וקיבלת את ממשק ה- Nokia 5110 שלך עם ממשק Arduino. עם תצוגה גרפית זו בשרוולכם תוכלו ליצור פרויקטים רבים הדורשים פרטי גרפיקה מינוריים. את העבודה המלאה תוכלו למצוא בסרטון המופיע להלן. אם אתה נתקל בבעיה כלשהי בהפעלת זה, תוכל להשתמש בפורום כדי לפרסם את הבעיה שלך או את קטעי התגובה למטה.