كيفية استخدام شاشة TM1638 ذات 4 خانات. شاهد الفيديو
وحدة TM1638 مكوّن متعدد الاستخدامات يمكنه عرض الأرقام والحروف مع التحكم بها عبر الأزرار. في هذا الدرس، ستتعلم كيفية إعداد وبرمجة هذه الشاشة لعرض قيم مختلفة، بما في ذلك الأرقام والقيم السداسية عشرية. بنهاية هذا الدليل، ستحصل على شاشة تعمل بكامل وظائفها تستجيب للضغط على الأزرار وتغيّر ما يُعرض بناءً على مدخلات المستخدم. يمكنك مشاهدة عرض توضيحي في الفيديو عند 00:00.

شرح الأجهزة
صُممت وحدة TM1638 لعرض المعلومات واستقبال المدخلات من الأزرار. تتألف من شاشة LED بثمانية خانات ومصفوفة مكونة من 16 زرًا. يمكن برمجة كل زر لتشغيل وظائف مختلفة، مما يتيح واجهة سهلة الاستخدام. تتصل الوحدة بالمتحكم الدقيق عبر ثلاثة دبابيس: دبوس إدخال/إخراج بيانات، ودبوس ساعة، ودبوس ستروب. يتيح هذا التكوين اتصالًا فعالًا بين المتحكم الدقيق وTM1638. تدير الدائرة المتكاملة TM1638 العرض ومدخلات الأزرار. تستخدم بروتوكول اتصال تسلسلي يتيح لها التحكم بالشاشة وقراءة حالات الأزرار بتوصيلات قليلة. كل ضغطة على زر ترسل إشارة إلى المتحكم الدقيق، الذي يمكنه بعد ذلك تنفيذ إجراءات محددة اعتمادًا على الزر الذي تم ضغطه.
تفاصيل ورقة البيانات
| الشركة المصنعة | QYF |
|---|---|
| رقم القطعة | TM1638 |
| جهد المنطق/المدخلات والمخرجات | 5 V |
| جهد التغذية | 5 فولت |
| تيار الإخراج (لكل مقطع) | 20 مللي أمبير |
| تيار الذروة (الإجمالي) | 120 مللي أمبير |
| عتبات الدخل المنطقي | 0.2 V (منخفض) / 0.8 V (مرتفع) |
| حزمة | حزمة DIP ذات 28 دبوسًا |
- تأكد من أن جهد الإمداد مستقر عند 5 فولت لتحقيق الأداء الأمثل.
- حدّ من التيار الخارج لتجنّب تلف الشاشة.
- استخدم مقاومات لتجنب التيار المفرط عبر مصابيح LED.
- قم بإلغاء ارتداد مدخلات الأزرار في البرمجيات لتجنب التفعيلات المتعددة.
- اجعل الأسلاك قصيرة لتقليل التشويش في الاتصال.
تعليمات التوصيل الكهربائي
لتوصيل وحدة TM1638 بالمتحكم الدقيق، قم بتوصيلها كما يلي:

VCCعلى الـ TM1638 إلى مصدر طاقة 5V للمتحكم الدقيق الخاص بك.
- قم بتوصيلGNDوصل الدبوس الموجود على TM1638 بأرضي متحكمك الدقيق.
- قم بتوصيلSTBدبوس (غالبًا ما يُوسَم فيSTROBE) إلى الدبوس الرقمي 5 في المتحكم الدقيق الخاص بك.
- قم بتوصيل الـCLKوصل الدبوس (الساعة) إلى الدبوس الرقمي 2 في المتحكم الدقيق الخاص بك.
- قم بتوصيل الـDIOوصل الدبوس (إدخال/إخراج بيانات) إلى الدبوس الرقمي 3 في متحكمك الدقيق.
تأكد من فحص توصيلاتك قبل تشغيل النظام.
إذا اتبعت ما ورد في الفيديو عند 02:30، فلن تواجه أية مشاكل في الأسلاك.أمثلة على الكود ودليل تفصيلي
يقوم مقطع الشيفرة التالي بتهيئة وحدة TM1638 وإعداد العرض. المعرفmoduleيمثل مثيلاً لـ TM1638 تم إنشاؤه للتفاعل مع الشاشة.
TM1638QYF module(DIO, CLK, STB);
void setup()
{
module.setupDisplay(true, 7);
}في هذا المقتطف، تم إعداد العرض لإظهار أقصى مستوى سطوع (7). الجزء التالي من الشيفرة يتعامل مع ضغطات الأزرار ويغيّر العرض بناءً على الزر الذي تم الضغط عليه.
void update(TM1638QYF* module, word* mode) {
word buttons = module->getButtons();
if (buttons != 0) {
*mode = buttons >> 1;
}
switch (*mode) {
case 0: module->setDisplayToString("press 1"); break;
// other cases follow
}
}تتحقق هذه الدالة من أي زر مضغوط باستخدامgetButtons()ويقوم بتحديث العرض وفقًا لذلك. المتغيرmodeيحدد أي نص يُعرض بناءً على الزر المضغوط. أخيرًا، تقوم الحلقة الرئيسية بتحديث العرض باستمرار.
void loop()
{
update(&module, &mode);
}تستدعي هذه الحلقةupdateتعمل الدالة على ضمان تحديث العرض بناءً على تفاعل المستخدم. لفهمٍ كامل، راجع الشيفرة الكاملة المحمّلة أسفل المقال.
عرض توضيحي / ما الذي تتوقعه
بمجرد توصيل كل شيء وتحميل الكود، يجب أن يؤدي الضغط على الأزرار إلى تغيير نص العرض تبعاً لذلك. على سبيل المثال، الضغط على الزر 1 سيعرض "اضغط 1"، بينما يغير الضغط على الزر 2 النص إلى "اضغط 2". إذا ظهرت أي مشاكل، فراجع التوصيلات وتأكد من استخدام الأرجل الصحيحة كما ذُكر. مشاهدة الفيديو (عند 05:00) ستساعد أيضاً على التأكد من أن كل شيء يعمل كما هو متوقع.
الطوابع الزمنية للفيديو
- 00:00- مقدمة
- 02:30- تعليمات الأسلاك
- 05:00- شرح الكود وعرض توضيحي
/*
* هذا هو كود أردوينو لشاشة TM1638 المكونة من 8 أرقام. مع 16 زر مصفوفة.
*
* كتبها أحمد نجرابي لفيديو روبوجَکس
* التاريخ: 10 ديسمبر 2017، في أجاكس، أونتاريو، كندا
* تم منح الإذن لمشاركة هذا الكود بشرط أن يتم الاحتفاظ بهذا
* الملحوظة مع الكود.
* تنبيه: هذا الكود هو "كما هو" ولأغراض تعليمية فقط.
*/
#include <TM1638.h>
#include <TM1638QYF.h>
#define STB 5
#define DIO 3
#define CLK 2
TM1638QYF module(DIO, CLK, STB);
word mode;
void setup()
{
module.setupDisplay(true, 7);
mode = 0; // زر البداية صفر
}
void update(TM1638QYF* module, word* mode) {
word buttons = module->getButtons();
// تم الضغط على الزر - تغيير الوضع
if (buttons != 0) {
*mode = buttons >> 1;
if (*mode < 0) {
module->clearDisplay();
delay(100);
}
}
switch (*mode) {
case 0: // S1
module->setDisplayToString("press 1");
break;
case 1: // S2
module->setDisplayToString("press 2");
break;
case 2: // S3
module->setDisplayToString("press 3");
break;
case 4: // S4
module->setDisplayToString("press 4");
break;
case 8: // S5
module->setDisplayToString("press 5");
break;
case 16: // S6
module->setDisplayToString("press 6");
break;
case 32: // S7
module->setDisplayToString("press 7");
break;
case 64: // S8
module->setDisplayToString("press 8");
break;
case 128: // س9
module->setDisplayToString("press 9");
break;
case 256: // S10
module->setDisplayToString("press 10");
break;
case 512: // S11
module->setDisplayToString("press 11");
break;
case 1024: // S12
module->setDisplayToString("press 12");
break;
case 2048: // S13
module->setDisplayToString("press 13");
break;
case 4096: // S14
module->setDisplayToString("press 14");
break;
case 8192: // S15
module->setDisplayToString("press 15");
break;
case 16384: // S16
module->setDisplayToString("robojax");
break;
default: // زر غير معروف
module->setDisplayToString("?????");
break;
}
}
void loop()
{
update(&module, &mode);
}
الأشياء التي قد تحتاجها
-
أمازونTM1638 على أمازونamzn.to
-
علي إكسبريسوحدة لوحة المفاتيح TM1638 على علي إكسبريسs.click.aliexpress.com
الموارد والمراجع
-
خارجيمكتبة TM1638 (من GitHub)github.com