الدرس الثالث - الحساسات

0

 

بسم الله الرحمن الرحيم  

بعد ان ناقشنا فى الدرس السابق ملحق من اهم ملحقات الأردوينو وهى شاشة lcd

سنناقش اليوم واحده من اجمل الملحقات وهى key pad لكن فى البداية ان لم تكن لك خبرة فى الأردوينو 

فلقد قمنا بكتابة سبع دروس يمكنك الإطلاع عليها أولا للإطلاع عليها اضغط هنا 



يعتبر key pad من احد الملحقات

 التى يمكنك ان تستخدمها مع الأردوينو لكتابة شئ ما او لأى غرض اخر 

ولقد قمنا بتصميم العديد من المشاريع 

مثل :- 

كيفية عمل آله حاسبة بإستخدام الأردوينو 

كيفية عمل باسورد لفتح الأبواب بواسطه الأردوينو 

يمكنك اخذ فكرة عن هذا العنصر الرائع من هذه المقالات

في البداية مما يتكون من هذا العنصر يتكون هذا العنصر من عدد محدد من السويتشات 

يكون هناك نوع يحتوى على 16 سويتش واخر يحتوى على 12 سويتش 

ويتم تجميع هذه السويتشات كما هو موضح فى الصورة الأتيه 

فاننا يمكن تجميع هذا العنصر بأنفسنا بمجرد الحصول على بعض سويتشات وتوصيلها معا كما هو موضح بالأعلى 
تحتوى keypad على 8 منافذ اذا كانت  16 زر
و 6 منافذ اذا كانت 12 زر 
حيث يكون نصف عدد المنافذ خاص بالصفوف والنصف الأخر خاص بالأعمده كما هو موضح فى الصورة الأتيه

والأن نتطرق الى كيفية توصيل هذا العنصر مع الأردوينو 

يتم توصيل كل المنافذ الى المنافذ الرقمية مع ملاحظة عدم وضع منافذ فى المنافذ الأتيه 0  و 1 و  13 

اخيرا التجربة :

سوف نقوم بعمل تجربة لهذا العنصر فسنقوم باستخدام شاشة lcd 

وطباعه ما يتم ضغطه على keypad 

والتى يمكن توضيحها فى هذا الفيديو


اولا التوصيلات الأساسية : 





لقد ناقشنا من قبل كيفية توصيل lcd ويمكنك الإطلاع علي الدروس السابقه 

ملحوظة : يمكن معامله المنافذ التماثلية كانها رقمية بطريقة عادية جدا

قمت بتوصيل keypad الى الأردوينو من المنافذ 12 الى 5 

row1 : 12

row2 : 11

row3 : 10

row4 : 9

col1 : 8

col2 : 7

col3 : 6

col4 : 5

ثالثا ننتقل الى الكود :

#include <Keypad.h>

#include <LiquidCrystal.h>

LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);//pin of lcd screen

const byte ROWS = 4; // Four rows

const byte COLS = 4; // four columns

char keys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

byte rowPins[ROWS] = { 12,11,10,9 };

byte colPins[COLS] = { 8,7,6,5 };

Keypad kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup()

{

  lcd.begin(16, 2);

    lcd.setCursor(4,0);

  lcd.print("SMART ARABIC");

  lcd.setCursor(6,1);

  lcd.print("PROJECTS");

  delay(6000);

  lcd.clear();

  lcd.setCursor(0,0);

  lcd.print("made by : ");

  lcd.setCursor(0,1);

  lcd.print("BILAL HASSAN");

  delay(2000);

  lcd.clear();

}

void loop()

{

  char key = kpd.getKey(); 

  if (key != NO_KEY)

{

      lcd.print(key);

  }}

لقد قمنا بشرح اغلبية هذا الكود  فى الدرس السابق فلن نشرحه مجددا وسنكتفى بالجزء الخاص ب keypad

فى البداية من اجل التعامل مع keypad يجب استخدام مكتبة خاصه عن طريق

#include<Keypad.h>

حيث تسهل هذه المكتبة العمل مع keypad

من ثم هناك بعض التعريفات الأساسية مثل عدد الصفوف وعدد الأعمدة 

المنافذ الخاصه بالصفوف والمنافذ الخاصه بالأعمده

const byte ROWS = 4; // Four rows

const byte COLS = 4; // four columns

يجب ان تكون هذه التعريفات من نوع byte لضمان عمل المكتبة 

byte rowPins[ROWS] = { 12,11,10,9 };

byte colPins[COLS] = { 8,7,6,5 };

ومت ثم انشاء مصفوفتين يتم وضع فيهما المنافذ الخاصه بالصفوف والمنافذ الخاصه بالأعمدة ويجب ان تكون ايضا المصفوفة من نوع byte

ومن ثم تعريف الحروف فيجب عمل مصفوفة تحتوى على كل الحروف التى نريد ان نقراءها عند ضغط على سويتش معين 

char keys[ROWS][COLS] = {

  {'1','2','3','A'},

  {'4','5','6','B'},

  {'7','8','9','C'},

  {'*','0','#','D'}

};

فمثلا عند استخدام keypad تحتوى على 4 صفوف و 4 اعمده نحصل على 4 مصفوفات فى كل واحده 4 قيم 

وعندما نستخدم keypad تحتوى على 4 صفوف و 3 اعمده نحصل على 4 مصفوفات فى كل واحده ثلاث قيم 

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

Keypad kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

نتجه الأن الى اهم جزء وهو تعريف keypad الى المكتبه فى البداية نكتب اسم المكتبه ثم اسم الكائن الذي سنتعامل معه وكما قلت من قبل لا يشترط ان يكون الإسم ثابت يمكن تغيير الأسم الى اي اسم تريده 

ثم استخدام امر 

makeKeymap(key)

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

ثم وضع المصفوفة الخاص بالمنافذ الخاصه بالصفوف 

ثم وضع المنافذ الخاصه بالأعمده 

ثم وضع عدد الصفوف وعدد الأعمده 

وبهذا ننهى التعريفات الأساسية الخاصه بالكائن

بعد ذلك امر 

kpd.getKey();

يقوم هذا الكود بمعرفة الزر الذي تم ضغطه وجعل مكانه فى المصفوفة الخاصة بالصفوف 


لتحميل الأكواد اضغط هنا


تصميم : بلال حسان سعدى


لا يوجد تعليقات

أضف تعليق