السبت، 15 يونيو، 2013

لوحة الأدخال Keypad 4*4

لوحة الإدخال KeyPad




لوحة الإدخال Keypad 4*4 هي احدى التطبيقات التي تمكننا من ادخال الارقام و الرموز و التحكم بالعديد من التطبيقات المختلفة , كالحساب و الحماية و غيرها الكثير 

تأتي لوحات الادخال Keypad باشكال و توصيلات مختلفة 








لوحة الإدخال التي سأستعملها هي Keypad4*4 و التي تحتوي على ستة عشر زراً 16 button  و مقسم لأربعة صفوف و أربعة أعمدة .

                                                        

ما ستحتاجه لتقوم بتجربة اليوم :

1) بطاقة أردوينو 

2) لوحة ادخال Keypad 4*4 
3)اسلاك توصيل solderless Jumper
4)Breadboard  

الفكرة العامة للوحة ادخال Keypad 4*4 :

الفكرة العامة التي ترتكز عليها  لوحة ادخال Keypad 4*4 في انها تتكون من مصفوفة من الصفوف Rows و الأعمدة Columns  التي يربط صفوفها لتكون كمصدر تغذية و اعمدتها كمصرف لتيار التغذية " يجوز العكس" , و يعمل كل زر في هذه المصفوفةButton عمل المفتاح Switch , و في حالة الضغط على الزر فأنه يسمح للتيار بالمرور .


سنقوم بتوصيل 
لوحة ادخال Keypad 4*4 مع 8 مداخل من الأردوينو .
الفكرة أن المداخل المربوطة مع الصفوف Rows تكون كمصدر للتيار أما الأعمدة columns فتكون كمصرف للتيار

طريقة التوصيل :


طريقة التوصيل موجودة في المخطط التالي :



طريقة التوصيل سهلة أليس كذلك ؟

الان ننتقل للبرمجة ,الكود موجود ادناه :


//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//You should have received a copy of the GNU General Public License
// along with this program. If not, see http://www.gnu.org/licenses/

//****************************************************
//Name :Mohannad Rawashdeh .
//Date "25/2/2013 3:00pm
// Description: This  Code for using Key pad 4*4 connecting with arduino 
// from pin D2-D9 
// Programmed for  http://www.genotronex.com/                 
//****************************************************************



int t=10;
byte C1=6;
byte C2=7;
byte C3=8;
byte C4=9;
//............
byte R1=2;
byte R2=3;
byte R3=4;
byte R4=5;
//............

boolean Button_state=1;

//...........
byte col[]={6,7,8,9};
byte row[] ={2,3,4,5};
//...........
              
char Button[4][4] = {
    { '1','2','3','A' },
    { '4','5','6','B' },
    { '7','8','9','C' },
    { '*','0','#','D' }
};
               
void setup(){
  Serial.begin(9600);
pinMode(R1,OUTPUT);
pinMode(R2,OUTPUT);
pinMode(R3,OUTPUT);
pinMode(R4,OUTPUT);
//........
pinMode(C1,INPUT);
pinMode(C2,INPUT);
pinMode(C3,INPUT);
pinMode(C4,INPUT);
//.......
digitalWrite(C1,HIGH);
digitalWrite(C2,HIGH);
digitalWrite(C3,HIGH);
digitalWrite(C4,HIGH);
//.............
digitalWrite(R1,HIGH);
digitalWrite(R2,HIGH);
digitalWrite(R3,HIGH);
digitalWrite(R4,HIGH);
}
void loop(){
int x=0;
  for (int i=0;i<4;i++){
    digitalWrite(row[i],LOW);
    delay(t);
  for (int j=0;j<4;j++){
  digitalWrite(row[i],LOW);  
 Button_state=digitalRead(col[j]);
 digitalWrite(row[i],HIGH);
if (Button_state == 0){
 Serial.print("Button Pushed "); 
 x=i+j;
 Serial.println(Button[i][j]);
 delay(500);
}
  }

  }
}




في البداية نقوم بتعريف الصفوف R ابتداءاً من D2-D5 ومن ثم نقوم بتعريف الاعمدة C من D6-D9 و نعرف الصفوف كمخرج" مصدر تيار" و الاعمدة كمدخل INPUT "مصرف للتيار , السؤال لماذا عرفنا المداخل و اعطيناها الأمر 

digitalWrite(C1,HIGH);
digitalWrite(C2,HIGH);
digitalWrite(C3,HIGH);
digitalWrite(C4,HIGH);


هنا فعّلنا مقاومات داخلية تسمى مقاومات رفع Pull_up resistor  و التي تفعّل مقاومات داخلية قيمتها 10 كيلو اوم , يمكن القراءة عنها أكثر هنا 


فقط طبق البرنامج و افتح شاشة ال Serial Monitor لترى رقم الزر الذي ضغطت عليه .

هذا هو كل شيء يلزم لبرمجة لوحة الأدخال , تحياتي 

0 التعليقات :

إرسال تعليق

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