25-01-2012, 21:07
|
|
|
חבר מתאריך: 20.10.06
הודעות: 202
|
|
פתרון
אם יש לך 2 פורטים של 8 ביט ואפשרות להוסיף 2-3 רכיבים מוכללים (IC) למעגל, אז די קל לשלוט על מטריצת לדים של 8X4.
ראשית, תוסיפי מפענח (Decoder) שלוש לשמונה, כמו למשל 74138. חברי 3 יציאות מהמיקרובקר אל 3 הכניסות (A,B,C) של המפענח. חברי כל אחת מיציאות המפענח, אל טור אחר במטריצת הלדים.
עכשיו, בעזרת 3 ביטים את יכולה לשלוט על איזה מהטורים במטריצת הלדים פעיל (המינוס של הלדים משותף, לפיכך כאשר המפענח מספק מינוס לטור מסוים, כל הלדים שבו שמקבלים מתח, ידלקו. הלדים בטורים האחרים ישארו כבויים).
חברי במקביל את ה-RGB של כל הלדים שבאותה שורה, כלומר כל ה-R-ים מחוברים זה לזה, ה-G מחוברים זה לזה וה-B מחוברים זה לזה, בכל שורה לחוד.
מתוך הסיביות הפנויות שיש בפורטים (עד כה השתמשת ב-3 סיביות בלבד למפענח), חברי 3 סיביות ל-RGB של השורה הראשונה, 3 סיביות ל-RGB של השורה השניה, 3 סיביות ל-RGB של השורה השלישית ו-3 סיביות ל-RGB של השורה הרביעית. סה"כ עוד 12 סיביות (3 כפול 4 שורות).
עתה, כתבי תוכנה שמספקת מינוס לטור אחר בכל רגע, במחזוריות. כלומר עשירית שניה לטור הראשון, אח"כ עשירית שניה לטור השני, השלישי,הרביעי.. וכך הלאה עד הטור השמיני וחוזר חלילה.
בתוך התוכנה, ספקי את אותות ה-RGB המתאימים לכל לד, בעזרת 12 הסיביות ששולטות על הצבע. כמובן שבכל פעם "שתעברי" לטור הבא, את צריכה לספק את הצבעים החדשים,שמתאימים ללדים שבאותו טור.
אם תבצעי את מה שנאמר לעיל במהירות גבוהה מספיק (אך לא במהירות המכסימלית של המיקרובקר!), יתקבל אפקט שידמה כאילו כל הלדים דולקים ביחד, וכל לד דולק בצבע שקבעת לו בעזרת ה-RGB.
ייתכן שבמבט ראשון זה נשמע מסובך, אבל העיקרון פשוט - שליטה על טור יחיד בכל רגע. כך ניתן לחסוך בכמות הסיביות הדרושות להפעלה וכמובן גם בצריכת ההספק הכוללת של המערכת (כי לא כל הלדים דולקים בו-זמנית). אגב, גם מערכות תצוגה מסחריות פועלות בעקרון דומה למתואר לעיל.
בברכה,
דיגיגיל
_____________________________________
_- סיוע בהשלמת פרויקט-גמר להנדסאים -_
(האתר digigil.com נסגר)
נערך לאחרונה ע"י DigiGil בתאריך 25-01-2012 בשעה 21:11.
|