الاثنين، 28 أبريل، 2014

برمجه ال LED matrix بواسطة Max7219


MAX7219 Dot Matrix




لقد ذكر سابقا في مقال الدائره المتكامله  Max7219 انها دائره  تستخدم للتحكم ب 64 باعث ضوئي او 8 ارقام من ال 7Segment , في هذا المقال سنشرح كيفيه برمجه ال  LED matrix 8*8 خطوه بخطوه باستخدامها .


في البدايه يجب تحميل المكتبه من هنا ووضعها في مسار مكتبات الاردوينو

يتم تعريف المكتبه في بدايه البرنامج عن طريق اضافه 



ثم نسمي القطعه  نعرف المداخل عن طريق امر  ledControl كما موضح اعلاه.

هناك خاصيه تسمح لنا باطفاء هذه القطعه بحيث تطفىء كل البواعث الضوئيه المربوطه بها ,اذا كانfalse سيكون هذا الامر معطلا وسيستمر عمل البواعث الضوئيه 

true سيكون الامر مفعلا وسيتم اطفاء جميع البواعث الضوئيه المربوطه وينطفئ تشغيل القطعه .
الفائده  من هذا الامر توفير للطاقه .
من خلال امر :

matrix leds name .shutdown(item number, state) ;
  

وهناك امر Set Intensity للتحكم بشده سطوع البواعث الضوئيه, وايضا امر clearDisplayلاطفاء جميع البواعث الضوئيه وتهيئتها لامر جديد , كما هو موضح بالصوره






 في الجزء الاول من  مقال Max 7219 تحدثنا عن التحكم بشكل رئيسي عن التحكم في البواعث الضوئيه 
الان سنتحدث بشكل موسع عن التحكم بمصفوفه البواعث الضوئيه (او ما يسمى ب LED matrix) وهي تتكون من 64 باعثا ضوئيا مقسمه على 8 صفوف و8 اعمده.

 هناك 3 طرق مختلفه يمكننا فيها التحكم بمصفوفه البواعث الضوئيه 
الطريقه الاولى :
عن طريق استخدام امر setLed




الطريقه الثانيه :
عن طريق استخدام الامر setRow





الطريقه الثالثه :
عن طريق استخدام الامر setColumn



ويمكنكم رسم الشكل المراد واخذ قيمته بالثنائي جاهزه كما في الصوره ادناه من هنا



طريقه التوصيل :
 في هذه التجربه لقد استخدمنا موديول خاص به





القطع التي نحتاجها لهذه التجربه ::

1) بطاقة اردوينو 
2) LED Matrix MAX7219 Module
3) اسلاك توصيل female-male




البرنامج:

//We always have to include the library
#include "LedControl.h"

/*
 
 Now we need a LedControl to work with.
 ***** These pin numbers will probably not work with your hardware *****
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to LOAD 
 We have only a single MAX72XX.
 */
LedControl lc=LedControl(12,11,10,1);

/* we always wait a bit between updates of the display */
unsigned long delaytime=100;
byte a[]={B00000000,
B01000010,
B11100111,
B11111111,
B11111111,
B01111110,
B00111100,
B00011000};
byte b[]={B00000000,
B00000000,
B00100100,
B01111110,
B01111110,
B00111100,
B00011000,
B00000000};
void setup() {
  /*
   The MAX72XX is in power-saving mode on startup,
   we have to do a wakeup call
   */
  lc.shutdown(0,false);
  /* Set the brightness to a medium values */
  lc.setIntensity(0,8);
  /* and clear the display */
  lc.clearDisplay(0);
   
}
void loop(){
  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,5,a[5]);
  lc.setRow(0,6,a[6]);
  lc.setRow(0,7,a[7]);
  delay(1000);
  
  lc.setRow(0,0,b[0]);
  lc.setRow(0,1,b[1]);
  lc.setRow(0,2,b[2]);
  lc.setRow(0,3,b[3]);
  lc.setRow(0,4,b[4]);
  lc.setRow(0,5,b[5]);
  lc.setRow(0,6,b[6]);
  lc.setRow(0,7,b[7]);
delay(1000);

}


فيديو  يبين كيفية اظهار بعض الحركات و الأسماء :




2 التعليقات :

  1. قمت بوضع البرنامج كما هو في مساره وأثناء عملية إرسال يظهر في أسفل المكتبة sketch-juil19 .into 4:24 :fatal error:ledControl.h ni such file or directory فما العمل لتصحيح هدا الرنامج

    ردحذف
    الردود
    1. لا , تثبيت المكتبة ليس صحيحاً , ضعها بمسار المكتبات الخاص بالأردوينو و تأكد من اسم المجلد المحفوظ فيه المكتبة ledControl

      حذف

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.