جدول المحتويات:
- الخطوة 1: الأشياء المطلوبة
- الخطوة 2: مخطط الدائرة
- الخطوة 3: برنامج حاسبة اردوينو
- الخطوة الرابعة:
- الخطوة 5: عمل حاسبة اردوينو
- الخطوة 6: الكود
فيديو: آلة حاسبة اردوينو: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
البرمجة ممتعة دائمًا و Arduino هي منصة رائعة إذا كنت قد بدأت للتو في البرمجة المضمنة. في هذا البرنامج التعليمي ، سنبني الآلة الحاسبة الخاصة بنا باستخدام Arduino. يمكن إرسال القيم من خلال لوحة مفاتيح (لوحة مفاتيح 4 × 4) ويمكن عرض النتيجة على شاشة LCD (16 × 2 Dot-matrix). يمكن أن تؤدي هذه الآلة الحاسبة عمليات بسيطة مثل الجمع والطرح والضرب والقسمة مع الأعداد الصحيحة. ولكن بمجرد فهمك للمفهوم ، يمكنك تنفيذ حتى الوظائف العلمية باستخدام وظائف Arduino المدمجة. في نهاية هذا المشروع ، ستعرف كيفية استخدام شاشة LCD مقاس 16 × 2 ولوحة المفاتيح مع Arduino وأيضًا مدى سهولة البرمجة لهم باستخدام بسهولة المكتبات المتاحة. سوف تفهم أيضًا كيفية برمجة Arduino لإنجاز مهمة معينة.
الخطوة 1: الأشياء المطلوبة
Arduino Uno (سيعمل أي إصدار) شاشة عرض LCD مقاس 16 × 2 4 × 4 لوحة مفاتيح بطارية 9 فولت لوحة الدوائر وتوصيل الأسلاك
الخطوة 2: مخطط الدائرة
الخطوة 3: برنامج حاسبة اردوينو
يتم تقديم برنامج Arduino الكامل لهذا المشروع في نهاية هذا المشروع. يتم تقسيم الكود إلى أجزاء صغيرة ذات مغزى ويتم شرحه أدناه ، وكما قيل سابقًا ، سنقوم بتوصيل شاشة LCD ولوحة مفاتيح مع Arduino باستخدام المكتبات. لذلك دعونا نضيفها إلى Arduino IDE أولاً. يتم تضمين مكتبة LCD بالفعل في Arduino بشكل افتراضي ، لذلك لا داعي للقلق بشأنها. لمكتبة لوحة المفاتيح ، انقر على الرابط لتنزيله من جيثب. ستحصل على ملف ZIP ، ثم أضف هذا lib إلى Arduino عن طريق Sketch -> Include Library -> أضف ملف ZIP وأشر الموقع إلى هذا الملف الذي تم تنزيله. بمجرد الانتهاء من ذلك ، نكون جاهزين تمامًا للبرمجة. على الرغم من أننا استخدمنا مكتبة لاستخدام لوحة المفاتيح ، يجب أن نذكر بعض التفاصيل (الموضحة أدناه) حول لوحة المفاتيح في Arduino. سيخبر المتغيران ROWS و COLS عدد الصفوف والأعمدة الموجودة في لوحة المفاتيح الخاصة بنا وتوضح خريطة المفاتيح الترتيب الذي توجد به المفاتيح على لوحة المفاتيح. تبدو لوحة المفاتيح التي أستخدمها في هذا المشروع على النحو التالي أدناه لخريطة المفاتيح أيضًا ، كما ذكرنا أدناه أي دبابيس تتصل لوحة المفاتيح باستخدام صفيف متغير rowPins و colPins.const byte ROWS = 4 ؛ // أربعة صفوف من البايت COLS = 4 ؛ // ثلاثة أعمدة // تحديد مفاتيح Keymapchar [ROWS] [COLS] = {{'1'، '2'، '3'، 'A'}، {'4'، '5'، '6'، ' B '}، {' 7 '،' 8 '،' 9 '،' C '}، {' * '،' 0 '،' # '،' D '}}؛ byte rowPins [ROWS] = {0، 1 ، 2 ، 3} ؛ // قم بتوصيل لوحة المفاتيح ROW0 و ROW1 و ROW2 و ROW3 بهذه الدبابيس من Arduino. // قم بتوصيل لوحة المفاتيح COL0 و COL1 و COL2 بدبابيس Arduino هذه وبمجرد أن نذكر نوع لوحة المفاتيح التي نستخدمها وكيف يتم توصيلها ، يمكننا إنشاء لوحة المفاتيح باستخدام تلك التفاصيل باستخدام السطر أدناه Keypad kpd = Keypad (makeKeymap (keys) ، 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 ()؛ // تخزين قيمة المفتاح المضغوط في charif (key! = NO_KEY) DetectButtons () ؛ إذا (النتيجة == صحيح) CalculateResult () ؛ DisplayResult () ؛ يتم شرح ما يحدث داخل كل وظيفة باستخدام سطور التعليق ، وتصفح الشفرة الكاملة أدناه ، والتلاعب بها لفهم كيفية عملها بالفعل. إذا كان لديك أي شك حول سطر معين ، فلا تتردد في استخدام قسم التعليقات أو المنتديات.
الخطوة الرابعة:
الخطوة 5: عمل حاسبة اردوينو
قم بإجراء الاتصالات وفقًا لمخطط الدائرة وقم بتحميل الكود أدناه. إذا ظهر خطأ ، فتأكد من إضافة المكتبة وفقًا للإرشادات الواردة أعلاه. يمكنك أيضًا تجربة المحاكاة للتحقق مما إذا كانت المشكلة تتعلق بجهازك. إذا تم كل شيء كما هو مفترض ، فإن جهازك سيبدو مثل هذا أدناه مع شاشة LCD تعرض آلة حاسبة أردوينو باستخدام لوحة مفاتيح 4x4 قيد التشغيل ، نظرًا لأن لوحة المفاتيح المستخدمة هنا لا تحتوي على علامات مناسبة ، فقد افترضت أن الحروف الهجائية ستكون مشغلين مثل مدرج أدناه حرف على لوحة المفاتيح يفترض أنه "أ" إضافة (+) "ب" الطرح (-) "ج" الضرب (*) قسم "د" (/) "*" مسح (ج) "#" يساوي (=) يمكنك استخدم علامة للكتابة فوق ما يمثله كل زر بالفعل ، وبهذا يمكنك البدء مباشرة في استخدام الآلة الحاسبة. اكتب الرقم وسيظهر في السطر الثاني اضغط على المعامل واكتب رقمك الثاني أخيرًا اضغط على مفتاح "#" للحصول على النتيجة. يمكنك أيضًا محاولة بناء آلة حاسبة Arduino القائمة على شاشة اللمس.
الخطوة 6: الكود
/ * * برنامج Arduino Keypad calculator * / # include // Header file for LCD من https://www.arduino.cc/en/Reference/L LiquidCrystal#include // Header file for Keypad from https://github.com/ كريس - A / Keypadconst بايت ROWS = 4 ؛ // أربعة صفوف من البايت COLS = 4 ؛ // ثلاثة أعمدة // تحديد مفاتيح Keymapchar [ROWS] [COLS] = {{'7'، '8'، '9'، 'D'}، {'4'، '5'، '6'، ' C '}، {' 1 '،' 2 '،' 3 '،' B '}، {' * '،' 0 '،' # '،' A '}}؛ byte rowPins [ROWS] = {0، 1، 2، 3}؛ // قم بتوصيل لوحة المفاتيح ROW0 و ROW1 و ROW2 و ROW3 بهذه الدبابيس من Arduino colPins [COLS] = {4، 5، 6، 7}؛ // قم بتوصيل لوحة المفاتيح COL0 و COL1 و COL2 بدبابيس Arduino هذه. Keypad kpd = لوحة المفاتيح (makeKeymap (keys) ، rowPins ، colPins ، ROWS ، COLS) ؛ // قم بإنشاء Keypadconst int rs = 8 ، en = 9 ، d4 = 10 ، d5 = 11 ، d6 = 12 ، d7 = 13 ؛ // الدبابيس التي تتصل بها شاشات الكريستال السائل LCD LiquidCrystal LCD (rs، en، d4، d5، d6، d7) ؛ طويل Num1 ، Num2 ، رقم ؛ مفتاح char ، عمل ؛ نتيجة منطقية = خطأ ؛ إعداد باطل () {lcd.begin (16، 2) ؛ // نحن نستخدم شاشة LCD مقاس 16 * 2 LCD.print ("آلة حاسبة DIY") ؛ // عرض رسالة تمهيدية lcd.setCursor (0 ، 1) ؛ // اضبط المؤشر على العمود 0 ، السطر 1 lcd.print ("- CircuitDigest") ؛ // عرض تأخير رسالة المقدمة (2000) ؛ // انتظر حتى يتم عرض معلومات lcd.clear () ؛ // ثم قم بتنظيفها} void loop () {key = kpd.getKey ()؛ // تخزين قيمة المفتاح المضغوط في charif (key! = NO_KEY) DetectButtons () ؛ إذا (النتيجة == صحيح) CalculateResult () ؛ DisplayResult () ؛ } باطل DetectButtons () {lcd.clear ()؛ // ثم نظفه إذا (key == '*') // إذا تم الضغط على زر الإلغاء {Serial.println ("Button Cancel") ؛ الرقم = Num1 = Num2 = 0 ؛ نتيجة = خطأ ؛} إذا (المفتاح == '1') // إذا تم الضغط على الزر 1 {Serial.println ("الزر 1") ؛ إذا كان (الرقم == 0) الرقم = 1 ؛ رقم آخر = (رقم * 10) + 1 ؛ // الضغط مرتين} إذا (المفتاح == '4') // إذا تم الضغط على الزر 4 {Serial.println ("الزر 4") ؛ إذا كان (الرقم == 0) الرقم = 4 ؛ رقم آخر = (رقم * 10) + 4 ؛ // الضغط مرتين} إذا (المفتاح == '7') // إذا تم الضغط على الزر 7 {Serial.println ("الزر 7") ؛ إذا كان (الرقم == 0) الرقم = 7 ؛ رقم آخر = (رقم * 10) + 7 ؛ // الضغط مرتين} إذا (المفتاح == '0') {Serial.println ("Button 0") ؛ // يتم الضغط على الزر 0 إذا كان (الرقم == 0) الرقم = 0 ؛ رقم آخر = (رقم * 10) + 0 ؛ // الضغط مرتين} إذا (المفتاح == '2') // تم الضغط على الزر 2 {Serial.println ("الزر 2") ؛ إذا كان (الرقم == 0) الرقم = 2 ؛ رقم آخر = (رقم * 10) + 2 ؛ // الضغط مرتين} إذا (المفتاح == '5') {Serial.println ("الزر 5") ؛ إذا كان (الرقم == 0) الرقم = 5 ؛ رقم آخر = (رقم * 10) + 5 ؛ // Pressed مرتين} if (key == '8') {Serial.println ("Button 8")؛ إذا كان (الرقم == 0) الرقم = 8 ؛ رقم آخر = (رقم * 10) + 8 ؛ // الضغط مرتين} إذا (المفتاح == '#') {Serial.println ("Button Equal") ؛ Num2 = رقم ؛ النتيجة = صحيح ؛ } if (key == '3') {Serial.println ("Button 3")؛ إذا كان (الرقم == 0) الرقم = 3 ؛ رقم آخر = (رقم * 10) + 3 ؛ // Pressed مرتين} if (key == '6') {Serial.println ("Button 6")؛ إذا كان (الرقم == 0) الرقم = 6 ؛ رقم آخر = (رقم * 10) + 6 ؛ // الضغط مرتين} إذا (المفتاح == '9') {Serial.println ("الزر 9") ؛ إذا كان (الرقم == 0) الرقم = 9 ؛ رقم آخر = (رقم * 10) + 9 ؛ // الضغط مرتين} إذا (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Detecting Buttons on Column 4 {Num1 = Number؛ الرقم = 0 ؛ if (key == 'A') {Serial.println ("Addition") ؛ الإجراء = '+' ؛} إذا (المفتاح == 'B') {Serial.println ("الطرح") ؛ العمل = '-' ؛ } if (key == 'C') {Serial.println ("Multiplication")؛ الإجراء = '*'؛} إذا (المفتاح == 'D') {Serial.println ("Devesion") ؛ الإجراء = '/' ؛} تأخير (100) ؛ }} void CalculateResult () {if (action == '+') Number = Num1 + Num2؛ إذا (الإجراء == '-') الرقم = Num1-Num2 ؛ إذا (الإجراء == '*') الرقم = Num1 * Num2 ؛ إذا (الإجراء == '/') الرقم = Num1 / Num2 ؛ } باطل DisplayResult () {lcd.setCursor (0، 0)؛ // اضبط المؤشر على العمود 0 ، السطر 1 lcd.print (Num1) ؛ lcd.print (عمل) ؛ lcd.print (Num2) ؛ إذا (النتيجة == صحيح) {lcd.print ("=") ؛ lcd.print (رقم) ؛} // عرض النتيجة lcd.setCursor (0 ، 1) ؛ // اضبط المؤشر على العمود 0 ، السطر 1 lcd.print (الرقم) ؛ // عرض النتيجة}
موصى به:
آلة حاسبة اردوينو باستخدام لوحة مفاتيح 4X4: 4 خطوات (بالصور)
Arduino Calculator باستخدام لوحة مفاتيح 4X4: في هذا البرنامج التعليمي سنبني الآلة الحاسبة الخاصة بنا باستخدام Arduino. يمكن إرسال القيم من خلال لوحة مفاتيح (لوحة مفاتيح 4 × 4) ويمكن عرض النتيجة على شاشة LCD. يمكن أن تؤدي هذه الآلة الحاسبة عمليات بسيطة مثل الجمع والطرح والضرب
آلة حاسبة اردوينو بإخراج LED: 5 خطوات
Arduino Calculator مع إخراج LED: مرحبًا يا شباب! تريد معرفة كيفية استخدام مدخلات ومخرجات الشاشة التسلسلية. حسنًا ، لقد حصلت على البرنامج التعليمي المثالي حول كيفية القيام بذلك! في هذا الدليل ، سأوجهك خلال الخطوات البسيطة اللازمة لإنشاء آلة حاسبة باستخدام مسلسل Arduino m
آلة حاسبة اردوينو: 8 خطوات (بالصور)
Arduino Calculator: في هذا Instructable ، سأوضح لك كيفية إنشاء آلة حاسبة Arduino جيدة مثل أي آلة حاسبة أخرى (حسنًا … نوعًا ما). على الرغم من أنه قد لا يكون عمليًا نظرًا لحجمه ، إلا أن الاستخدام المتكرر لزر يساوي (نظرًا لعدم وجود
أرخص اردوينو -- أصغر اردوينو -- اردوينو برو ميني -- البرمجة -- اردوينو نينو: 6 خطوات (مع صور)
أرخص اردوينو || أصغر اردوينو || اردوينو برو ميني || البرمجة || اردوينو نينو: …………………………. الرجاء الاشتراك في قناتي على يوتيوب لمزيد من مقاطع الفيديو ……. يدور هذا المشروع حول كيفية التعامل مع أصغر وأرخص اردوينو على الإطلاق. أصغر وأرخص اردوينو هو اردوينو برو ميني. إنه مشابه لاردوينو
آلة حاسبة اردوينو - المشروع النهائي: 4 خطوات
Arduino Calculator - Final Project: بالنسبة لهذا المشروع ، قمت بإنشاء آلة حاسبة باستخدام Arduino Uno وشاشة LCD ولوحة أرقام 4x4. على الرغم من أنه استخدم أزرار النقر بدلاً من لوحة الأرقام ، إلا أن فكرة هذا المشروع بالإضافة إلى المساعدة في بعض التعليمات البرمجية تأتي من هذا الدرس و