מה שבע, מה כמה: מונה עם ספרות מוארות

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

בינתיים, כדי להירגע קצת ולנקות את הראש, החלטתי לשחק עם רכיבי SSD שהגיעו אליי היום. לא, לא כונן מצב מוצק, אלא Seven-Segment Display – תצוגות פשוטות שמיועדות להצגה של נתונים מספריים (בעיקר), ומורכבות משבעה מקטעים: ארבעה אנכיים ושלושה אופקיים בסידור דמוי ספרת 8 ישרת-זוויות.  כל מקטע מכיל נורית LED סמויה, והדלקה סלקטיבית של הנוריות האלה יוצרת ספרות שונות, וכן כמה סימנים ואותיות.

בפוסט זה אסביר בקצרה מה עשיתי בפרויקט הנאה והמסודר שבתמונה:

SSD Counter

זהו מונה בן שש ספרות. בתוך סבך החוטים בחלק העליון מסתתרים שני ג'וקים: מימין רכיב Multiplexer, שמקבל מהארדואינו כתובת בת 3 ביטים ומכוון לפיה פלט קבוע לאחד משמונה ערוצי פלט שונים. אני משתמש בשישה מתוך השמונה האלה לבחירה של אלמנט הספרה הרצוי בכל צעד.

הג'וק משמאל הוא Serial-to-Parallel, שמקבל סדרה של שמונה ביטים ומתרגם אותה לפלט מקבילי, בשמונה ערוצים בו-זמנית, אחד לכל ביט. ברכיב זה אני משתמש כדי ליצור את ה"תמונה" של הספרה הספציפית.

ברכיבי ה-SSD שבתמונה, כל נוריות ה-LED של כל אלמנט ספרה מחוברות זו לזו ברגל ה"פלוס" שלהן, מה שמכונה בהקשר זה "אנודה משותפת" (Common Anode). כדי להדליק מקטע ספציפי, צריך לחבר את רגל ה"מינוס" הספציפית של המקטע הזה ל-Ground. המקטעים נקראים על שם האותיות a עד g, החל מלמעלה ובכיוון השעון, כש-g הוא המקטע האמצעי. למשל, כדי להציג את הספרה 1 נחבר ל-Ground את הרגליים של נוריות b ו-c, וכדי להציג את 6 נחבר את כל הנוריות פרט ל-b. כדי להציג את הסימן מינוס (-) נחבר רק את מקטע g.

כל רכיב SSD מהסוג בו השתמשתי מכיל שלושה אלמנטים נפרדים של ספרות, ויש לו אחת-עשרה רגליים: שלוש אנודות (אחת לכל אלמנט ספרה), ועוד שמונה לכל המקטעים (המקטע השמיני והלא-סטנדרטי הוא ה"נקודה העשרונית"). חיברתי את שמונה הרגליים של רכיב ה-SSD הימני לרגליים התואמות של השמאלי, ומשם ליציאות של רכיב ה-Serial-to-Parallel: כלומר, בכל רגע נתון, כל שש הספרות במונה מקבלות בדיוק את אותה תבנית חיבורים ל-Ground.

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

ומה בדיוק קורה בתוך הארדואינו? אתם מוזמנים להסתכל בקוד התוכנית (לא לדאוג, יש הערות כמעט על כל דבר!)

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

להרשמה
הודע לי על
0 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות