תוכן עניינים:

מטריצת LED באמצעות רשימות Shift: 7 שלבים (עם תמונות)
מטריצת LED באמצעות רשימות Shift: 7 שלבים (עם תמונות)

וִידֵאוֹ: מטריצת LED באמצעות רשימות Shift: 7 שלבים (עם תמונות)

וִידֵאוֹ: מטריצת LED באמצעות רשימות Shift: 7 שלבים (עם תמונות)
וִידֵאוֹ: שבט אחים ואחיות - שבט אחים ואחיות (A tribe of brothers and sisters) 2024, נוֹבֶמבֶּר
Anonim
מטריקס LED באמצעות רשימות Shift
מטריקס LED באמצעות רשימות Shift
מטריקס LED באמצעות רשימות Shift
מטריקס LED באמצעות רשימות Shift
מטריקס LED באמצעות רשימות Shift
מטריקס LED באמצעות רשימות Shift

ההנחיה הזו אמורה להוות הסבר מלא יותר מאחרים הזמינים באינטרנט. יש לציין כי הדבר יספק יותר הסבר חומרה ממה שיש ב- LED Marquee להוראות LED555.

מטרות

מדריך זה מציג את המושגים הכרוכים במרשמי משמרות ונהגי צד גבוהים. על ידי איור מושגים אלה בעזרת מטריצת LED 8x8 אני מקווה לספק לך את הכלים הדרושים להתאמה ולהתרחבות לגודל ולפריסה שהפרויקט שלך דורש.

ניסיון ומיומנויות

הייתי מעריך את הפרויקט הזה כקושי בינוני:

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

כתב ויתור ואשראי

ראשית, אני לא מהנדס חשמל. אם אתה רואה משהו שגוי או שאינו שיטה מומלצת, אנא יידע אותי ואעשה את התיקון. עשה זאת על אחריותך בלבד! אתה צריך לדעת מה אתה עושה או שאתה יכול לגרום נזק למחשב שלך, לבקר שלך ואפילו לעצמך. למדתי הרבה מהאינטרנט, במיוחד מהפורומים בכתובת: https://www.avrfreaks.net אני משתמש קבוצת גופנים שהגיעה עם ספריית C האוניברסלית ks0108. בדוק את זה כאן:

שלב 1: חלקים

רשימת חלקים

חלקים כלליים

כדי ליצור רשת 8x8 של נוריות LED ולשלוט בהן תצטרך:

  • 64 נוריות LED לבחירתך
  • 8 נגדים ללדים
  • 1 רשום Shift של העמודות
  • מערך מנהלי התקנים אחד לשורות
  • 8 נגדים להחלפת מערך הנהגים
  • מיקרו -בקר אחד
  • מקור שעון אחד למיקרו -בקר
  • לוח אב טיפוס אחד
  • ספק כוח 1
  • חוט חיבור

חלקים ספציפיים המשמשים כאן

להוראה זו השתמשתי בדברים הבאים:

  • 64 נוריות LED ירוקות (חלק Mouser #604-WP7113GD)
  • 8 נגדי 1/4 ואט 1/4 וואט לנוריות (חלק Mouser #660-CFS1/4CT52R221J)
  • 1 נהג LED HEF4794 עם מרשם משמרות (חלק Mouser מס '771-HEF4794BPN)
  • 1 מערך מנהל התקן מקור גבוה-זרם גבוה עם מיקרופון 2981 (חלק Digikey #576-1158-ND)
  • 8 נגדי 1/4 ק"ט של 1/4 וואט להחלפת מערך הנהג (חלק מחסן רדיו #271-1328)
  • 1 מיקרו-בקר ATmega8 Atmel (חלק Mouser מס '556-ATMEGA8-16PU)
  • 1 קריסטל 12 מגה-הרץ למקור שעון המיקרו-בקר (חלק Mouser מס '815-AB-12-B2)
  • לוח אב טיפוס אחד עם 2200 חורים (חלק מחסן רדיו #276-147)
  • ספק כוח ATX שהמיר: ראה הוראה זו
  • ליבת מוצק 22-awg חוט חיבור (חלק מחסן רדיו #278-1221)
  • קרש לחם (חלק מחסן רדיו 276-169 (כבר לא זמין, נסה: 276-002)
  • דרגון AVR (חלק Mouser #556-ATAVRDRAGON)
  • Dragon Rider 500 מאת Ecros Technologies: ראה הוראה זו

הערות לגבי חלקים

מנהלי שורות ועמודות: כנראה שהחלק הקשה ביותר בפרויקט זה הוא בחירת מנהלי הטור והעמודה. ראשית, אני לא חושב שרשם משמרות סטנדרטי 74HC595 הוא רעיון טוב כאן מכיוון שהם לא יכולים להתמודד עם סוג הזרם שאנו רוצים לשלוח דרך הנורות. זו הסיבה שבחרתי במנהל ההתקן HEF4794 מכיוון שהוא יכול להטביע בקלות את הנוכחי הנוכחי כאשר כל 8 הנוריות בשורה אחת מופעלות. מרשם המשמרות קיים בצד הנמוך (סיכת הקרקע של העדים). נזדקק למנהל שורות שיכול לספק מספיק זרם כדי לחבר עמודות מרובות. ה- mic2981 יכול לספק עד 500mA. החלק היחיד השני שמצאתי שמבצע משימה זו הוא UDN2981 (חלק digikey #620-1120-ND) שהוא אותו חלק של יצרן אחר. אנא שלח לי הודעה אם ידוע לך על מנהלי התקנים אחרים בעלי צד גבוה אשר יעבדו היטב ביישום זה. מטריקס LED: מטריצה זו היא 8x8 מכיוון שלנהלי השורות והעמודות יש 8 סיכות. ניתן לבנות מערך LED גדול יותר על ידי חיבור מטריצות מרובות וידון בשלב "מושגים מודולריים". אם אתה רוצה מערך גדול, הזמין את כל החלקים הדרושים בבת אחת. ישנן מטריצות LED 8x8, 5x7 ו- 5x8 בחבילה נוחה אחת. אלה צריכים להיות קלים להחליף מטריצה DIY. Ebay הוא מקור טוב לאלה. ל- Mouser יש כמה יחידות 5x7 זמינות, כגון חלק #604-TA12-11GWA. השתמשתי בנורות ירוקות וזולות כי אני פשוט משחק ונהנה. הוצאה רבה יותר על בהירות גבוהה ויעילות גבוהה LED יכולה לאפשר לך לייצר תצוגה הרבה יותר מרהיבה למראה … זה מספיק טוב בשבילי! חומרת שליטה: המטריצה נשלטת על ידי מיקרו Atmel AVR. לשם כך תצטרך מתכנת. מכיוון שאני עושה אב טיפוס אני משתמש ב- Dragon Rider 500 שעבורו כתבתי הוראות הרכבה ושימוש. זהו כלי קל לאב טיפוס ואני ממליץ עליו בחום.

שלב 2: המטריצה

המטריקס
המטריקס
המטריקס
המטריקס
המטריקס
המטריקס

אני אבנה מטריצת LED משלי לפרויקט זה באמצעות עדות 5 מ מ ולוח אב טיפוס של רדיו שאק. יצוין כי ניתן לרכוש מודולי LED של מטריקס בגודל 8x8 נקודות מכמה מקורות, כולל ebay. הם צריכים לעבוד בסדר גמור עם ההנחיה הזו.

שיקולי בנייה

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

בניית המטריקס

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

  • תפסתי את זה בכל קצה ואז חזרתי והוספתי מעט הלחמה בכל צומת.
  • חוט זה אמור לעבור על פני ה- LED האחרון שלך כדי ליצור ממשק קל כאשר נוסיף חוטי שליטה.

5. חזור על חלקים 1-4 עד שיש לך את כל הלדים במקום וכל אוטובוסי העמודים מולחמים.6. ליצירת אוטובוס שורה, כופפו כמה ממובילי האנודה בזווית של 90 מעלות כך שהם נוגעים בהובלות האנודה האחרות באותה שורה.

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

7. הלחמו את ההובלות בכל צומת וחתכו את מוליכי האנודה העודפים.

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

8. חזור על חלקים 6 ו -7 עד שכל האוטובוסים בשורות מולחמו. צרף חוטי שליטה.

  • השתמשתי בחוט ליבה מוצק אדום לשורות ובשחור בעמודים.
  • חבר חוט אחד לכל עמודה ואחד לכל שורה. ניתן לעשות זאת בקלות בסוף כל אוטובוס.

חָשׁוּב

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

שלב 3: חומרת הבקרה

חומרת השליטה
חומרת השליטה
חומרת השליטה
חומרת השליטה

עלינו לשלוט בעמודות ובשורות מטריצת ה- LED שלנו. המטריצה נבנתה כך שהאנודות (צד המתח של ה- LED) מהוות את השורות, והקתודות (הצד הקרקע של ה- LED) מהוות את העמודים. המשמעות היא שנהג השורה שלנו צריך לאתר מקור ונהג העמודות שלנו צריך לשקוע אותו. על מנת לחסוך בסיכות אני משתמש ברישום משמרת כדי לשלוט בעמודות. בדרך זו אוכל לשלוט במספר כמעט בלתי מוגבל של עמודות עם ארבעה סיכות מיקרו -בקר בלבד. אפשר להשתמש בשלושה בלבד אם סיכת הפלט Enable קשורה ישירות למתח. בחרתי את מנהל ההתקן LED HEF4794 עם מרשם משמרות. זוהי אופציה טובה יותר מאשר 74HC595 רגילה מכיוון שהיא יכולה בקלות להטביע את הנוכחי הנוכחי כאשר כל 8 נוריות הנורות דולקות בו זמנית. בצד הגבוה (מקור הנוכחי לשורות) אני משתמש במיקרופון 2981. הסכימה מציגה UDN2981, אני מאמין ששני אלה ניתנים להחלפה. מנהל התקן זה יכול לספק עד 500mA של זרם. מכיוון שאנו נוסעים רק שורה אחת בכל פעם זה נותן הרבה הזדמנויות להרחבה, עד 33 עמודות לשבב הזה (עוד על זה בשלב "המושגים המודולריים").

בניית חומרת השליטה

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

  • הנח את mic2981 (או UDN2981) בלוח הלחם
  • חבר את פין 9 למתח (זה מבלבל בסכימה)
  • חבר את פין 10 לקרקע (זה מבלבל בסכימה)
  • הכנס נגדים 3k3 המתחברים לפינים 1-8
  • התחבר מיציאה D של ה- ATmega8 (PD0-PD8) ל -8 הנגדים
  • חבר את חוטי הבקרה של 8 השורות של מטריצת ה- LED לפינים 11-18 (שים לב שחיברתי את השורה הנמוכה ביותר של נוריות לפין 18 ואת השורה הגבוהה ביותר לפין 11).

2. נהג טור

  • מניחים את hef4794 בלוח הלחם
  • חבר את פין 16 למתח
  • חבר את פין 8 לקרקע
  • חבר נגדי 220 אוהם לסיכות 4-7 ו-11-14.
  • חבר את 8 חוטי הבקרה של עמודות ממטריצת ה- LED ל -8 הנגדים שחיברת זה עתה.
  • חבר את Pin1 (Latch) ל- PC0 של ה- ATmega8
  • חבר את Pin2 (נתונים) ל- PC1 של ה- ATmega8
  • חבר את Pin3 (שעון) ל- PC2 של ה- ATmega8
  • חבר את Pin15 (Enable Output) ל- PC3 של ה- ATmega8

3. שעון קריסטל

חבר קריסטל 12 מגהרץ והעמיס קבלים כפי שמוצג בסכימה

4. ספק שירותי אינטרנט

חבר את כותרת התכנות כפי שמוצג בסכימה

5. סינון קבלים ונגד משיכה

  • עדיף לסנן את המתח המסופק ל- ATmega8. השתמש בקבל 0.1uf בין פין 7 ו -8 של ה- ATmega8
  • אין להשאיר את סיכת האיפוס צפה מכיוון שהיא עלולה לגרום לאיפוס אקראי. השתמש בנגד כדי לחבר אותו למתח, כל דבר בערך 1K צריך להיות טוב. השתמשתי בנגד 10k בסכימה.

6. וודא שאתה משתמש בהספק מוסדר +5v. זה תלוי בך לעצב את הרגולטור.

שלב 4: תוכנה

הטריק

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

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

זה קורה מהר מאוד מאוד. ההפסקה נזרקת כל 1 שניות. המשמעות היא שאנו מרעננים את כל התצוגה בערך אחת לשמונה שניות. המשמעות היא קצב תצוגה של סביב 125 הרץ. יש חשש לגבי הבהירות מכיוון שאנחנו בעצם מפעילים את הנורות במחזור עבודה של 1/8 (הם כבויים 7/8 מהזמן). במקרה שלי אני מקבל תצוגה בהירה מספיק ללא הבזקים גלויים. תצוגת ה- LED המלאה ממופתת במערך. בין ההפסקות ניתן לשנות את המערך (שים לב לאטומיות) והוא יופיע על הצג במהלך ההפסקה הבאה. הפרטים של כתיבת קוד עבור המיקרו -בקר AVR ושל אופן כתיבת הקוד כדי לדבר עם רשמי המשמרות הם מעבר להיקף של זה ניתן להנחיה. צירפתי את קוד המקור (כתוב ב- C ומורכב עם AVR-GCC) וכן את קובץ ה- hex לתכנות ישירות. הערתי את כל הקוד כך שתוכל להשתמש בזה כדי לנקות שאלות לגבי אופן הכנסת הנתונים לרשם המשמרות וכיצד פועל רענון השורות. שים לב שאני משתמש בקובץ גופנים שהגיע עם ks0108 ספריית אוניברסלית C. את הספרייה הזו ניתן למצוא כאן:

משמרות רשימות: כיצד

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

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

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

הגדרת שפל התפס מציינת את רשימת המשמרות שאנו עומדים לכתוב לו

שלב 2: הגדר את סיכת הנתונים לערך ההיגיון שברצונך לשלוח לרשומת המשמרת שלב 3: הגדר את סיכת השעון גבוהה, ואמר לרשומת Shift לקרוא את ערך סיכת הנתונים הנוכחי.

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

שלב 4: הגדר את סיכת השעון נמוכה וחזור על שלבים 2 ו -3 עד שכל הנתונים נשלחו לרשם המשמרות.

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

שלב 5: הגדר את הבריח גבוה

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

שלב 6: הגדר את הפלט פלט גבוה

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

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

פנייה לתצוגה

בתוכנית לדוגמא יצרתי מערך של 8 בתים בשם row_buffer . כל בת מתאים לשורה אחת בתצוגת 8x8, שורה 0 היא התחתונה ושורה 7 היא העליונה. הקטע הפחות משמעותי מכל שורה הוא מימין, הקטע המשמעותי ביותר משמאל. שינוי התצוגה קל כמו כתיבת ערך חדש לאותו מערך נתונים, שגרת השירות להפריע דואגת לרענן את התצוגה.

תִכנוּת

תכנות לא יידון כאן בפירוט. הייתי מזהיר אותך לא להשתמש בכבל תכנות DAPA מכיוון שאני מאמין שלא תוכל לתכנת את השבב ברגע שהוא יפעל במהירות 12MHz. כל המתכנתים הסטנדרטיים האחרים צריכים לפעול (STK500, MKII, Dragon, מתכנתים מקבילים/סדרתיים וכו '). נתיכים: הקפד לתכנת את הנתיכים לשימוש ב- 12MHz crystalhfuse: 0xC9lfuse: 0xEF

בִּפְעוּלָה

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

שלב 5: מושגים מודולריים

מושגים מודולריים
מושגים מודולריים
מושגים מודולריים
מושגים מודולריים
מושגים מודולריים
מושגים מודולריים
מושגים מודולריים
מושגים מודולריים

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

מתמטיקה

אני מניע את הנורות בסביבות 15mA (5V-1.8vDrop/220ohms = 14.5mA). זה אומר שאני יכול לנהוג עד 33 עמודות עם מנהל ההתקן mic2981 (500mA/15mA = 33.3). מחולק ב 8 אנו יכולים לראות שזה מאפשר לנו לחבר 4 רגידי משמרות. קח בחשבון שגם אתה לא צריך שכל 32 העמודות נמתחות משמאל לימין. תוכל במקום זאת ליצור מערך 16x16 המחובר לחוטי באותו אופן שבו היית מערך 8x32. זה יטופל על ידי הזזה של 4 בתים…. שני הראשונים היו עוברים עד הלדים בשורה ה -9, שני הבייטים האחרים היו עוברים לשורה הראשונה. שתי השורות יגיעו באמצעות סיכה אחת במנהל ההתקנים.

רשימות משמרות מדורגות

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

מנהלי התקנים מרובים

מנהל ההתקן שורה (mic2981) יכול לספק מספיק זרם בכדי להניע 32 עמודות. מה אם אתה רוצה יותר מ -32 עמודות? זה צריך להיות אפשרי להשתמש במספר מנהלי התקנים בשורה מבלי להשתמש יותר בסיכות מיקרו -בקר. אנו זקוקים למנהלי השורות לאתר מספיק זרם כדי להדליק את הנורות.אם אתה משתמש יותר עמודות ממה שניתן להאיר בו זמנית, מנהלי שורות נוספות יכולים לספק את הזרם הדרוש. נעשה שימוש באותם סיכות קלט מהמיקרו -בקר כך שאין צורך לשנות את סריקת השורות. במילים אחרות, כל נהג שולט בשורות עבור בלוק 8x32. למרות ש- 64 עמודות עשויות להיות בעלות אותה מיקום בשורות PHYSICAL, אנו מחלקים את אוטובוסי השורות לשניים, באמצעות נהג אחד עבור 8 השורות של 32 העמודות הראשונות, ומנהג שני עבור 8 השורות של 32 העמודות השונות וכן הלאה. סכמטי לכך ניתן להלן כדוגמה. צעדים פוטנציאליים: 1. אין להשתמש במנהלי שורות מרובים עם אותו מספר עמודות. משמעות הדבר היא שכל סיכת רישום משמרת תניע יותר מ- LED אחד בכל פעם. עליך להכיל קבוצה של 8 נגדים (3k3) לכל נהג שורה, ערכה אחת עבור מנהלי התקנים מרובים לא תעבוד מכיוון שהיא לא תספק את הזרם הדרוש להחלפת השערים.

לדוגמה

החלטתי להרחיב על המטריצה שבניתי קודם. הוספתי עוד 7 שורות בסך הכול של 15 כיוון שזה כל מה שאני יכול להתאים לפרוטובורד הזה. גיליתי גם עכשיו על תחרות ש- Instructables עורכת בשם "Let it Glow". להלן סרטון של דעתי בנושא. שוב, המצלמה הדיגיטלית בה השתמשתי לצלם את הסרטון אינה עושה לה צדק. זה נראה נהדר לעין האנושית, במיוחד במקום בו כל נוריות הבהוב מהבהבות, אך לא נראה טוב באותה מידה בסרטון. תהנה: קוד המקור לתצוגה גדולה יותר זו כלול למטה.

שלב 6: מסקנה

תוספות אפשריות

I2CI השאירו את סיכות ממשק שני החוטים (I2C) ללא שימוש בעיצוב זה. ישנם מספר סיכויים מעניינים שיכולים להשתמש בשני הסיכות הללו. הוספת I2C EEPROM תאפשר אחסון של הודעות גדולות בהרבה. יש גם סיכוי לעצב תכנות שיהפוך את ה- mega8 למנהל התצוגה התואם I2C. זה יפתח את האפשרות של התקן USB המאפשר להציג נתונים על מערך ה- LED שלך על ידי העברתם מעל אוטובוס I2C. קלט נותרו הרבה סיכות שיכולות לשמש לחצנים או מקלט IR. זה יאפשר לתכנת הודעות באמצעות מערכת תפריטים. תצוגה עבור ההנחיה הזו יישמתי רק כמה פונקציות תצוגה. אחד פשוט כותב תווים לתצוגה, השני מגולל תווים אל הצג. הדבר החשוב לזכור הוא שמה שאתה רואה באורות מיוצג במערך נתונים. אם תמצא דרכים לקצץ לשנות את מערך הנתונים, הנורות ישתנו באותו אופן. כמה הזדמנויות מפתות כוללות יצירת מד גרפים מתוך העמודות. זה יכול לשמש כמנתח אותות עם סטריאו. ניתן ליישם גלילה מלמעלה למטה או מלמטה למעלה, אפילו משמאל לימין. בהצלחה תהנה!

שלב 7: מעקב

תתעדכן
תתעדכן
תתעדכן
תתעדכן
תתעדכן
תתעדכן
תתעדכן
תתעדכן

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

תכונות לוח המעגלים

  • רשימות משמרות נמצאות על לוחות נפרדים הניתנים לחיבור חיבורי לחיבור יחד כדי להגדיל את גודל התצוגה.
  • ללוח הבקר יש ווסת כוח משלו כך שניתן להפעיל אותו על ידי כל מקור חשמל המספק 7v-30v (סוללה 9v או ספק ספסל 12v שניהם עובדים מצוין בשבילי).
  • כותרת ISP של 6 פינים כלולה כך שניתן לתכנת מחדש את המיקרו -בקר מבלי להסיר אותו מהלוח.
  • כותרת בעלת 4 פינים זמינה לשימוש עתידי באוטובוס I2C. זה יכול לשמש עבור eeprom לאחסון הודעות נוספות או אפילו להפוך אותו למכשיר עבדים הנשלט על ידי מיקרו -בקר אחר (סימן RSS למישהו?)
  • 3 כפתורי לחיצה רגעיים כלולים בעיצוב. אני עשוי לשנות את הקושחה בעתיד כדי לכלול את השימוש בלחצנים אלה.

הַרכָּבָה

תן לי פרספקס, סוגריים לזווית, ברגי מכונה 6x32, אגוזים ומכבסים, כמו גם ברז להגדיר חורי הברגה ואני יכול ליצור כל דבר.

פרס שני ב"זהיר אותו!"

מוּמלָץ: