الجمعة، 9 مايو، 2014

وحدات العرض الأبجدية Alpha Numeric

وحدات العرض الأبجدية

Alpha Numeric  



سنتحدث اليوم عن المقطعات السباعية الأبجدية  Alpha Numeric  و عن كيفية ربطها و برمجتها باستخدام لوحة الأردوينو و بيئتها البرمجية .

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

 

توزيع الأرجل :

يوضح الرسم التالي الأرجل و أتصال كل خانة في المقطعات 
 السباعية الأبجدية Alpha Numeric   بالأرجل .

 
عدد الأرجل هو 18 رجل 16 منها للتحكم بكل خانة و واحدة تكون كمصرف للتيار أو مصدر للتيار .



ساستخدم في هذا الشرح المقطعات السباعية الأبجدية Alpha Numeric  مهبط مشترك .Common Cathode

كيفيه التحكم


1) التحكم مباشره من بطاقه الاردوينو.


ستحتاج إلى هذه المعدات لكي تقوم بهذه التجربة :

(1 بطاقة أردوينو . Arduino

(2 اسلاك توصيل .Solderless Jumper 


(3لوحة تعليمية مثقوبة .BreadBoard .


4 ) مقاومات 100 أوم 

5)  المقطعات السباعية الأبجدية Alpha Numeric عدد 1



 التحكم مباشره عن طريق الاردوينو

 
    
التوصيل :

يظهر الرسم التالي التوصيل بين المكونات جميعاً .






الكود الخاص بهذه المقطعات .
void setup() {
  
  pinMode(3, OUTPUT);//A
  pinMode(4, OUTPUT);//B
  pinMode(5, OUTPUT);//C
  pinMode(6, OUTPUT);//D
  pinMode(7, OUTPUT);//E
  pinMode(8, OUTPUT);//F
  pinMode(9, OUTPUT);//G
  pinMode(10, OUTPUT);//H
  pinMode(11, OUTPUT);//K
  pinMode(12, OUTPUT);//M
  pinMode(13, OUTPUT);//N
  pinMode(A0, OUTPUT);//P
  pinMode(A1, OUTPUT);//S
  pinMode(A2, OUTPUT);//R
  pinMode(A3, OUTPUT);//T
  pinMode(A4, OUTPUT);//U
  
}
void G(){
 
  digitalWrite(4,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(A0,HIGH);
  digitalWrite(6,HIGH);
delay(2000);
 
  digitalWrite(4,0);
  digitalWrite(3,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  digitalWrite(8,0);
  digitalWrite(7,0);
  digitalWrite(A0,0);
  digitalWrite(6,0);
}
  void E(){
  digitalWrite(4,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(A4,HIGH);
  digitalWrite(A0,HIGH);
delay(2000);
digitalWrite(A0,0);
 digitalWrite(4,0);
  digitalWrite(3,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  digitalWrite(8,0);
  digitalWrite(7,0);
  digitalWrite(A4,0);}
  
  void N(){
  digitalWrite(11,HIGH);
  digitalWrite(A2,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
 
  digitalWrite(6,HIGH);
  delay(2000);
digitalWrite(11,0);
  digitalWrite(A2,0);
  digitalWrite(5,0);
  digitalWrite(10,0);
  digitalWrite(9,0);

  digitalWrite(6,0);}
  void O(){
  digitalWrite(4,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(5,HIGH);
  delay(2000);
digitalWrite(4,0);
  digitalWrite(6,0);
  digitalWrite(3,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  digitalWrite(8,0);
  digitalWrite(7,0);
  digitalWrite(5,0);}
  void T(){

  digitalWrite(4,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(12,HIGH);
  digitalWrite(A1,HIGH);
delay(2000);
digitalWrite(4,0);
  digitalWrite(3,0);
  digitalWrite(12,0);
  digitalWrite(A1,0);

  }
  void R(){
  digitalWrite(A0,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(10,HIGH);
  digitalWrite(9,HIGH);
  digitalWrite(A4,HIGH);
  digitalWrite(A2,HIGH);
  digitalWrite(5,HIGH);
  
  delay(2000);
  digitalWrite(A0,0);
  digitalWrite(4,0);
  digitalWrite(3,0);
  digitalWrite(10,0);
  digitalWrite(9,0);
  digitalWrite(A4,0);
  digitalWrite(A2,0);
  digitalWrite(5,0);
  
  }
  void X(){
  digitalWrite(11,HIGH);
  digitalWrite(A2,HIGH);
  digitalWrite(13,HIGH);
  digitalWrite(A3,HIGH);
  delay(2000);
  digitalWrite(11,0);
  digitalWrite(A2,0);
  digitalWrite(13,0);
  digitalWrite(A3,0);
  
  }
  void loop(){
    delay(500);
    G();
    delay(500);
    E();
    delay(250);
    N();
    delay(250);
    O();
    delay(250);
    T();
    delay(250);
    R();
    delay(250);
    //O();
    delay(250);
    N();
    delay(250);
    E();
    delay(250);
    X();
    delay(3000);
  }
    
  

يوجد طريقه اسهل لكتابه الكود وذلك باستخدام المصفوفات,
حيث يخزن كل حرف عشكل مصفوفه كما هو موضح في الصورة:



 رقم 1 يدل على تفعيل ال LED و 0 على اطفائه وذلك لان   common cathod القطعه المستعمله  في هذه التجربها
  والكود التالي يبين هذه الطريقه  Alpha



int array_G[16] = {1,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0};
int array_E[16]={1,1,0,0,1,1,1,1,0,0,0,1,0,0,0,1};
int array_N[16]={0,0,1,1,0,0,1,1,1,0,0,0,0,1,0,0};
int array_O[16]={1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0};
int array_T[16]={1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0};
int array_R[16]={1,1,1,0,0,0,1,1,0,0,0,1,0,1,0,0};
int array_X[16]={0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0};
void setup() {
  for (int i=3;i<19;i++){
   pinMode(i, OUTPUT);}}
   void G_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_G[j]);
   }}
   
    void E_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_E[j]);
   }}
    void N_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_N[j]);
   }}
    void O_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_O[j]);
   }}
    void T_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_T[j]);
   }}
    void R_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_R[j]);
   }}
    void X_letter(){
     for (int j=0;j<16;j++){
     digitalWrite(j+3,array_X[j]);
   }}
   void loop(){
     G_letter();
     delay(1000);
     E_letter();
     delay(1000);
     N_letter();
     delay(1000);
     O_letter();
     delay(1000);
     T_letter();
     delay(1000);
     R_letter();
     delay(1000);
     O_letter();
     delay(1000);
     N_letter();
     delay(1000);
     E_letter();
     delay(1000);
     X_letter();
     delay(2000);
   }

وهذا الفيديو يوضح طريقه عمل هذا الكود :



أقرأ الكود جيداً و فكر كيف يمكنك ربط أكثر من مقطع أبجدي معاً و كيف يمكنك جعلها تضيئ كلمات و أرقام مختلفة ؟

لقد قمت بعملها و هذا الفيديو يوضح ذلك ....

     

0 التعليقات :

إرسال تعليق

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