آموزش آردوینوپروژه های آردوینو

پروژه ماشین حساب با آردوینو و کیپد 4*4

سلام. پروژه ماشین حساب با آردوینو (آموزش کامل ساخت با کیپد 4*4 و Arduino) را آماده کردیم.

آموزش ساخت ماشین حساب با Arduino

در این پروژه آردوینو ما به طور کامل با نحوه ساخت ماشین حساب آشنا میشویم. در این پروژه ما یک ماشین حساب میسازیم که میتواند اعمال ساده ای مثل جمع ، تفریق ، ضرب و تقسیم را انجام دهد. نتیجه کار خود را در یک ال سی دی کاراکتری میبینیم. برای ورود مقادیر از یک کیپد (Keypad) نوع 4*4 استفاده میکنیم.

قطعات مورد نیاز

مدار ماشین حساب با LCD کاراکتری و آردوینو

  1. برد آردوینو Uno (یا هر برد آردوینوی دیگری)
  2. نمایشگر ال سی دی کاراکتری 16*2
  3. صفحه کلید 4*4
  4. باتری 9 ولت
  5. Bread برد
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

ما ال سی دی را در حالت 4 بیتی به Arduino متصل می کنیم، بنابراین فقط چهار بیت داده آخر ال سی دی به آردوینو وصل می شود. اگر با اتصال کیبورد و ال سی دی به آردوینو آشنایی ندارید ، آموزش های زیر را ببینید :

نحوه کار ماشین حساب ساخته شده با آردوینو

همانطور که در تصویر پایین و فیلم عملکرد میبینید ، ما از کیبوردی برای این پروژه استفاده کردیم که دارای ABCD است. ما هر کدام از این حروف را به انجام یک عمل اختصاص میدهیم.

شما میتوانید این مدار را با استفاده از کابل USB تغذیه کنید یا از باتری 9 ولت استفاده کرده و به آردوینو متصل کنید.

آموزش ساخت ماشین حساب با Arduino

حرف روی کیبورد به عنوان
“A” جمع (+)
“B” تفریق (-)
“C” ضرب (*)
“D” تقسیم (/)
“*” پاک کردن (C)
“#” مساوی (=)

کد اتصال کیبورد به ماشین حساب با آردوینو

برای اینکه کیبورد و دکمه های آن را به آردوینو معرفی کنیم کد زیر را استفاده میکنیم. همانطور که مشاهده میکنید ما ردیف ها ، ستون ها و دکمه های کیپد 4*4 را به Arduino معرفی کرده ایم.

char keys[ROWS][COLS] = { // معرفی ردیف ها و ستون ها
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = { 0, 1, 2, 3 };
byte colPins[COLS] = { 4, 5, 6, 7 };

موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل

3.9 (20 نفر)

مطلب پیشنهادی:  کاربرد آردوینو در صنعت (معرفی PLC صنعتی آردوینو)
برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

برای ارسال تصاویر از انجمن سایت استفاده کنید.

سوالات فنی را در انجمن سایت مطرح کنید تا در مسابقه شرکت کنید. ورود به انجمن

19 نظر

    1. سلام عزیز
      لینک دانلود در انتهای مطلب قرار داده شده است میتوانید از آنجا دانلود کنید. وارد حساب کاربری خود شوید.

  1. کدش کو مهندس نیستش که لطفاً برام بفرست نیاز دارم

    1. سلام عزیز
      لینک دانلود کد در انتهای مطلب قرار داده شده است.

  2. سلام وقت بخیر
    مراحل رو تمام و کامل انجام دادم بدون خطا. پروگرام کردن هم بدون مشکل انجام شد اما حتی یک کارکتر هم روی ال سی دی نمایش داده نمیشه. روشن میشه ولی هیچ چیزی نمایش داده نمیشه.ممنون میشم راهنمایی بفرمایید.سپاس

    1. سلام عزیز
      تصویر مدار خود را در انجمن ارسال کنید.

  3. سلام خسته نباشید
    من فایل پروژه رو دانلود کردم اما سورس برام باز نمیشه یعنی رو خود سورس پروژه که کلیک میکنم کد بالا نمیاد ولی اروری هم نمیده میتونید سورس رو برام یه جوری ارسال کنید ؟

  4. سلام
    من بت گوشی برنامه نویسی میکنم اکثر برنامه هارو ارور میده مثل همین
    بعد من وقتی فایل رو دانلود میکنم بجای برنامه میگه..فقط گوگل پلی میتونه …
    خوتون هم میدونید گوگل فیلتره .. حالا من چی کنم

    1. سلام عزیز
      راه های زیادی برای دور زدن فیلتر هست

  5. سلام برنامه رو وقتی دانلود کردم میگه گوگل پلی فقط می تونه باز کنه

  6. الان این کد محدودیتی براش هست که نتیجه درستی نمی دهد؟
    long a=99999999;
    long b=100;
    float c=a*b;
    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);
    Serial.println(c);
    }

    void loop() {
    // put your main code here, to run repeatedly:

    }

    جواب می دهد؟ 1410065280

    1. داده از نوع Float اندازش 32 بیتی هست مقدار نهایی از ظرفیت این نوع داده بیشتره
      پیشنهاد میکنم مقاله انواع داده آردوینو رو مشاهده کنید.

  7. سلام مهندس

    متاسفانه تعداد زیادی از پروژه های ساخت ماشین حساب با آردوینو را تست کردم ولی همه آنها در محاسبه مقادیر بالا، پاسخهای نادرستی می دهند. چرا؟

    به عنوان مثال اگر عدد 9999999 را در 100 ضرب کنم نتیجه حاصل ضرب درست است، ولی اگر 9999999 را در 1000 ضرب کنم نتیجه ی اشتباهی می دهد! چرا؟

    مشکل از کدهاست یا آردوینو توانایی محاسبه ندارد؟

    1. سلام عزیز
      هر کدام نوع داده های آردوینو تا حدی میتونند اطلاعات رو نگهداری کنند وقتی مقدار از حداکثر سر ریز کنه نتیجه اشتباه بدست میاد

    1. سلام جناب، کد رو میتونید از انتهای مطلب دانلود کنید.

  8. سلام
    من یک برنامه با کی پد وال سی دی نوشتم که دمای جایی روکنترل میکنه وکاربر میتونه با کی پد مقادیر رو کالیبره کنه اما کی پد باید چندبار کلید روفشاربدیم
    تا اینکه یک کاری انجام بشه چون طول برنامه زیاده و پردازنده بعضی وقت ها توی یک سری عملیاته مثل delay هست
    وکاربر کلید کی پد رومیزنه هیچ اتفاقی نمیوفته باد چندین بار بزنه که برنامه به اون خط برسه تا این رو ببینه باید برای درست کردنش چکارکنم ممنون میشم راهنمایی کنید

    1. ممنون میشم راهنمایی کنید که در آردیونو چطور میتونیم در برنامه های طولانی به محض زدن کلید روی کی پد برنامه مقداررودریافت کنه
      چون داره سیکل طبیعی خودش روطی میکنه وممکنه ازاون خط گذشته باشه و فشرده شدن کلید رونبینه

    2. سلام دوست عزیز مثلا شما یه برنامه نوشتی که توش delay هست بمدت 10000 یا 10 ثانیه. اردوینو وقتی به دستور delay میرسه تا زمانی که مدت زمان delay تموم نشده پشت delay میمونه و به سراغ توابع و کد های دیگه نمیره. درواقع این delay یه سد بزرگ هست و اون سد باید مدت زمان مشخصی بگذره که باز میشه و اردوینو به سراغ کد های دیگه بره. این عیب بسیار بزرگ delay هست. برای حل مشکلتون باید از دستور millis استفاده کنید میتونید تو همین ایرنکس اموزش تابع delay رو پیدا کنید و استفاده کنید ***موفق باشید***

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *