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

محتویات
سلام. پروژه ماشین حساب با آردوینو (آموزش کامل ساخت با کیپد 4*4 و Arduino) را آماده کردیم.
آموزش ساخت ماشین حساب با Arduino
در این پروژه آردوینو ما به طور کامل با نحوه ساخت ماشین حساب آشنا میشویم. در این پروژه ما یک ماشین حساب میسازیم که میتواند اعمال ساده ای مثل جمع ، تفریق ، ضرب و تقسیم را انجام دهد. نتیجه کار خود را در یک ال سی دی کاراکتری میبینیم. برای ورود مقادیر از یک کیپد (Keypad) نوع 4*4 استفاده میکنیم.
قطعات مورد نیاز
- برد آردوینو Uno (یا هر برد آردوینوی دیگری)
- نمایشگر ال سی دی کاراکتری 16*2
- صفحه کلید 4*4
- باتری 9 ولت
- Bread برد
ما ال سی دی را در حالت 4 بیتی به Arduino متصل می کنیم، بنابراین فقط چهار بیت داده آخر ال سی دی به آردوینو وصل می شود. اگر با اتصال کیبورد و ال سی دی به آردوینو آشنایی ندارید ، آموزش های زیر را ببینید :
- آموزش جامع اتصال LCD کاراکتری به برد آردوینو و ایجاد متن متحرک
- پروژه اتصال کیبورد به آردوینو (آموزش کامل راه اندازی کیپد در Arduino)
نحوه کار ماشین حساب ساخته شده با آردوینو
همانطور که در تصویر پایین و فیلم عملکرد میبینید ، ما از کیبوردی برای این پروژه استفاده کردیم که دارای ABCD است. ما هر کدام از این حروف را به انجام یک عمل اختصاص میدهیم.
شما میتوانید این مدار را با استفاده از کابل USB تغذیه کنید یا از باتری 9 ولت استفاده کرده و به آردوینو متصل کنید.
حرف روی کیبورد | به عنوان |
“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 };
موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام خواهش میکنم کدش را برام بفرستید
سلام عزیز
لینک دانلود در انتهای مطلب قرار داده شده است میتوانید از آنجا دانلود کنید. وارد حساب کاربری خود شوید.
کدش کو مهندس نیستش که لطفاً برام بفرست نیاز دارم
سلام عزیز
لینک دانلود کد در انتهای مطلب قرار داده شده است.
سلام وقت بخیر
مراحل رو تمام و کامل انجام دادم بدون خطا. پروگرام کردن هم بدون مشکل انجام شد اما حتی یک کارکتر هم روی ال سی دی نمایش داده نمیشه. روشن میشه ولی هیچ چیزی نمایش داده نمیشه.ممنون میشم راهنمایی بفرمایید.سپاس
سلام عزیز
تصویر مدار خود را در انجمن ارسال کنید.
سلام خسته نباشید
من فایل پروژه رو دانلود کردم اما سورس برام باز نمیشه یعنی رو خود سورس پروژه که کلیک میکنم کد بالا نمیاد ولی اروری هم نمیده میتونید سورس رو برام یه جوری ارسال کنید ؟
سلام
من بت گوشی برنامه نویسی میکنم اکثر برنامه هارو ارور میده مثل همین
بعد من وقتی فایل رو دانلود میکنم بجای برنامه میگه..فقط گوگل پلی میتونه …
خوتون هم میدونید گوگل فیلتره .. حالا من چی کنم
سلام عزیز
راه های زیادی برای دور زدن فیلتر هست
سلام برنامه رو وقتی دانلود کردم میگه گوگل پلی فقط می تونه باز کنه
الان این کد محدودیتی براش هست که نتیجه درستی نمی دهد؟
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
داده از نوع Float اندازش 32 بیتی هست مقدار نهایی از ظرفیت این نوع داده بیشتره
پیشنهاد میکنم مقاله انواع داده آردوینو رو مشاهده کنید.
سلام مهندس
متاسفانه تعداد زیادی از پروژه های ساخت ماشین حساب با آردوینو را تست کردم ولی همه آنها در محاسبه مقادیر بالا، پاسخهای نادرستی می دهند. چرا؟
به عنوان مثال اگر عدد 9999999 را در 100 ضرب کنم نتیجه حاصل ضرب درست است، ولی اگر 9999999 را در 1000 ضرب کنم نتیجه ی اشتباهی می دهد! چرا؟
مشکل از کدهاست یا آردوینو توانایی محاسبه ندارد؟
سلام عزیز
هر کدام نوع داده های آردوینو تا حدی میتونند اطلاعات رو نگهداری کنند وقتی مقدار از حداکثر سر ریز کنه نتیجه اشتباه بدست میاد
کود نویسی ماشین حساب همرا ه باکیپت ضرورت دارم
سلام جناب، کد رو میتونید از انتهای مطلب دانلود کنید.
سلام
من یک برنامه با کی پد وال سی دی نوشتم که دمای جایی روکنترل میکنه وکاربر میتونه با کی پد مقادیر رو کالیبره کنه اما کی پد باید چندبار کلید روفشاربدیم
تا اینکه یک کاری انجام بشه چون طول برنامه زیاده و پردازنده بعضی وقت ها توی یک سری عملیاته مثل delay هست
وکاربر کلید کی پد رومیزنه هیچ اتفاقی نمیوفته باد چندین بار بزنه که برنامه به اون خط برسه تا این رو ببینه باید برای درست کردنش چکارکنم ممنون میشم راهنمایی کنید
ممنون میشم راهنمایی کنید که در آردیونو چطور میتونیم در برنامه های طولانی به محض زدن کلید روی کی پد برنامه مقداررودریافت کنه
چون داره سیکل طبیعی خودش روطی میکنه وممکنه ازاون خط گذشته باشه و فشرده شدن کلید رونبینه
سلام دوست عزیز مثلا شما یه برنامه نوشتی که توش delay هست بمدت 10000 یا 10 ثانیه. اردوینو وقتی به دستور delay میرسه تا زمانی که مدت زمان delay تموم نشده پشت delay میمونه و به سراغ توابع و کد های دیگه نمیره. درواقع این delay یه سد بزرگ هست و اون سد باید مدت زمان مشخصی بگذره که باز میشه و اردوینو به سراغ کد های دیگه بره. این عیب بسیار بزرگ delay هست. برای حل مشکلتون باید از دستور millis استفاده کنید میتونید تو همین ایرنکس اموزش تابع delay رو پیدا کنید و استفاده کنید ***موفق باشید***