طريقة برمجة شاشة MAX7219 باستخدام اردوينو لعرض النصوص او الاشهارات - DIY Channel3

DIY Channel3

Arduino│ESP8266│ESP32│Drone│Robot

طريقة برمجة شاشة MAX7219 باستخدام اردوينو لعرض النصوص او الاشهارات

مشاركة هذا


في هذا البرنامج التعليمي ، سأستخدم MD_Parola مع مكتبة Arduino MD_MAX72XX. تجعل هذه المكتبات عرض نص التمرير والرسوم المتحركة الأخرى أمرًا سهلاً للغاية. في الجزء الأول من هذه المقالة ، سأتناول أساسيات طباعة النص على الشاشة. بعد ذلك ، سننظر في تمرير النص والرسوم المتحركة النصية الأخرى. أخيرًا ، سأوضح لك كيفية استخدام الرموز النصية


 المكونات الاساسية :

- Arduino UNO

- MAX7219 LED dot matrix display

- jumper wires



تعد MAX7219 / MAX7221 برامج تشغيل عرض كاثود مشتركة إدخال / إخراج تسلسلية مضغوطة تلك الواجهة

المعالجات الدقيقة (µPs) إلى شاشات LED الرقمية المكونة من 7 أجزاء تصل إلى 8 أرقام أو شاشات الرسم البياني الشريطي أو 64 مصباح LED فردي. تم تضمين رمز BCD على الرقاقة

مفكك الشفرة ودائرة المسح المتعدد والجزء والأرقام

السائقين ، وذاكرة الوصول العشوائي الثابتة 8 × 8 التي تخزن كل رقم.

مطلوب مقاوم خارجي واحد فقط لتعيين تيار المقطع لجميع مصابيح LED. MAX7221 متوافق

مع SPI ™ و QSPI ™ و MICROWIRE ™ ، ولديه محركات مقطع محدودة السرعة لتقليل EMI.

واجهة تسلسلية مريحة من 4 أسلاك تتصل بالجميع

المشتركة µPs. يمكن معالجة الأرقام الفردية و

تم التحديث دون إعادة كتابة الشاشة بالكامل. ال

يسمح MAX7219 / MAX7221 أيضًا للمستخدم بتحديد فك تشفير codeB أو عدم فك التشفير لكل رقم.

تشتمل الأجهزة على إيقاف تشغيل منخفض الطاقة بمقدار 150 درجة مئوية

الوضع ، والتحكم في السطوع التناظري والرقمي ، سجل scanlimit الذي يسمح للمستخدم بالعرض من 1 إلى 8

ووضع اختبار يفرض تشغيل جميع مصابيح LED.

للتطبيقات التي تتطلب تشغيل أو مقطع 3 فولت

وامض ، ارجع إلى ورقة البيانات MAX6951.






+ مخطط الرسم البياني :



الكود البرمجي :

// Include the required Arduino libraries:
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Define hardware type, size, and output pins:
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3
// Create a new instance of the MD_Parola class with hardware SPI connection:
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// Setup for software SPI:
// #define DATAPIN 2
// #define CLK_PIN 4
// MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
void setup() {
// Intialize the object:
myDisplay.begin();
// Set the intensity (brightness) of the display (0-15):
myDisplay.setIntensity(0);
// Clear the display:
myDisplay.displayClear();
}
void loop() {
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.print("Center");
delay(2000);
myDisplay.setTextAlignment(PA_LEFT);
myDisplay.print("Left");
delay(2000);
myDisplay.setTextAlignment(PA_RIGHT);
myDisplay.print("Right");
delay(2000);
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.setInvert(true);
myDisplay.print("Invert");
delay(2000);
myDisplay.setInvert(false);
myDisplay.print(1234);
delay(2000);
}
/* Basic example code for MAX7219 LED dot matrix display with Arduino. More info: https://www.makerguides.com */

// Include the required Arduino libraries:
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

// Define hardware type, size, and output pins:
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN 3

// Create a new instance of the MD_Parola class with hardware SPI connection:
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

// Setup for software SPI:
// #define DATAPIN 2
// #define CLK_PIN 4
// MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

void setup() {
  // Intialize the object:
  myDisplay.begin();
  // Set the intensity (brightness) of the display (0-15):
  myDisplay.setIntensity(0);
  // Clear the display:
  myDisplay.displayClear();
}

void loop() {
  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.print("Center");
  delay(2000);
  myDisplay.setTextAlignment(PA_LEFT);
  myDisplay.print("Left");
  delay(2000);
  myDisplay.setTextAlignment(PA_RIGHT);
  myDisplay.print("Right");
  delay(2000);
  myDisplay.setTextAlignment(PA_CENTER);
  myDisplay.setInvert(true);
  myDisplay.print("Invert");
  delay(2000);
  myDisplay.setInvert(false);
  myDisplay.print(1234);
  delay(2000);
}

No comments:

Post a Comment