لقد أنشأنا سلسلة من دروس Raspberry Pi التعليمية ، والتي قمنا فيها بتغطية واجهة Raspberry Pi مع جميع المكونات الأساسية مثل LED و LCD والزر ومحرك DC ومحرك مؤازر ومحرك متدرج و ADC وسجل التحول وما إلى ذلك. نشر بعض مشاريع Raspberry Pi البسيطة للمبتدئين ، جنبًا إلى جنب مع بعض مشاريع إنترنت الأشياء الجيدة. اليوم ، استمرارًا لهذه البرامج التعليمية ، سنقوم بالتحكم في 8x8 LED Matrix Module بواسطة Raspberry Pi. سنقوم بكتابة برنامج بيثون لإظهار الحروف على وحدة المصفوفة.
تحقق أيضًا من Interfacing 8x8 LED Matrix مع Arduino و LED Matrix مع AVR Microcontorller.
المكونات المطلوبة:
نحن هنا نستخدم Raspberry Pi 2 Model B مع نظام التشغيل Raspbian Jessie OS. تمت مناقشة جميع متطلبات الأجهزة والبرامج الأساسية مسبقًا ، يمكنك البحث عنها في مقدمة Raspberry Pi و Raspberry PI LED Blinking للبدء ، بخلاف ما نحتاج إليه:
- لوحة Raspberry Pi
- مزود الطاقة (5 فولت)
- مكثف 1000 فائق التوهج (متصل عبر مزود الطاقة)
- 1KΩ المقاوم (8 قطع)
وحدة مصفوفة 8x8 LED:
تحتوي وحدة مصفوفة 8 * 8 LED على 64 LED (ثنائيات انبعاث للضوء) مرتبة في شكل مصفوفة ، ومن هنا الاسم هو مصفوفة LED. تتوفر هذه الوحدات المدمجة بأحجام مختلفة والعديد من الألوان. يمكن للمرء أن يختارها على راحته. تكوين PIN للوحدة كما هو موضح في الصورة. ضع في اعتبارك أن دبابيس الوحدة ليست بالترتيب ، لذا يجب ترقيم أرقام التعريف الشخصية تمامًا كما هو موضح في الصورة لتجنب الأخطاء.
هناك 8 + 8 = 16 طرفًا مشتركًا في وحدة مصفوفة LED. فوقهم ، لدينا 8 أطراف موجبة مشتركة و 8 أطراف سالبة مشتركة ، في شكل 8 صفوف و 8 أعمدة ، لتوصيل 64 LED في شكل مصفوفة. إذا تم رسم الوحدة في شكل مخطط دائرة ، فسنحصل على صورة كما هو موضح أدناه:
لذلك بالنسبة لثمانية صفوف ، لدينا 8 محطات طرفية موجبة مشتركة (9 ، 14 ، 8 ، 12 ، 17 ، 2 ، 5). ضع في اعتبارك الصف الأول ، تحتوي مصابيح LED من D1 إلى D8 على طرف موجب مشترك ويتم إخراج الدبوس عند PIN9 لوحدة مصفوفة LED. عندما نريد تشغيل واحد أو كل مصابيح LED في الصف ، يجب أن يتم تشغيل الطرف المقابل لوحدة LED مع + 3.3 فولت.
على غرار المحطات الموجبة الشائعة ، لدينا 8 محطات سلبية مشتركة كأعمدة (13 ، 3 ، 4 ، 10 ، 6 ، 11 ، 15 ، 16). لتأريض أي LED في أي عمود ، يجب تأريض الطرف السالب المشترك ذي الصلة.
شرح الدائرة:
يتم عرض التوصيلات التي تمت بين Raspberry Pi ووحدة مصفوفة LED في الجدول أدناه.
وحدة مصفوفة LED رقم الدبوس. |
وظيفة |
Raspberry Pi GPIO Pin No. |
13 |
إيجابي 0 |
GPIO12 |
3 |
إيجابي 1 |
GPIO22 |
4 |
إيجابي 2 |
GPIO27 |
10 |
إيجابي 3 |
GPIO25 |
6 |
إيجابي 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 مع Raspberry Pi:
شرح العمل:
هنا سوف نستخدم تقنية Multiplexing لعرض الأحرف على وحدة مصفوفة LED 8x8. لذلك دعونا نناقش هذا التعدد بالتفصيل. لنفترض أنه إذا كنا نريد تشغيل LED D10 في المصفوفة ، فنحن بحاجة إلى تشغيل PIN14 للوحدة وتأريض PIN3 للوحدة. مع هذا LED D10 سوف يعمل كما هو موضح في الشكل أدناه يجب أيضًا التحقق من ذلك أولاً حتى تعرف MATRIX أن كل شيء على ما يرام.
الآن ، لنفترض أننا إذا أردنا تشغيل D1 ، فنحن بحاجة إلى تشغيل PIN9 للمصفوفة وتثبيت PIN13. مع هذا سوف يتوهج LED D1. يظهر الاتجاه الحالي في هذه الحالة في الشكل أدناه.
الآن بالنسبة للجزء الصعب ، ضع في اعتبارك أننا نريد تشغيل كل من D1 و D10 في نفس الوقت. لذلك يجب علينا تشغيل كل من PIN9 و PIN14 والأرضي لكل من PIN13 و PIN3. سيؤدي هذا إلى تشغيل LED D1 و D10 ، ولكن إلى جانب ذلك سيتم تشغيل LED D2 و D9. ذلك لأنهم يتشاركون محطات مشتركة. لذلك إذا أردنا تشغيل مصابيح LED على طول القطر ، فسنضطر إلى تشغيل جميع مصابيح LED على طول الطريق. هذا موضح في الشكل أدناه:
لتجنب هذه المشكلة ، نستخدم تقنية تسمى Multiplexing. لقد ناقشنا أيضًا تقنية المضاعفة هذه أثناء ربط مصفوفة 8x8 LED مع AVR ، هنا نوضح مرة أخرى. تُستخدم تقنية تعدد الإرسال نفسها أيضًا في Scrolling Text على مصفوفة LED 8x8 مع Arduino ومع متحكم AVR.
لا يمكن للعين البشرية التقاط تردد يزيد عن 30 هرتز. هذا إذا تم تشغيل وإيقاف تشغيل LED بشكل مستمر بمعدل 30 هرتز أو أكثر. ترى العين أن مؤشر LED يعمل باستمرار. ومع ذلك ، ليس هذا هو الحال وسيتم تشغيل LED وإيقاف تشغيله باستمرار. هذه التقنية تسمى مضاعفة.
لنفترض على سبيل المثال ، أننا نريد فقط تشغيل LED D1 و LED D10 دون تشغيل D2 و D9. الحيلة هي أننا سنوفر أولاً الطاقة لـ LED D1 فقط باستخدام PIN 9 و 13 وانتظر 1mSEC ، ثم سنقوم بإيقاف تشغيله. ثم سنوفر الطاقة لـ LED D10 باستخدام PIN 14 و 3 وانتظر 1mSEC ثم نقوم بإيقاف تشغيله. تستمر الدورة بتردد عالٍ وستعمل D1 و D10 على التشغيل والإيقاف بسرعة وسيظهر كل من مصابيح LED لأعيننا باستمرار. يعني أننا نوفر الطاقة لصف واحد فقط (LED) في كل مرة ، مما يلغي فرص تشغيل مصابيح LED الأخرى في صفوف أخرى. سنستخدم هذه التقنية لإظهار جميع الشخصيات.
يمكننا فهمها بشكل أكبر من خلال مثال واحد ، مثل إذا أردنا عرض "أ" على المصفوفة ، كما هو موضح أدناه:
كما قيل ، سنقوم بتشغيل صف واحد في لحظة ،
عند 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 مصفوفة باستخدام توت العليق بي ويرد أدناه. تم شرح البرنامج بشكل جيد من خلال التعليقات. يتم إعطاء قيم المنفذ لكل حرف في البرنامج. يمكنك إظهار أي حرف تريده بمجرد تغيير قيم "pinp" في "حلقات for" في البرنامج المحدد. تحقق أيضًا من الفيديو التوضيحي أدناه.