البرمجة ممتعة دائمًا و Arduino منصة رائعة إذا كنت قد بدأت للتو في البرمجة المضمنة. في هذا البرنامج التعليمي ، سنبني الآلة الحاسبة الخاصة بنا باستخدام Arduino. يمكن إرسال القيم من خلال لوحة مفاتيح (لوحة مفاتيح 4 × 4) ويمكن عرض النتيجة على شاشة LCD (16 × 2 Dot-matrix). يمكن لهذه الآلة الحاسبة إجراء عمليات بسيطة مثل الجمع والطرح والضرب والقسمة مع الأعداد الصحيحة. ولكن بمجرد فهمك للمفهوم ، يمكنك تنفيذ حتى الوظائف العلمية باستخدام وظائف Arduino المدمجة.
في نهاية هذا المشروع ، ستعرف كيفية استخدام شاشة LCD مقاس 16 × 2 ولوحة المفاتيح مع Arduino وأيضًا مدى سهولة البرمجة لهم باستخدام المكتبات المتاحة بسهولة. سوف تفهم أيضًا كيفية برمجة Arduino لإنجاز مهمة معينة.
المواد المطلوبة:
- Arduino Uno (أي إصدار سيعمل)
- شاشة عرض LCD مقاس 16 × 2
- لوحة مفاتيح 4 × 4
- بطارية 9 فولت
- اللوح وتوصيل الأسلاك
مخطط الرسم البياني:
تم إعطاء مخطط الدائرة الكاملة لمشروع حاسبة Arduino أعلاه. يمكن الحصول على الوصلة الأرضية + 5V الموضحة في مخطط الدائرة من 5V والدبوس الأرضي في Arduino. يمكن تشغيل Arduino نفسه من الكمبيوتر المحمول أو من خلال مقبس التيار المستمر باستخدام محول 12 فولت أو بطارية 9 فولت.
نحن نشغل شاشة LCD في وضع 4 بت مع Arduino بحيث يتم توصيل آخر أربع وحدات بيانات فقط من شاشة LCD بـ Arduino. ستحتوي لوحة المفاتيح على 8 دبابيس إخراج يجب توصيلها من طرف 0 إلى طرف 7 كما هو موضح أعلاه. يمكنك استخدام جدول الاتصال التالي للتحقق من اتصالك بـ Arduino ، كما يمكنك التحقق من واجهة لوحة المفاتيح 4x4 مع Arduino.
اسم دبوس اردوينو: |
متصلا: |
د 0 |
1 st دبوس من لوحة المفاتيح |
D1 |
2 ND دبوس من لوحة المفاتيح |
د 2 |
3 طريق دبوس من لوحة المفاتيح |
د 3 |
4 ال دبوس من لوحة المفاتيح |
د 4 |
5 الخامس دبوس من لوحة المفاتيح |
د 5 |
6 ال دبوس من لوحة المفاتيح |
د 6 |
7 عشر دبوس من لوحة المفاتيح |
د 7 |
8 ال دبوس من لوحة المفاتيح |
د 8 |
تسجيل تحديد دبوس LCD (دبوس 4) |
D9 |
تمكين دبوس LCD (دبوس 6) |
D10 |
دبوس البيانات 4 (دبوس 11) |
D11 |
دبوس البيانات 4 (دبوس 11) |
D12 |
دبوس البيانات 4 (دبوس 11) |
D13 |
دبوس البيانات 4 (دبوس 11) |
+ 5 فولت |
متصل بدبوس Vdd لشاشة LCD (دبوس 2) |
أرض |
متصل بـ Vss و Vee و RW pin of LCD (pin 1،3 و 5) |
قد تظهر بعض لوحات Arduino خطأً أثناء تحميل البرنامج إذا كان هناك أي شيء متصل بـ pin 0 و pin1 ، لذلك إذا واجهت أيًا منها فقط قم بإزالة لوحة المفاتيح أثناء تحميل البرنامج.
بمجرد الانتهاء من اتصالاتك ، سيبدو جهازك كما يلي
برنامج حاسبة اردوينو:
يتم تقديم برنامج Arduino الكامل لهذا المشروع في نهاية هذا المشروع. يتم تقسيم الكود إلى أجزاء صغيرة ذات معنى وموضح أدناه.
كما قيل سابقًا ، سنقوم بتوصيل شاشة LCD ولوحة مفاتيح مع Arduino باستخدام المكتبات. لذلك دعونا نضيفهم إلى Arduino IDE أولاً. تم تضمين مكتبة LCD بالفعل في Arduino بشكل افتراضي ، لذلك لا داعي للقلق بشأنها. لمكتبة لوحة المفاتيح ، انقر فوق الارتباط لتنزيلها من Github. ستحصل على ملف ZIP ، ثم أضف هذا lib إلى Arduino بواسطة Sketch -> Include Library -> أضف ملف ZIP وأشر الموقع إلى هذا الملف الذي تم تنزيله. بمجرد الانتهاء ، نكون جاهزين للبرمجة.
على الرغم من أننا استخدمنا مكتبة لاستخدام لوحة المفاتيح ، يتعين علينا ذكر بعض التفاصيل (الموضحة أدناه) حول لوحة المفاتيح في Arduino. سيخبر المتغيران ROWS و COLS عدد الصفوف والأعمدة الموجودة في لوحة المفاتيح الخاصة بنا وتوضح خريطة المفاتيح الترتيب الذي توجد به المفاتيح على لوحة المفاتيح. تبدو لوحة المفاتيح التي أستخدمها في هذا المشروع كما يلي أدناه إلى الخريطة الرئيسية تمثل نفسها أيضًا.
علاوة على ذلك ، ذكرنا أدناه أي دبابيس تتصل لوحة المفاتيح باستخدام صفيف متغير rowPins و colPins .
البايت الثابت ROWS = 4 ؛ // أربعة صفوف const بايت COLS = 4 ؛ // ثلاثة أعمدة // تحديد مفاتيح أحرف مخطط المفاتيح = {{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، 'B'}، { '7'، '8'، '9'، 'C'}، {'*'، '0'، '#'، 'D'}}؛ بايت rowPins = {0 ، 1 ، 2 ، 3} ؛ // قم بتوصيل لوحة المفاتيح ROW0 و ROW1 و ROW2 و ROW3 بدبابيس Arduino هذه. البايت colPins = {4، 5، 6، 7} ؛ // قم بتوصيل لوحة المفاتيح COL0 و COL1 و COL2 بدبابيس Arduino هذه.
بمجرد أن ذكرنا نوع لوحة المفاتيح التي نستخدمها وكيفية توصيلها ، يمكننا إنشاء لوحة المفاتيح باستخدام تلك التفاصيل باستخدام السطر أدناه
Keypad kpd = لوحة المفاتيح (makeKeymap (مفاتيح) ، rowPins ، colPins ، ROWS ، COLS) ؛ // إنشاء لوحة المفاتيح
وبالمثل ، يتعين علينا أيضًا تحديد دبابيس Arduino التي تتصل بها شاشة LCD. وفقًا لمخطط الرسم البياني الخاص بنا ، ستكون التعريفات كما يلي
const int rs = 8 ، en = 9 ، d4 = 10 ، d5 = 11 ، d6 = 12 ، d7 = 13 ؛ // الدبابيس التي تتصل بها شاشة LCD LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛ // إنشاء شاشة LCD
داخل وظيفة الإعداد ، نعرض فقط اسم المشروع ثم ننتقل إلى حلقة while حيث يقع المشروع الرئيسي.
بشكل أساسي ، يتعين علينا التحقق مما إذا كان يتم كتابة أي شيء على لوحة المفاتيح ، وإذا تمت كتابته ، فعلينا التعرف على ما يتم كتابته ثم تحويله إلى متغير عند الضغط على "=" ، يتعين علينا حساب النتيجة ثم عرضها في النهاية على شاشة LCD. هذا هو بالضبط ما يتم عمله داخل وظيفة الحلقة كما هو موضح أدناه
key = kpd.getKey () ؛ // تخزين قيمة المفتاح المضغوط في حرف إذا (key! = NO_KEY) DetectButtons () ؛ إذا (النتيجة == صحيح) CalculateResult () ؛ DisplayResult () ،
يتم شرح ما يحدث داخل كل وظيفة باستخدام سطور التعليق ، وتصفح الكود الكامل أدناه ، والتلاعب بها لفهم كيفية عملها بالفعل. إذا كان لديك أي شك حول سطر معين ، فلا تتردد في استخدام قسم التعليقات أو المنتديات.
محاكاة حاسبة اردوينو:
يمكننا أيضًا تجربة محاكاة المشروع باستخدام برنامج Proteus. لا يحتوي Proteus على مكون Arduino بمفرده ، ولكن يمكن تنزيله بسهولة وإضافته إلى مكتبته. بمجرد أن يكون لديك مكون Arduino على Proteus ، ما عليك سوى إضافة Alphanumeric LCD و Keypad لإجراء الاتصال كما هو موضح في الرسم التخطيطي للدائرة.
ثم قم بتنزيل ملف hex من هنا وأضفه إلى Arduino بالنقر المزدوج على اللوحة في Proteus ثم قم بتوجيه "ملف البرنامج" إلى ملف hex الذي تم تنزيله. يتم عرض لقطة سريعة للمحاكاة أدناه ، يظهر العمل الكامل في الفيديو أدناه.
ملحوظة: الملف السداسي ليس هو نفس الملف الأصلي للبرنامج الموضح أدناه. تم تعديله منذ أن تختلف خريطة مفاتيح لوحة مفاتيح المحاكاة ولوحة مفاتيح الأجهزة الفعلية.
عمل حاسبة اردوينو:
قم بإجراء الاتصالات وفقًا لمخطط الدائرة وقم بتحميل الكود أدناه. إذا ظهر خطأ ، فتأكد من إضافة المكتبة وفقًا للإرشادات الواردة أعلاه. يمكنك أيضًا تجربة المحاكاة للتحقق مما إذا كانت المشكلة تتعلق بجهازك. إذا تم كل شيء كما هو مفترض ، فسيبدو أجهزتك على النحو التالي مع شاشة LCD التي تعرض هذا
نظرًا لأن لوحة المفاتيح المستخدمة هنا لا تحتوي على علامات مناسبة عليها ، فقد افترضت أن الحروف الهجائية هي عوامل تشغيل كما هو موضح أدناه
حرف على لوحة المفاتيح |
يفترض أن تكون |
"أ" |
إضافة (+) |
"ب" |
الطرح (-) |
"ج" |
عمليه الضرب (*) |
"د" |
قطاع (/) |
"*" |
مسح (C) |
"#" |
يساوي (=) |
يمكنك استخدام علامة للكتابة فوق ما يمثله كل زر بالفعل.
بعد القيام بذلك ، يمكنك البدء مباشرة في استخدام الآلة الحاسبة. اكتب الرقم وسيظهر في السطر الثاني اضغط على المعامل واكتب رقمك الثاني أخيرًا اضغط على مفتاح "#" للحصول على النتيجة. يمكنك أيضًا محاولة بناء آلة حاسبة Arduino القائمة على شاشة اللمس.