الأحد، 28 سبتمبر 2014

كيباد بثلاثة أطراف فقط !!

مقال مترجم بعنوان 

Arduino 3 wire Matrix Keypad by XenonJohn






كل منا يعلم توصيلة الكيباد التي تستغل سبع مخارج من بوردة الاردوينو وهنا تكمن المشكلة في العدد الاطراف الكبير المستخدم 
مع الكيباد لكني اريد ان تكون هذه الاطراف متاحة لي للإستخدام مع المحركات والصمامات وإرسال بيانات إلي شاشة _LCD_



لدي هنا خياران : 
الاول : استخدام بوردة اردوينو ميجا التي تحتوي علي المزيد من المداخل والمخارج 
الثاني : إيجاد طريقة لتوصيل الكيباد بعدد مداخل اقل 
الحــــــــــــــــل : 
_بإستخدام مدخل أنالوج واحد فقط ومجموعة مقاومات يتم ربطهم بمفاتيح الكيباد بحيث عندما يتم الضغط علي كل مفتاح يتم إرسال قيمة فولت مختلفة إلي _analog Pin_
_برغم متاعب توصيل المقاومات إلا أن الميزة الكبري كل مداخلك الديجيتال ستظل متاحة لك للإستخدام في أشياء أخري.
لديك أربع خطوات:

1_ تعريف أطراف الكيباد بإعتبار أن الكيباد تحوي 3اعمدة و4صفوف .

#include <Keypad.h>
const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'#','0','*'}
};
الخطوة الثانية : توصيل المقاومات
ثلاثة أطراف طرف +5 وطرف ارضي و
طرف 0analogPin
ووجود المكثف هُنا لمنع التداخل الناجم عن الأسلاك مسببة إنتقال قيمة فولت إلي طرف الأنالوج مسببا أخطاء . 




الخطوة الثالثة -الإختبار : 
 يتم قياس قيمة الجهد الانالوج في مقياس من 0:1023 اي من 0:5 فولت 
تكون قيمة الفولت الانالوج  = قيمة الجهد بالبت * 5)/1023 )
وهذا الجدول يبين القيمة بالبت .ولذلك تأخذ حاصل ضرب أي قيمة منهم * 5/1023 تكون القيمة قيمة الفولت المقاس .
إذا طبقت هذا الجدول سوف تحصل علي القيمة الفعلية للجهد او قيمة قريبة منها حيث أن للمقاومات نسبة سماحية .
وسوف نري في المثال #




في هذا المثال البسيط علي برنامج سيركت ويزارد
 قمنا بتطبيق قياس الفولت عندما تم الضغط علي زر #
وكانت نتيجة قياس الجهد =
4.7v
وعندما كنا نضغط # كانت النتيجة بالبت 
955
فتكون نسبة 955 : 1023 هي نسبة 4.7 : 5
قيمة الفولت =
955*(5/1023)  
لن يكون الناتج = 4.7
وانما يكون مقاربا له حيث انه توجد نسبة سماحية للمقاومات فيكون
4.58


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

http://www.instructables.com/id/Arduino-3-wire-Matrix-Keypad
Arduino 3 wire Matrix by xenon John 
وشكرا ^_^ 


































































ليست هناك تعليقات:

إرسال تعليق