في هذا المقال سنتعلّم عن مصفوفة الليدات LED Matrix Display من خلال تصميم مشروعَين مختلفَين باستخدام الأردوينو Arduino، الأوّل عبارة عن تطبيق لاستخدام المصفوفة في عرض المعلومات (حتى المعلومات والصور المتحركة) على الشاشة، بينما سيكون المشروع الثّاني على مستوى أعلى من التّحكّم بالمصفوفة عن طريق الأردوينو.تُمثِّل مصفوفة الأضواء مصفوفةً ذاتَ بعدَين مُكوَّنة من الليدات LEDs التي تستخدم لعرض الرموز والمحارف والصور، وحسب اتجاه الليدات في المصفوفة سينتج لدينا نوعَين من المصفوفات والتي هي Common Row Cathode، Common Row Anode
وممّا لا يخفى على أحد أنّ مصفوفة الليدات من القطع الالكترونية المحبّبة والشهيرة في المشاريع الهندسيّة التي تتطلب شاشةً لعرض التنبيهات أو الإشعارات.
المشروع الأول:
كما ذكرنا سابقاً : المشروع الأوّل عبارة عن تطبيق لاستخدام المصفوفة في عرض المعلومات.
يُبيّن الشّكل (1) محاكاةً لتصميم الدّارة ويُبيّن الشّكل (2) كيفيّة تنفيذ الدّارة المصمَّمة.
الشكل (1) محاكاة لتصميم الدّارة
الشكل (2) تنفيذ الدّارة المصمّمة
المكوِّنات اللّازمة:
- لوحة التّطوير أردوينو أونو
- مصفوفة ليدات نقطيّة 88x
- الدّارة المتكاملة MAX7219
- مقاومة 10 كيلو أوم
- مكثّفة 0.1 مايكرو فاراد
- مكثّفة 10 مايكرو فاراد
شرح عن القطع المستخدَمة:
-
لوحة التّطوير أردوينو:
يستند هذا المشروع بالطبع على لوحة التطوير أردوينو حيث لن نحتاج إلّا إلى( 3 ) منافذ رقميّة من مُجمَل عدد المنافذ الرقميّة الـ14 الخاصّة بالأردوينو.
يؤمِّن المنفذ الأوّل إشارة السّاعة Clock لدارة قيادة المصفوفة MAX-7219، بينما تُستخدم باقي المنافذ في نقل المعلومات بشكل تسلسليّ إلى دارة القيادة لعرضها على المصفوفة، وبالطبع المنافذ المَعنيّة بالمشروع يجب أن تُعرّف بشكل واضح في كود البرنامج.
-
مصفوفة الليدات
سنستخدم المصفوفة في عرض معلومات، تأتي المصفوفة بأنماط مختلفة لونياً كنمط أحاديّ اللون أو ثنائيّ اللون أو نمط متعدد الألوان (RGB)، كما تأتي بأبعاد مختلفة مثل 5X7,8X8,16X16,32X32 وغيرها، وكما ذكرنا سالفاً حسب توضع الليدات سينتج لدينا نوعين Common Row Cathode أو Common Row Anode.
في نوع المصعد المشترك: تُوصَل منابع التّيّار (الجهد العالي أو الموجب) مع الأسطر من A-D، وتُوصَل مصارف التّيّار (الجهد السالب أو الأرضي) مع الأعمدة من 4-1 كما هو مُوضّح في الشّكل (3).
الشكل (3) توضُّع الليدات في نوع المصعد المشترك
أمّا في نوع المهبط المشترك: تُوصَل مصارف التّيّار مع الأسطر من A-D، أمّا منابع التّيّار فتوصَل مع الأعمدة من 4-1 كما يوضّح الشكل (4).
من الضروري معرفة نوع التوصيلة التي تُستَخدَم لتتمّ كتابة كود البرنامج بناءً عليها وسنستخدم هذا النوع –المهبط المشترك- في مشروعنا هذا.
الشكل (4) توضُّع الليدات في نوع المهبط المشترك
-
الدّارة المتكاملة IC MAX_7219
يمكن قيادة مصفوفة الليدات بطريقتين، إما بشكل تفرعي حيث يرسل كل سطر أو عمود بشكل تفرعي المعلومات أو بشكل تسلسلي (حيث ترسل المعلومات بشكل تسلسلي وتستخدم دارة القيادة في تحويل المعلومات التسلسلية إلى تفرعية).
تُعتبَر الدّارة المتكاملة MAX_7219 دارة قيادة شهيرة خاصة بالشاشة ذات المهبط المشترك بدَخْل تسلسليّ وخَرْج تفرعيّ، وتُستخدم لتأمين الاتّصال بين المتحكّم المستخدَم ومصفوفة الليدات المستخدَمة 8×8، وتوصَل الدّارة المتكاملة مع المصفوفة (كما هو موضّح في الشّكل (1) ) وترسل معلومات الدَّخل من لوحة الأردوينو إلى دارة القيادة ومنها إلى مصفوفة الليدات.
ملاحظة:
يتوفَّر في الأسواق أنواعٌ من المصفوفات تأتي كنموذج جاهز يتضمّن شريحة القيادة، ويوضح الشكل (5) أحد هذه النّماذج.
الشكل (5) نموذج مصفوفة ليدات متضمّناً لدارة القيادة.
تنفيذ المشروع:
يهدف المشروع لعرض المعلومات على مصفوفة الليدات عن طريق ربطها مع أردوينو، وبالرغم من استخدامنا لمصفوفة 8×8 مع دارة القيادة، إلّا أنّه يمكننا أيضاً استخدام عدّة مصفوفات على التّسلسل لعرض المعلومات الطويلة كشريط متحرّك.
يُنفَّذ المشروع كما يلي:
أولاً: يجب توصيل المكوّنات وفق الشّكلين (1) و(2)، حيث نستخدم 3 منافذ رقميّة للتّحكّم بدارة القيادة MAX 7219، المنافذ الثلاثة هي: السّاعة ودخل البيانات و الحمل (أو يكون CS كما في الشّريحة MAX 7221)، مع ملاحظة أنّ أعظمَ تردّد ساعةٍ يمكنُ أنْ نعملَ عليه هو10MHz ، وأنّ منفذَ الـDIN الخاصّ ببيانات الدَّخل يقبل بيانات تسلسليّة من المتحكّم الأردوينو والتي ستكون بطول 16 بت، حيث تُستخدَم أوّل 8 بتات (D0-D7) للتّحكّم بأعمدة المصفوفة (A-G SEG ) و منفذ DP الخاص بدارة القيادة، والثمانية بتات اللاحقة (D8-D15) للتّحكّم بأسطر المصفوفة (DEG 0-7 of MAX7219). أمّا منفذ الحمل load pin(الذي يكون CS في الشريحة MAX 7221) سيثبِّت دخْل البيانات التسلسليّ على الحافّة الصاعدة.
المنفذ ISET في دارة القيادة يحدِّد التّيّار الأعظميّ لعمل الليدات ويوصَل عبر مقاومة R1 والتي تُسمّى RSET، والمكثِّفات تعمل على فلترة الضّجيج من التّغذية.
عند إرسال المعلومات باستخدام الأردوينو ستحوَّل المعلومات التسلسليّة إلى مقاطع وأرقام للتّحكّم بأعمدة وأسطر المصفوفة، وبناءً على الرسالة المرسَلة ستضيئ الليدات لعرضها.
الكود المستخدَم لهذا المشروع يعرض رسالة نصيّة متحرِّكة، ولكن سيكون من الصّعب عرض رسالة طويلة على مصفوفة واحدة لذلك سنقوم بوصل عدّة مصفوفات بشكل سلسلة لعرض المعلومات، وبالطبع عدد دارات القيادة يجب أن يكونَ مطابقاً لعدد المصفوفات، لذلك في حال أردنا استخدام عدة مصفوفات يُوصل منفذDOUT من دارة القيادة الأولى مع منفذ DIN لدارة القيادة الثانية، ونكرر هذا التوصيل على كلِّ دارات القيادة.
ملاحظات مهمّة:
- تموضُع مصفوفات الليدات في السّلسلة مهمٌّ جداً حيث يجب أن تكونَ المصفوفة الأولى على يمين السّلسلة.
- هذا البرنامج يعتمد على مكتبة Ledontrol والتي يجب أن تكونَ منصبةً على كومبايلر الأردوينو ومضمَّنة في ترويسة HEADER الكود البرمجيّ.
- تُستخدَم المكتبة السّابقة من أجل تفعيل عمل دارات القيادة معاً بالإضافة إلى إرسال المعلومات النّصيّة المتحرِّكة.
الكود البرمجي : التحميل من هنا
المشروع الثاني:
ربط مصفوفة الليدات 8x8 مع الأردوينو واستخدام تطبيق أندرويد لإرسال المعلومات
يستند هذا المشروع على تقنيّة الاتّصال عبر البلوتوث، حيث يُستخدَم تطبيق أندرويد لإرسال المعلومات وإظهارها على مصفوفة الليدات بشكل مشابه للمشروع السابق مع إضافة شريحة بلوتوث للتّحكّم بإرسال المعلومات. ويوضِّح الشّكل (6) مخطَّط منافذ المصفوفة.
الشكل (6) مخطَّط منافذ مصفوفة الليدات
كما نلاحظ فإنّ مصفوفة الليدات 8×8 تتألّف من 16 منفذاً: 8 أسطر و8 أعمدة وعادةً تكون الأسطر متّصلة بمصاعد الـLEDs والأعمدة بالمهابط.
المكونات اللازمة:
- أردوينو أونو
- دارة قيادة MAX7219
- مصفوفة ليدات 8×8
- شريحة بلوتوث HC-05
- جهاز أندرويد مع التّطبيق
تصميم الدارة :
بما أنّ الاتّصال بين لوحة الأردوينو ودارة القيادة مبنيٌّ على بروتوكول الاتّصال SPI ، فإنّ جُلّ ما نحتاجُه هو 3 منافذَ من الأردوينو هي 10 و11 و12 نصلُها مع منافذ دارة القيادة التّالية DATA ونبضة السّاعة وCS، وكذلك طالما أنّ الاتّصال بين جهاز الأندرويد والأردوينو يتمُّ عبر تقنية البلوتوث، فإنّ المنافذ TX وRX من شريحة البلوتوث سنوصلها مع منافذ TXوRX من الأردوينو (منفذ1 و2).
يُبيِّن الشّكل (7) مخطّطاً يحاكي دارة هذا المشروع.
الشكل (7) مخطّط دارة المشروع
عرض المعلومات على مصفوفة الليدات باستخدام تطبيق أندرويد:
لن نخوض في موضوع برمجة تطبيق الأندرويد وسنستخدم تطبيقاً جاهزاً مخصّصاً لهذه المَهمّة، وتكون واجهتُه مشابهةً للصورة الموضَّحة في الشَّكل (8)
الشكل (8) واجهة تطبيق الأندرويد المستخدَم لعرض المعلومات على مصفوفة الليدات
تتألّف واجهة هذا التّطبيق من مصفوفة مربّعات 8×8 (كلُّ مربع يمثِّل led من مصفوفة الليدات) وزرَّي تفعيل وإنهاء اتّصال. في حال الضّغط على أحد المربّعات سيضيء ضوء المقابل له في مصفوفة الليدات، ويتغيَّر لونُ المربَّع في واجهة التّطبيق للّون الأحمر وذلك للدّلالة على عمل الـLED في مصفوفة الليدات، وعند ضغط المربّع مرّة أخرى سيطفَأ الLED ويعود المربّع للّون الرماديّ.
زرّ الـRESET الموجود في أسفل واجهة البرنامج يُستخدَم لإعادة تهيئة مصفوفة الليدات، أمّا زرّ الـDISCONNECT يُستخدَم لفصل اتّصال البلوتوث، وبالطّبع حتّى يعمل اتّصال البلوتوث يجب التأكُّد من عملية اقتران شريحة البلوتوث مع جهاز الأندرويد.
الكود البرمجيّ : التحميل من هنا
تطبيقات المشروع:
- بما أنّ المنافذ المستخدَمة قليلة يمكن إضافة مصفوفة العرض هذه مع المشاريع الأخرى والاستفادة من بقيّة المنافذ.
- تُستخدَم في لوحات الإعلانات وباصات النّقل والمطارات.
- يمكن دمج عدّة مصفوفات لتشكيل وحدة عرض كبيرة يمكن عرض الصّور عليها بألوان متعددة.