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

وحدات عرض Arduino و TM1638 LED: 11 خطوة
وحدات عرض Arduino و TM1638 LED: 11 خطوة

فيديو: وحدات عرض Arduino و TM1638 LED: 11 خطوة

فيديو: وحدات عرض Arduino و TM1638 LED: 11 خطوة
فيديو: Controlling a TM1638 with an Arduino Uno 2024, يوليو
Anonim
وحدات عرض Arduino و TM1638 LED
وحدات عرض Arduino و TM1638 LED

إذا كنت بحاجة إلى طريقة سريعة وسهلة لإضافة بعض مدخلات المستخدم ومخرجاته إلى مشروع ، فإن وحدات العرض هذه ممتعة وممتعة.

تحتوي على ثمانية أرقام LED حمراء مكونة من 7 أجزاء وثمانية مصابيح حمراء / خضراء وثمانية أزرار لإدخال المستخدم. يمكن أيضًا ربط الوحدات بالسلاسل التعاقبية ، مما يسمح بما يصل إلى خمس وحدات في وقت واحد ، ويتم تضمين كابل قصير مع كل وحدة ، بالإضافة إلى بعض الفواصل القصيرة والمسامير ، كما هو موضح في الصورة.

الخطوة 1:

صورة
صورة

الفواصل طويلة بما يكفي لرفع ثنائي الفينيل متعدد الكلور فوق سطح ما ، ولكن لتركيب الألواح في أي مكان مفيد ستحتاج إلى ألواح أطول. قد ترغب أيضًا في إزالة مآخذ IDC إذا كنت تريد تركيب الوحدة بالقرب من سطح اللوحة. ستكون هذه مهمة إزالة لحام بسيطة لأنها مآخذ من خلال الفتحات.

الخطوة 2:

صورة
صورة

يتم التحكم في اللوحة بواسطة TM1638 IC.

هذا هو سائق واجهة الصمام والواجهة IC من “Titan Micro Electronics”. يمكنك أيضًا شراء هذه الدوائر المتكاملة من PMD Way. يمكنك أيضًا تنزيل ورقة البيانات لمزيد من التفاصيل.

الخطوة 3: البدء - الأجهزة

الشروع في العمل - الأجهزة
الشروع في العمل - الأجهزة

الأجهزة - الاتصال بلوحة متوافقة مع Arduino (أو MCU أخرى) بسيط للغاية. يتم عرض pinouts على الجزء الخلفي من PCB ، وتتطابق مع التركيب الموجود على كابل الشريط. إذا نظرت إلى نهاية الكابل على هذا النحو.

الفتحة العلوية اليمنى هي الدبوس الأول ، حيث يكون الجزء العلوي الأيسر هو الدبوس الثاني ، والدبوس السفلي الأيمن تسعة والدبوس السفلي الأيسر عشرة. لذلك فإن pinouts هي:

  1. Vcc (5 فولت)
  2. GND
  3. CLK
  4. DIO
  5. STB1
  6. STB2
  7. STB3
  8. STB4
  9. STB5
  10. غير متصل.

بالنسبة لاستخدام Arduino ، فإن الدبابيس 1 ~ 4 هي الحد الأدنى الضروري لاستخدام وحدة واحدة. ستتطلب كل وحدة إضافية دبوسًا رقميًا آخر متصل بـ STB2 و STB3 وما إلى ذلك. المزيد حول هذا لاحقًا. يرجى ملاحظة أن كل وحدة يتم ضبطها على السطوع الكامل مع كل مصباح LED تستهلك 127 مللي أمبير ، لذلك سيكون من الحكمة استخدام الطاقة الخارجية مع أكثر من وحدة واحدة والتوصيلات الأخرى مع لوحات Arduino.

الخطوة 4: البدء - البرنامج

البرنامج - قم بتنزيل مكتبة T1638 وتثبيتها من هنا. شكرا ونود إلى rjbatista في gmail dot com للمكتبة. يعد بدء الوحدات في الرسم أمرًا بسيطًا. تشمل المكتبة بـ:

#يشمل

ثم استخدم أحد الخيارات التالية لكل وحدة:

وحدة TM1638 (س ، ص ، ض) ؛

x هو دبوس Arduino الرقمي المتصل بدبوس كابل الوحدة 4 ، و y هو دبوس Arduino الرقمي المتصل بدبوس كابل الوحدة 3 ، و z هو دبوس ستروب. لذلك إذا كان لديك وحدة واحدة بها بيانات وساعة وضوء متصل بالدبابيس 8 و 7 و 6 ، فستستخدم:

وحدة TM1638 (8 ، 7 ، 6) ؛

إذا كان لديك وحدتان ، مع الوحدة القوية الأولى متصلة بـ Arduino digital 6 ، والوحدة القوية الثانية متصلة بـ digital 5 ، فيمكنك استخدام:

وحدة TM1638 (8 ، 7 ، 6) ؛ وحدة TM1638 (8 ، 7 ، 5) ؛

وما إلى ذلك لمزيد من الوحدات. الآن للتحكم في العرض …

الخطوة 5: المصابيح ثنائية اللون

المصابيح ثنائية اللون
المصابيح ثنائية اللون

من السهل التحكم في المصابيح الحمراء / الخضراء. للإشارة ، تم ترقيمها من صفر إلى سبعة من اليسار إلى اليمين. لتشغيل أو إيقاف تشغيل مصباح LED واحد ، استخدم ما يلي:

module.setLED (TM1638_COLOR_RED ، x) ، // قم بتعيين رقم LED x على redmodule.setLED (TM1638_COLOR_GREEN ، x) ؛ // ضبط رقم LED x على الوحدة الخضراء. setLED (TM1638_COLOR_RED + TM1638_COLOR_GREEN ، 0) ؛ // ضبط رقم LED x على الأحمر والأخضر

قد يكون استخدام الطريقة المذكورة أعلاه بسيطًا وغير فعال إلى حد ما. أفضل طريقة هي معالجة جميع مصابيح LED في بيان واحد. للقيام بذلك ، نرسل اثنين بايت من البيانات بالنظام الست عشري إلى الشاشة. يتكون MSB (البايت الأكثر أهمية) من ثماني بتات ، كل منها يمثل مؤشرًا ضوئيًا أخضر واحدًا قيد التشغيل (1) أو مطفأ (0). يمثل LSB (البايت الأقل أهمية) المصابيح الحمراء.

من الطرق السهلة لتحديد القيمة السداسية العشرية للتحكم في مصابيح LED بسيطة ، فالصورة لديك صف واحد من مصابيح LED - أول ثمانية أخضر والثاني ثمانية أحمر. اضبط كل رقم على 1 للتشغيل و 0 للإيقاف. قم بتحويل الرقمين الثنائيين إلى رقم سداسي عشري واستخدم هذه الدالة:

module.setLEDs (0xgreenred) ؛

حيث يمثل اللون الأخضر الرقم السداسي العشري لمصابيح LED الخضراء بينما يمثل اللون الأحمر الرقم السداسي العشري لمصابيح LED الحمراء. على سبيل المثال ، لتشغيل المصابيح الثلاثة الأولى باللون الأحمر ، والأخيرة باللون الأخضر ، سيكون التمثيل الثنائي:

00000111 11100000 الذي بالنظام الست عشري هو E007.

لذلك سوف نستخدم:

module.setLEDs (0xE007) ؛

الذي ينتج الصورة كما هو موضح أعلاه.

الخطوة 6: عرض 7 أجزاء

لمسح الشاشة الرقمية (ولكن ليس مصابيح LED أدناه) ، ما عليك سوى استخدام:

module.clearDisplay () ،

أو لتشغيل كل جزء وجميع المصابيح ، استخدم ما يلي

module.setupDisplay (صحيح ، 7) ؛ // حيث 7 هي الكثافة (من 0 ~ 7)

لعرض الأرقام العشرية ، استخدم الوظيفة:

module.setDisplayToDecNumber (a، b، false) ؛

حيث أ هو العدد الصحيح ، ب هو موضع الفاصلة العشرية (0 لا شيء ، 1 للرقم 8 ، 2 ، للرقم 7 ، 4 للرقم 6 ، 8 للرقم 4 ، إلخ) ، والمعلمة الأخيرة (صواب / false) بتشغيل أو إيقاف تشغيل الأصفار البادئة. يوضح الرسم التخطيطي التالي استخدام هذه الوظيفة:

# تضمين // تحديد وحدة على دبوس البيانات 8 ودبوس الساعة 9 ووحدة ستروب دبوس 7 TM1638 (8 ، 9 ، 7) ؛ طويلة بدون توقيع أ = 1 ؛ إعداد باطل () {} حلقة باطلة () {لـ (أ = 10000 ؛ أ <11000 ؛ أ ++) {module.setDisplayToDecNumber (a، 4، false) ؛ تأخير (1) ؛ } لـ (a = 10000؛ a <11000؛ a ++) {module.setDisplayToDecNumber (a، 0، true) ؛ تأخير (1) ؛ }}

… مع النتائج المعروضة في الفيديو.

الخطوة السابعة:

Image
Image

إحدى الميزات الأكثر إثارة للاهتمام هي القدرة على تمرير النص عبر شاشة عرض واحدة أو أكثر. للقيام بذلك لا يحتاج حقًا إلى شرح مثل الرسم التوضيحي المضمن:

tm_1638_scrolling_modules_example.pde

المضمنة في مكتبة TM1638 بسهولة. فقط أدخل النص الخاص بك في سلسلة أحرف const ، وتأكد من أن الوحدة (الوحدات) موصولة وفقًا لتعريف الوحدة النمطية في بداية الرسم ، وأنه قد تم تعيينك. لرؤية الشخصيات المتاحة ، قم بزيارة صفحة الوظيفة. لاحظ أن العرض يتكون من سبعة أجزاء فقط ، لذلك قد لا تبدو بعض الشخصيات مثالية ، ولكن في السياق ستعطيك فكرة جيدة - شاهد الفيديو في هذه الخطوة.

الخطوة الثامنة:

أخيرًا ، يمكنك أيضًا معالجة كل جزء من كل رقم بشكل فردي. ضع في اعتبارك محتويات هذه المجموعة:

قيم البايت = {1، 2، 4، 8، 16، 32، 64، 128} ؛

يمثل كل عنصر الأرقام من 1 إلى 8. تحدد قيمة كل عنصر أي جزء من الرقم يتم تشغيله. بالنسبة للمقاطع a ~ f ، dp ، القيم هي 1 ، 2 ، 4 ، 6 ، 16 ، 32 ، 64 ، 128. لذا فإن نتائج استخدام المصفوفة أعلاه في الوظيفة التالية:

module.setDisplay (القيم) ؛

سيكون في الصورة.

الخطوة 9:

صورة
صورة

وبطبيعة الحال ، يمكنك الجمع بين القيم لكل رقم لإنشاء الشخصيات والرموز الخاصة بك وما إلى ذلك. على سبيل المثال ، باستخدام القيم التالية:

قيم البايت = {99 ، 99 ، 99 ، 99 ، 99 ، 99 ، 99 ، 99} ؛

أنشأنا حسب الصورة في هذه الخطوة.

الخطوة 10: الأزرار

يتم إرجاع قيم الأزرار كقيمة بايت من الوظيفة:

module.getButtons () ،

نظرًا لوجود ثمانية أزرار ، يمثل كل زر بتًا واحدًا من رقم ثنائي يتم إرجاعه على هيئة بايت. يُرجع الزر الموجود على اليسار رقمًا عشريًا واحدًا ، ويعيد الزر الأيمن 128. ويمكنه أيضًا إرجاع الضغطات المتزامنة ، لذا فإن الضغط على الأزرار واحد وثمانية يؤدي إلى إرجاع 129. ضع في اعتبارك الرسم التالي ، الذي يُرجع قيم الضغط على الزر بشكل عشري ، ثم يعرض القيمة:

# تضمين // تحديد وحدة على دبوس البيانات 8 ودبوس الساعة 9 ووحدة ستروب دبوس 7 TM1638 (8 ، 9 ، 7) ؛ أزرار البايت إعداد باطل () {} حلقة باطلة () {أزرار = module.getButtons () ؛ module.setDisplayToDecNumber (أزرار ، 0 ، خطأ) ؛ }

والنتائج في الفيديو.

تعد لوحات العرض هذه مفيدة ونأمل أن تجد مكانًا في مشاريعك. هذا المنشور مقدم لك من pmdway.com - يقدم كل شيء للصانعين وعشاق الإلكترونيات ، مع التوصيل المجاني في جميع أنحاء العالم.

موصى به: