יום רביעי, 16 בספטמבר 2020

כתיבה בעברית (או בכל שפה שתרצו..) על גבי מסך LCD 16*2

 ממש חשוב לכם לכתוב בעברית על גבי מסך LCD 16*2? בעקבות הבקשה של ניתאי ושילה, החלטתי לבדוק איך עושים את זה. את ההשראה וחלק גדול מהידע לקחתי מכאן (למרות שזה לא בעברית ואפילו לא אותה הספרייה שאני משתמש בה אבל זה עזר לי מאד!). 

נתחיל? 

לצורך העבודה נצטרך:

  • מסך LCD 16*2 עם ארבעה חיבורים (או כל מסך אחר - אולי תצטרכו כמה התאמות כדי שיעבוד)
  • ארדואינו Uno או אחר
  • ארבעה חוטי זכר-נקבה 
  • כבל USB
לפני שאתם מתחילים, וודאו שהספרייה hd44780 מותקנת על המחשב שלכם. אם לא - התקינו אותה דרך מנהל הספריות בארדואינו. 

לאחר מכן, חברו את המסך לארדואינו: 

  1. את ה GND במסך - חברו ל GND בארדואינו
  2. את ה VCC במסך - חברו ל 5V בארדואינו
  3. את ה SDA במסך - חברו ל A4 בארדואינו 
  4. את ה SCL במסך - חברו ל A5 בארדואינו 
זה אמור להראות בסוף כמו בתרשים: 


לאחר שחיברתם את המסך והורדתם את הספרייה - נשאר החלק המסובך - הקוד... 

העיקרון על פיו הקוד עובד הוא הגדרה של כיבוי והדלקת נוריות, ממש כמו שעשינו כאן, אלא שהפעם יש לנו 32 מסכים קטנים אותם יש לתכנת... במקום זה - אנו מגדירים רצף כיבוי והדלקה אותו נוכל למקם בהמשך על 32 המסכים הקטנים. 

לדוגמא, הרצף הבא: 


יפעיל את הנוריות בצורת "לב": הנקודות המסומנות ב 0 - תהיינה כבויות על גבי המסך ואילו הנקודות המסומנות בספרה 1 - תהיינה דלוקות על גבי המסך. כך נוכל לקבל את הסימן "לב". 

כעת, נוכל לכתוב רצף המדליק את האות "ב": 


מצליחים לראות את האות "ב"? 

אם הבנו את העיקרון - נוכל לכתוב כל אות שנרצה. ברור שנגלה שיש אותיות מורכבות יותר ופשוטות יותר אבל אם תשימו לב - גם הכתיבה באנגלית על המסך היא לפעמים מעט מאולצת. 

כעת, נמקם את הקוד במקום הנכון על המסך. אנחנו עושים את זה בשני שלבים. בשלב הראשון, ב Void setup נתן מספר לרצף ההדלקות והכיבויים שלנו. כך יהיה לנו קל יותר לקרוא להם בהמשך הקוד: 


מעכשיו, כל פעם שנרצה לצייר לב על המסך - נקרא לסימן 0 וכל פעם שנרצה לכתוב את האות "ב" - נקרא לסימן 1:


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

השלב הבא, אחרי הגדרת הסימנים ומתן מספר לכל סימן, נשאר להגדיר את הקריאה לסימן. אנו נגדיר באיזה מתוך 32 המסכים לרשום את הסימן ואז נדגיר את הגדרת הסימן: 


בשורה הראשונה אנו מגדירים את האם אנו רוצים לרשום בשורה הראשונה או השניה - במקרה שלנו הכוונה לשורה השנייה!! אם נרצה לכתוב על גבי השורה הראשונה - נרשום במקום הספרה 1 - את הספרה 0. 

בנוסף, הגדרנו איפה בשורה לכתוב את התו - במקרה שלנו במיקום הכי ימני, אחרון, בשורה - במיקום ה 16!! אתם כבר מבינים שאם נרצה לרשום את התו במיקום השני נרשום 1 ואם נרצה לרשום את התו במיקום הכי שמאלי - נרשום את הספרה 0. 

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

בואו נראה איך נראה הקוד השלם: 


עם רצף הפקודות הזה, נקבל על המסך את הכיתוב: 


עכשיו אתם יכולים בקלות לשנות את הכיתוב לכל מה שתרצו... 

בהצלחה!! 

3 תגובות:

  1. ואם יש לי 16 חיבורים הקוד משתנה?

    השבמחק
    תשובות
    1. יכול להיות שזה אותו הקוד. שווה לבדוק..

      מחק
  2. אם אני משתמש בקוד בפיתון ובארדואינו זה עדיין עובד? זה אותו קוד או שצריך לשנות?

    השבמחק

הערות? הארות? יש לך משהו חשוב לספר לכולם? שאלות?

נשמח לשמוע!

(התגובה תפורסם בהקדם בכפוף לאישור מערכת מייקינג)