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

مولد الأحرف المخصص (Adafruit HT16k33 Matrix): 3 خطوات
مولد الأحرف المخصص (Adafruit HT16k33 Matrix): 3 خطوات

فيديو: مولد الأحرف المخصص (Adafruit HT16k33 Matrix): 3 خطوات

فيديو: مولد الأحرف المخصص (Adafruit HT16k33 Matrix): 3 خطوات
فيديو: ESP32 Tutorial 52 - WS2812 CheerLights MQTT Global Sync with LCD | SunFounder ESP32 IoT Learnig kit 2024, يوليو
Anonim
مولد الأحرف المخصص (مصفوفة Adafruit HT16k33)
مولد الأحرف المخصص (مصفوفة Adafruit HT16k33)

تعد طباعة الأحرف الخاصة على شاشات LCD ومصفوفات LED متعة كبيرة. إجراء طباعة الأحرف الخاصة أو الأحرف المخصصة هو إنشاء مصفوفة بقيم ثنائية لكل صف وعمود. قد يكون من الصعب العثور على الكود الصحيح لأي حرف مخصص ، وبالتالي ، فإن هذا المشروع سوف يقوم بأتمتة وإنشاء رمز لمصفوفة 8x8 led وسيطبع أيضًا الحرف المخصص على Adafruit HT16k33 8x8 Bicolor Matrix.

Adafruit HT16k33 ، تتواصل مصفوفة LED ثنائية اللون مقاس 1.2 بوصة 8 × 8 مع Arduino عبر بروتوكول اتصال I2C

وفقًا لـ Adafruit ، "تم تصميم هذا الإصدار من حقيبة الظهر LED لمصفوفات 1.2" 8x8. إنهم يقيسون 1.2 "x1.2" فقط لذا من العار استخدام مجموعة ضخمة من الرقائق للتحكم فيها. تحل حقيبة الظهر هذه الانزعاج الناجم عن استخدام 16 دبوسًا أو مجموعة من الرقائق من خلال وجود وحدة تحكم مصفوفة تيار مستمر I2C موضوعة بدقة على الجزء الخلفي من PCB. تعتني شريحة وحدة التحكم بكل شيء ، حيث تقوم برسم جميع مصابيح LED البالغ عددها 64 في الخلفية. كل ما عليك فعله هو كتابة البيانات إليها باستخدام واجهة 2-pin I2C. هناك نوعان من دبابيس تحديد العنوان حتى تتمكن من تحديد واحد من 8 عناوين للتحكم في ما يصل إلى 8 منها على ناقل I2C واحد ثنائي السنون (بالإضافة إلى أي شرائح أو مستشعرات I2C أخرى تريدها). يمكن لشريحة برنامج التشغيل "تعتيم" الشاشة بالكامل من سطوع 1/16 إلى سطوع كامل في خطوات 1/16. لا يمكنها تعتيم مصابيح LED الفردية ، فقط الشاشة بأكملها مرة واحدة."

في هذا الدليل ، سأشرح لك كيفية الحصول على الرمز لأي شخصية مخصصة في الوقت الفعلي وطباعة هذا الحرف على Led Matrix.

الخطوة 1: المكونات

هذا التدريب هو مشروع أساسي على Adafruit HT16k33 Matrix. انت تحتاج:

  1. Adafruit HT16k33 1.2 '' x 1.2 '' 8x8 Bicolor Led Matrix.
  2. اردوينو (أي نوع مختلف ولكن يفضل Uno).
  3. اللوح
  4. مزود الطاقة

الخطوة 2: التخطيطي

تخطيطي
تخطيطي
تخطيطي
تخطيطي

تعتبر مصفوفة الأسلاك Adafruit HT16k33 Led سهلة للغاية لأننا نحتاج إلى توصيل الساعة ودبوس البيانات كما نفعل عادةً مع أجهزة I2C. ستكون الاتصالات مثل:

  1. SCL (دبوس الساعة من المصفوفة) متصل بـ A5 (دبوس الساعة الخاص بـ Arduino Uno. راجع ورقة البيانات لمعرفة المتغيرات الأخرى من Arduino)
  2. SDA (دبوس البيانات من Matrix) متصل بـ A4. (ارجع إلى ورقة البيانات للتعرف على المتغيرات الأخرى من Arduino)
  3. VCC متصل بـ 5V.
  4. GND متصل بـ 0V.

يمكنك أيضًا الرجوع إلى التخطيطي الموضح في الشكل.

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

الشفرة
الشفرة
الشفرة
الشفرة

كود اردوينو

أولاً ، سنقوم بتضمين جميع المكتبات المطلوبة.

  1. Wire.h: - لاتصالات I2C
  2. Adafruit_LedBackpack
  3. Adafruit_GFX

كل هذه المكتبات متوفرة في Arduino IDE نفسه. عليك فقط تثبيتها من Library Manager. رسم >> تضمين مكتبة >> إدارة المكتبات

وظيفة الإعداد ()

إعداد مصفوفة 8 بت عدد صحيح بدون إشارة إلى قيم ثنائية strore8 لـ 8 صفوف ، من 8 بت لكل صف (8 أعمدة). قم بتعيين عنوان اتصال I2C.

وظيفة الحلقة ()

نظرًا لأننا نحتاج إلى طباعة الحرف ، فنحن بحاجة إلى رمز الحرف في الوقت الفعلي. الطريقة الأكثر ملاءمة هي إرسال الرمز بشكل تسلسلي وسيقوم Arduino بقراءة البيانات التسلسلية وطباعة الحرف وفقًا لذلك. قد يكون إرسال مصفوفة بشكل متسلسل مهمة شاقة ، ومن ثم يمكننا إرسال سلسلة بها جميع الرموز الثمانية (8 بت لكل منها) مفصولة بفواصل.

قراءة السلسلة التسلسلية:

إذا (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n') ؛ Serial.println (بيانات) ؛ }

بعد قراءة النص ، نحتاج إلى فك شفرة هذه السلسلة واستعادة القيم الثنائية. كما نعلم ، فإن تنسيق سلسلة الإدخال سيكون دائمًا كما هو. يمكننا ترميزها للعثور على سلاسل فرعية وتحويل السلاسل إلى قيمها العشرية المكافئة. ثم سنمرر المصفوفة العشرية (uint8_t) لطباعة الحرف على المصفوفة.

تحويل سلسلة من 8 بتات إلى عدد عشري:

int val (String str) {int v = 0 ؛ لـ (int i = 0؛ i <8؛ i ++) {if (str == '1') {v = v + power (2، (7-i)) ؛ }} return v؛ }

لتقييم المكافئ العشري باستخدام دالة الطاقة (pow ()) ، تحتاج إلى التعامل مع قيم النوع المزدوج ، وبالتالي يمكننا كتابة دالة الطاقة الخاصة بنا على النحو التالي:

int power (int base، int exponent) {int c = 1؛ لـ (int i = 0؛ i {c = c * base؛} إرجاع c؛}

الآن ، أخيرًا ، سنكتب الكود لطباعة الحرف باستخدام المصفوفة المُنشأة المكونة من 8 قيم عشرية (واحدة لكل صف).

void print_emoji (uint8_t emoji ، String color) {matrix.clear ()؛ إذا (اللون == "أحمر") {matrix.drawBitmap (0 ، 0 ، رمز تعبيري ، 8 ، 8 ، LED_RED) ؛ } else {matrix.drawBitmap (0، 0، emoji، 8، 8، LED_GREEN)؛ } matrix.writeDisplay () ؛ تأخير (500) ؛ }

ستفهم هذا الرمز بسهولة لأننا نقوم بمسح المصفوفة أولاً ثم نعرض الحرف باستخدام مصفوفة الرموز التعبيرية باستخدام دالة matrix.drawBitmap (). لا تنس كتابة "matrix.writeDisplay ()" بعد كل التنسيقات لأن هذه الوظيفة ستعرض فقط جميع التنسيقات التي تمت حتى الآن على المصفوفة.

يمكنك الآن إرسال السلسلة بكل قيم الكود وسيقوم Arduino بطباعة الحرف على المصفوفة. يمكنك تنزيل كود Arduino من الأسفل. لأغراض تجريبية ، يمكنك الكتابة

B00111100 ، B01000010 ، B10100101 ، B10000001 ، B10100101 ، B10011001 ، B01000010 ، B00111100

هذه السلسلة في Serial Monitor ويمكنها رؤية الحرف في المصفوفة.

الآن ، نحتاج إلى إرسال البيانات التسلسلية تلقائيًا من البرنامج عندما نضغط على الزر "طباعة". لأتمتة هذا ، سنقوم بإنشاء مصفوفة تجريبية 8 × 8 وسنوفر وسيلة للمستخدم لاختيار الخلايا التي يجب تلوينها ثم سيقوم البرنامج تلقائيًا بإنشاء الكود وإرسال البيانات بشكل تسلسلي إلى Arduino بتنسيق سلسلة. اخترت المعالجة لبقية عملي. في المعالجة ، يمكننا إنشاء مصفوفة باستخدام 64 زرًا (مستطيلات بوظيفة مضغوطة) ويمكننا تعيين قيمة ولون معينين في البداية (فليكن اللون الأبيض بقيمة 0). الآن عند الضغط على الزر ، سنقوم بتحويل لون الزر إلى اللون الأسود وضبط القيمة على 1. إذا ضغط المستخدم على الزر نفسه مرة أخرى ، ستتغير قيمته مرة أخرى إلى 0 ويعود اللون إلى الأبيض. سيساعد هذا المستخدم على تغيير الكود مرارًا وتكرارًا بسهولة ويمكنه إجراء التعديلات بسهولة دون مسح المصفوفة بأكملها مرة أخرى. عند النقر فوق الزر "طباعة" ، سنقوم بعمل سلسلة مماثلة لتلك الموضحة أعلاه للعرض التوضيحي. ثم سيتم إرسال السلسلة إلى المنفذ التسلسلي المحدد.

يمكنك تنزيل رمز المعالجة من الأسفل. هذا هو أول كود لي في المعالجة. تحظى الاقتراحات الخاصة بالطريقة المحسنة للترميز بتقدير كبير.

يمكنك أن ترى كيف تبدو واجهة المستخدم الرسومية وكيف يتم إنشاء الشخصية باستخدام النظام. لن يستغرق الأمر ثوانٍ لإنشاء نفس الحرف على المصفوفة.

يمكنك تنزيل الكود والصور الخاصة بهذا المشروع من مستودع GitHub الخاص بي.

موصى به: