جدول المحتويات:

MAX7219 LED Dot Matrix Assembly والاختبار: 6 خطوات (مع صور)
MAX7219 LED Dot Matrix Assembly والاختبار: 6 خطوات (مع صور)

فيديو: MAX7219 LED Dot Matrix Assembly والاختبار: 6 خطوات (مع صور)

فيديو: MAX7219 LED Dot Matrix Assembly والاختبار: 6 خطوات (مع صور)
فيديو: Display Your Name With Arduino | MAX7219 LED Matrix Display 2024, يوليو
Anonim
Image
Image
تحقق من العبوة
تحقق من العبوة

شاشة Dot-Matrix عبارة عن جهاز عرض يحتوي على ثنائيات انبعاث ضوئي محاذاة في شكل مصفوفة ، تُستخدم شاشات العرض هذه في التطبيقات التي يلزم فيها عرض الرموز والرسومات والأحرف والحروف الأبجدية والأرقام معًا في شكل ثابت وكذلك حركة التمرير: يتم تصنيع شاشة العرض المصفوفة النقطية بأبعاد مختلفة مثل 5 × 7 و 8 × 8 و 16 × 8 و 128 × 16 و 128 × 32 و 128 × 64 حيث تمثل الأرقام مصابيح LED في الصفوف والأعمدة ، كما تأتي هذه الشاشات بألوان مختلفة مثل الأحمر والأخضر والأصفر والأزرق ، برتقالي ، أبيض.

في هذا Instructable ، سأقوم بتوصيل 8x8 Dot Matrix التي تحتوي على برنامج تشغيل MAX7219 إلى Arduino Uno ، فلنبدأ.

اللوازم

ماكس 7219

الخطوة 1: افحص العبوة

كما ترى ، لدي إصدار smt من لوحة القيادة ، من المهم جدًا التحقق من كل المكونات المطلوبة لأن مكونات smd صغيرة الحجم جدًا ويمكنك فقدها بسهولة. إصدار smt لحجمه.

الخطوة 2: قليلا عن هذه المصفوفة النقطية

قليلا عن هذه المصفوفة النقطية
قليلا عن هذه المصفوفة النقطية

وحدة واحدة يمكن أن تدفع الكاثود المشترك 8x8 نقطية.

جهد التشغيل: 5 فولت

الأبعاد: الطول 3.2 سم × 3.2 سم عرض × 1.3 سم ، فتحات بأربعة براغي ، قطر 3 مم

وحدات مع واجهات الإدخال والإخراج ، ودعم الوحدات النمطية المتعددة المتتالية.

يتم تحديد محطات إدخال البيانات وإخراجها في الوحدة النمطية.

الخطوة 3: برنامج تشغيل MAX7219

سائق MAX7219
سائق MAX7219
سائق MAX7219
سائق MAX7219

MAX7219 هو IC مصمم للتحكم في 8x8 LED MATRIX. IC عبارة عن محركات عرض ذات مدخلات كاثود مشترك (سلبي عام) تعمل على واجهة المعالجات الدقيقة (أو وحدة التحكم الدقيقة) إلى شاشات LED الرقمية المكونة من 7 مقاطع تصل إلى 8 أرقام أو شاشات الرسم البياني الشريطي أو 64 مصباح LED فردي.

الميزات والمواصفات

نطاق جهد التشغيل: +4.0 إلى + 5.5 فولت

جهد التشغيل الموصى به: + 5 فولت

أقصى جهد للإمداد: 6 فولت

الحد الأقصى للتيار المسموح به من خلال كل دبوس قطعة: 100mA

الحد الأقصى للتيار المسموح به من خلال كل دبوس أرضي DIGIT: 500mA

استهلاك منخفض للطاقة

وقت تأخير البيانات إلى المقطع: 2.2mSec

درجة حرارة التشغيل: 0 درجة مئوية إلى +70 درجة مئوية

درجة حرارة التخزين: -65 درجة مئوية إلى + 150 درجة مئوية

الخطوة 4: الدائرة

الدائرة
الدائرة
الدائرة
الدائرة

الدائرة بسيطة للغاية ويمكن بناؤها باستخدام أسلاك توصيل من الذكور إلى الإناث. ما عليك سوى اتباع pinout وبناء الدائرة. يمكنك لاحقًا تجميعها على ثنائي الفينيل متعدد الكلور إذا كنت تقدم طلبًا دائمًا للمصفوفة.

تكوين الدبوس كما يلي:

  • Vcc إلى دبوس 5V من Arduino.
  • Gnd إلى Gnd Pin من Arduino.
  • DIN إلى Digital Pin 12 من Arduino.
  • CS إلى Digital Pin 11 من Arduino
  • CLK إلى Digital Pin 10 من Arduino.

الخطوة 5: الكود

هنا في هذا Instructable ، سأزودك برمزين مختلفين. سينتج المرء بعض الأبجديات الإنجليزية والابتسامات على المصفوفة. الآخر سوف يضيء 64 LED واحدًا تلو الآخر. يجب عليك استخدام مكتبة lledcontrol لجعلها تعمل.

هذا هو رمز الأبجدية الإنجليزية والابتسامات

# تضمين int DIN = 12 ؛ كثافة العمليات CS = 11 ؛ int CLK = 10 ؛ البايت e [8] = {0x7C ، 0x7C ، 0x60 ، 0x7C ، 0x7C ، 0x60 ، 0x7C ، 0x7C} ؛ البايت d [8] = {0x78، 0x7C، 0x66، 0x66، 0x66، 0x66، 0x7C، 0x78} ؛ البايت u [8] = {0x66، 0x66، 0x66، 0x66، 0x66، 0x66، 0x7E، 0x7E} ؛ البايت ج [8] = {0x7E ، 0x7E ، 0x60 ، 0x60 ، 0x60 ، 0x60 ، 0x7E ، 0x7E} ؛ ثمانية بايت [8] = {0x7E ، 0x7E ، 0x66 ، 0x7E ، 0x7E ، 0x66 ، 0x7E ، 0x7E} ؛ البايت s [8] = {0x7E ، 0x7C ، 0x60 ، 0x7C ، 0x3E ، 0x06 ، 0x3E ، 0x7E} ؛ نقطة البايت [8] = {0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x00 ، 0x18 ، 0x18} ؛ البايت o [8] = {0x7E ، 0x7E ، 0x66 ، 0x66 ، 0x66 ، 0x66 ، 0x7E ، 0x7E} ؛ البايت م [8] = {0xE7 ، 0xFF ، 0xFF ، 0xDB ، 0xDB ، 0xDB ، 0xC3 ، 0xC3} ؛ LedControl lc = LedControl (DIN، CLK، CS، 0) ؛ إعداد باطل () {lc.shutdown (0 ، خطأ) ؛ // إن MAX72XX في وضع توفير الطاقة عند بدء التشغيل lc.setIntensity (0 ، 15) ؛ // اضبط السطوع على القيمة القصوى lc.clearDisplay (0) ؛ // ومسح العرض} حلقة فارغة () {ابتسامة بايت [8] = {0x3C ، 0x42 ، 0xA5 ، 0x81 ، 0xA5 ، 0x99 ، 0x42 ، 0x3C} ؛ بايت محايد [8] = {0x3C، 0x42، 0xA5، 0x81، 0xBD، 0x81، 0x42، 0x3C} ؛ عبوس البايت [8] = {0x3C ، 0x42 ، 0xA5 ، 0x81 ، 0x99 ، 0xA5 ، 0x42 ، 0x3C} ؛ printByte (ابتسامة) ؛ تأخير (1000) ؛ printByte (محايد) ؛ تأخير (1000) ؛ printByte (عبوس) ؛ تأخير (1000) ؛ printEduc8s () ، lc.clearDisplay (0) ، تأخير (1000) ؛ } printEduc8s () باطلة {printByte (e) ؛ تأخير (1000) ؛ printByte (د) ؛ تأخير (1000) ؛ printByte (u) ؛ تأخير (1000) ؛ printByte (ج) ؛ تأخير (1000) ؛ printByte (ثمانية) ؛ تأخير (1000) ؛ طباعة بايت (ق) ؛ تأخير (1000) ؛ printByte (نقطة) ؛ تأخير (1000) ؛ printByte (ج) ؛ تأخير (1000) ؛ printByte (س) ؛ تأخير (1000) ؛ printByte (م) ؛ تأخير (1000) ؛ } printByte فارغ (حرف بايت ) {int i = 0 ؛ لـ (i = 0؛ i <8؛ i ++) {lc.setRow (0، i، character ) ؛ }}

ورمز اختبار جميع مصابيح LED البالغ عددها 64

// علينا دائمًا تضمين المكتبة # تشمل "LedControl.h"

/*

الآن نحن بحاجة إلى LedControl للعمل معه. ***** لن تعمل أرقام التعريف الشخصي هذه على الأرجح مع أجهزتك ***** يتم توصيل دبوس 12 بـ DataIn pin 10 متصل بـ CLK pin 11 متصل بـ LOAD لدينا MAX72XX واحد فقط. * / LedControl lc = LedControl (12 ، 11 ، 10 ، 1) ؛

/ * ننتظر دائمًا قليلاً بين تحديثات العرض * /

وقت تأخير طويل بدون توقيع = 100 ؛

الإعداد باطل() {

/ * MAX72XX في وضع توفير الطاقة عند بدء التشغيل ، يتعين علينا إجراء مكالمة تنبيه * / lc.shutdown (0 ، خطأ) ؛ / * اضبط السطوع على قيم متوسطة * / lc.setIntensity (0 ، 8) ؛ / * وامسح الشاشة * / lc.clearDisplay (0) ؛ }

/*

ستعرض هذه الطريقة الأحرف الخاصة بكلمة "Arduino" واحدة تلو الأخرى على المصفوفة. (تحتاج على الأقل 5x7 مؤشرات LED لرؤية الأحرف بالكامل) * / void writeArduinoOnMatrix () {/ * هنا بيانات الأحرف * / بايت a [5] = {B01111110، B10001000، B10001000، B10001000، B01111110} ؛ بايت r [5] = {B00111110 ، B00010000 ، B00100000 ، B00100000 ، B00010000} ؛ بايت د [5] = {B00011100، B00100010، B00100010، B00010010، B11111110} ؛ بايت u [5] = {B00111100، B00000010، B00000010، B00000100، B00111110} ؛ بايت i [5] = {B00000000 ، B00100010 ، B10111110 ، B00000010 ، B00000000} ؛ بايت ن [5] = {B00111110، B00010000، B00100000، B00100000، B00011110} ؛ بايت o [5] = {B00011100، B00100010، B00100010، B00100010، B00011100} ؛

/ * اعرضها الآن واحدة تلو الأخرى مع تأخير بسيط * /

lc.setRow (0، 0، a [0]) ؛ lc.setRow (0، 1، a [1]) ؛ lc.setRow (0، 2، a [2]) ؛ lc.setRow (0، 3، a [3]) ؛ lc.setRow (0، 4، a [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، r [0]) ؛ lc.setRow (0، 1، r [1]) ؛ lc.setRow (0، 2، r [2]) ؛ lc.setRow (0، 3، r [3]) ؛ lc.setRow (0، 4، r [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، d [0]) ؛ lc.setRow (0، 1، d [1]) ؛ lc.setRow (0، 2، d [2]) ؛ lc.setRow (0، 3، d [3]) ؛ lc.setRow (0، 4، d [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، u [0]) ، lc.setRow (0، 1، u [1]) ، lc.setRow (0، 2، u [2]) ؛ lc.setRow (0، 3، u [3]) ، lc.setRow (0، 4، u [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، i [0]) ، lc.setRow (0، 1، i [1]) ؛ lc.setRow (0، 2، i [2]) ؛ lc.setRow (0، 3، i [3]) ؛ lc.setRow (0، 4، i [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، n [0]) ، lc.setRow (0، 1، n [1]) ، lc.setRow (0، 2، n [2]) ؛ lc.setRow (0، 3، n [3]) ، lc.setRow (0، 4، n [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، o [0]) ؛ lc.setRow (0، 1، o [1]) ؛ lc.setRow (0، 2، o [2]) ؛ lc.setRow (0، 3، o [3]) ؛ lc.setRow (0، 4، o [4]) ؛ تأخير (تأخير) ؛ lc.setRow (0، 0، 0) ؛ lc.setRow (0، 1، 0) ؛ lc.setRow (0، 2، 0) ؛ lc.setRow (0، 3، 0) ؛ lc.setRow (0، 4، 0) ؛ تأخير (تأخير) ؛ }

/*

تضيء هذه الوظيفة بعض المصابيح على التوالي. سيتكرر النمط في كل صف. سيومض النمط مع رقم الصف. سيومض الصف رقم 4 (الفهرس == 3) 4 مرات وما إلى ذلك. * / صفوف باطلة () {لـ (int row = 0 ؛ صف <8 ؛ صف ++) {تأخير (تأخير) ؛ lc.setRow (0، row، B10100000) ؛ تأخير (تأخير) ؛ lc.setRow (0، row، (بايت) 0) ؛ لـ (int i = 0 ؛ i

/*

تضيء هذه الوظيفة بعض المصابيح في عمود. سيتكرر النمط في كل عمود. سيومض النمط مع رقم العمود. سيومض العمود رقم 4 (الفهرس == 3) 4 مرات وما إلى ذلك. * / الأعمدة الفارغة () {لـ (int col = 0؛ col <8؛ col ++) {delay (delaytime)؛ lc.setColumn (0 ، عمود ، B10100000) ؛ تأخير (تأخير) ؛ lc.setColumn (0، عمود، (بايت) 0) ؛ لـ (int i = 0 ؛ i

/*

ستضيء هذه الوظيفة كل مصباح LED في المصفوفة. سيومض المصباح مع رقم الصف. سيومض الصف رقم 4 (الفهرس == 3) 4 مرات وما إلى ذلك. * / باطل مفرد () {لـ (int row = 0؛ row <8؛ row ++) {for (int col = 0؛ col <8؛ col ++) { تأخير (تأخير) ؛ lc.setLed (0، row، col، true)؛ تأخير (تأخير) ؛ لـ (int i = 0 ؛ i

حلقة فارغة() {

writeArduinoOnMatrix () ، صفوف () ؛ أعمدة () ؛ غير مرتبطة()؛ }

الخطوة 6: الإخراج

Image
Image
الإخراج
الإخراج
الإخراج
الإخراج
الإخراج
الإخراج

شاهد الفيديو كاملاً من هنا: -MAX7219 8x8 LED MATRIX ASSEMBLY والاختبار باستخدام ARDUINO

حسنًا ، كل هذا العمل الشاق ، بالتأكيد يؤتي ثماره جيدًا عندما ترى النتيجة. انه يستحق ذلك !!

اشترك في قناة اليوتيوب الخاصة بي: -Creative Stuff

موصى به: