יצרנו סדרה של מדריכי Raspberry Pi, בהן כיסינו את הממשק של Raspberry Pi עם כל הרכיבים הבסיסיים כמו LED, LCD, כפתור, מנוע DC, מנוע סרוו, מנוע צעד, ADC, Register register וכו '. פרסם כמה פרויקטים פשוטים של פטל פי למתחילים, יחד עם כמה פרויקטים טובים של IoT. היום, בהמשך להדרכות אלו, אנו הולכים לשלוט במודול מטריקס LED 8x8 על ידי Raspberry Pi. נכתוב תוכנית פיתון שתציג תווים במודול המטריצה.
בדוק גם ממשק מטריקס 8x8 LED עם Arduino ו- LED מטריקס עם AVR Microcontorller.
רכיבים נדרשים:
כאן אנו משתמשים ב- Raspberry Pi 2 דגם B עם Raspbian Jessie OS. כל דרישות החומרה והתוכנה הבסיסיות נדונו בעבר, אתה יכול לחפש את זה במבוא Raspberry Pi ו- Raspberry PI LED מהבהב להתחלה, מלבד זה שאנחנו צריכים:
- לוח פטל פטל
- ספק כוח (5V)
- קבל 1000uF (מחובר באמצעות ספק כוח)
- נגד 1KΩ (8 חתיכות)
מודול מטריקס 8x8 LED:
מודול מטריצת LED 8 * 8 מכיל 64 נוריות LED (דיודות פולטות אור) המסודרות בצורה של מטריצה, ומכאן השם הוא מטריצת LED. מודולים קומפקטיים אלה זמינים בגדלים שונים ובצבעים רבים. אפשר לבחור בהם לפי הנוחות. תצורת ה- PIN של המודול היא כפי שמוצג בתמונה. זכור, שסיכות ה- pinouts של המודול אינן מסודרות ולכן יש למנות את ה- PIN בדיוק כפי שמוצג בתמונה כדי למנוע שגיאות.
ישנם 8 + 8 = 16 מסופים נפוצים במודול מטריקס LED. מעליהם, יש לנו 8 מסופים חיוביים משותפים ו- 8 מסופים שליליים משותפים, בצורת 8 שורות ו -8 עמודות, לחיבור 64 נוריות בצורת מטריצה. אם המודול היה מצויר בצורה של תרשים מעגל תהיה לנו תמונה כמוצגת להלן:
אז עבור 8 שורות, יש לנו 8 מסופים חיוביים נפוצים (9, 14, 8, 12, 17, 2, 5). שקול את השורה הראשונה, לנורות ה- D1 ל- D8 יש מסוף חיובי משותף והסיכה מוציאה ב- PIN9 של מודול LED מטריקס. כשאנחנו רוצים שאחת או כל נוריות הנמצאות בשורה תהיה דולקת, על הפין המתאים של מודול LED להיות מופעל באמצעות + 3.3 וולט.
בדומה למסופים חיוביים נפוצים, יש לנו 8 מסופים שליליים משותפים כעמודות (13, 3, 4, 10, 6, 11, 15, 16). להארקת כל נורית LED בכל עמודה המסוף השלילי המשותף בהתאמה.
הסבר מעגל:
החיבורים שנעשים בין Raspberry Pi למודול מטריקס LED מוצגים בטבלה שלהלן.
מודול מטריקס LED פין מס. |
פוּנקצִיָה |
פין פי GPIO פטל מס ' |
13 |
חיובי 0 |
GPIO12 |
3 |
חיובי 1 |
GPIO22 |
4 |
POSITIVE 2 |
GPIO27 |
10 |
POSITIVE 3 |
GPIO25 |
6 |
POSITIVE 4 |
GPIO17 |
11 |
חיובי 5 |
GPIO24 |
15 |
פוזיטיבי 6 |
GPIO23 |
16 |
7 |
GPIO18 |
9 |
שלילי 0 |
GPIO21 |
14 |
נגטיב 1 |
GPIO20 |
8 |
נגטיב 2 |
GPIO26 |
12 |
נגטיב 3 |
GPIO16 |
1 |
נגטיב 4 |
GPIO19 |
7 |
נגטיב 5 |
GPIO13 |
2 |
שלילי 6 |
GPIO6 |
5 |
נגטיב 7 |
GPIO5 |
להלן תרשים המעגל הסופי לממשק 8x8 LED מטריקס עם פטל פי:
הסבר עבודה:
כאן נשתמש בטכניקת ריבוב להצגת תווים במודול מטריקס LED 8x8. אז בואו נדבר על ריבוב זה בפירוט. נניח שאם אנו רוצים להדליק את נורית ה- D10 במטריצה, עלינו להפעיל את ה- PIN14 של המודול ולהאריק את ה- PIN3 של המודול. עם נורית ה- D10 הזו תידלק כמוצג באיור להלן. יש לבדוק זאת תחילה כדי ש- MATRIX יידע שהכל תקין.
עכשיו, נניח שאם אנחנו רוצים להפעיל את D1, עלינו להפעיל את PIN9 של המטריצה ולהאריק את ה- PIN13. עם זה LED D1 יהיה זוהר. הכיוון הנוכחי במקרה זה מוצג באיור להלן.
עכשיו עבור החלק המסובך, שקול שאנחנו רוצים להפעיל את D1 ו- D10 בו זמנית. אז אנחנו צריכים להפעיל את PIN9, PIN14 וגם לקרקע את PIN13, PIN3. פעולה זו תדליק את הנורית D1 ו- D10, אך יחד עם זה היא תדליק גם את הנורות D2 ו- D9. זה בגלל שהם חולקים מסופים משותפים. כך שאם נרצה להדליק את נוריות ה- LED לאורך האלכסון, ניאלץ להדליק את כל ה- LED לאורך הדרך. זה מוצג באיור להלן:
כדי להימנע מבעיה זו, אנו משתמשים בטכניקה הנקראת Multiplexing. דנו גם בטכניקת ריבוב זו תוך ממשק מטריקס 8x8 LED עם AVR, כאן אנו מסבירים שוב. אותה טכניקת ריבוב משמשת גם בטקסט גלילה על מטריצת LED 8x8 עם Arduino ועם מיקרו בקר AVR.
העין האנושית אינה יכולה לתפוס תדר העולה על 30 הרץ. כלומר אם נורית LED דולקת ונכבה ברציפות בקצב של 30Hz או יותר. העין רואה את נורית ה- LED דולקת באופן רציף. עם זאת זה לא המקרה והנורית תידלק ונדלק כל הזמן. טכניקה זו נקראת Multiplexing.
נניח לדוגמא, אנו רוצים להדליק רק את נורית ה- D1 ואת ה- LED D10 מבלי להדליק את D2 ו- D9. הטריק הוא, ראשית נספק חשמל רק לד D1 באמצעות PIN 9 & 13 ונחכה ל- 1mSEC, ואז נכבה אותו. אז נספק חשמל ל- LED D10 באמצעות PIN 14 & 3 ונחכה ל- 1mSEC ואז יכבה אותו. המחזור עובר ברציפות בתדירות גבוהה ו- D1 & D10 יופעלו ונכבו במהירות ושתי הנוריות ייראו דולקות ברציפות לעינינו. פירושו שאנחנו מספקים כוח רק לשורה אחת (LED) בכל פעם, ומבטלים את הסיכוי להדליק נוריות אחרות בשורות אחרות. נשתמש בטכניקה זו כדי להציג את כל הדמויות.
אנו יכולים להבין זאת על ידי דוגמה אחת, כמו אם אנו רוצים להציג "A" על המטריצה, כמו שמוצג להלן:
כאמור נפעיל שורה אחת ברגע, בשעה t = 0m SEC, PIN09 מוגדר HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 1m SEC, PIN14 מוגדר כ HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
ב- t = 2m SEC, PIN08 מוגדר כ HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 3m SEC, PIN12 מוגדר כ HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 4m SEC, PIN01 מוגדר HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 5m SEC, PIN07 מוגדר HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN4, PIN10, PIN6, PIN11, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 6m SEC, PIN02 מוגדר HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
בשעה t = 7m SEC, PIN05 מוגדר HIGH (סיכות ROW אחרות נמוכות בשלב זה) בשלב זה, PIN13, PIN3, PIN15, PIN16 מקורקעים (סיכות COLUMN אחרות גבוהות בשלב זה)
במהירות זו, התצוגה תראה כמציגה באופן רציף תו "A" כפי שמוצג באיור.
תוכנית פייתון להצגת דמויות על מטריקס LED באמצעות פטל Pi היא כדלקמן. התוכנית מוסברת היטב על ידי הערות. ערכי הנמל עבור כל דמות ניתנים בתוכנית. אתה יכול להציג את כל התווים שאתה רוצה על ידי פשוט לשנות את ערכי 'הצמדה' ב'לולאות ' בתוכנית הנתונה. בדוק גם את סרטון ההדגמה למטה.