در این مقاله، قصد داریم آموزش ساخت ماشین حساب با آردوینو و صفحه کلید ۴ *۴ را توضیح دهیم. اطلاعات از طریق کیپد ارسال و نتیجه روی یک LCD نمایش داده می شود. این ماشین حساب عملیات ساده مانند جمع، تفریق، ضرب و تقسیم را پشتیبانی می کند. حتی می توانید با تغییرات اندک عملیات پیچیده ریاضی را نیز با این ماشین حساب پیاده سازی کنید.
در پایان این پروژه نحوه کار با LCD و صفحه کلید و برنامه نویسی آنها با آردوینو را خواهید آموخت.
وسال مورد نیاز پروژه ساخت ماشین حساب با آردوینو
آردوینو UNO : 1 عدد۱۶×۲ LCD Display : 1 عدد
۴×۴ Keypad : 1 عدد
بردبورد : 1 عدد
باطری ۹ ولت : 1 عدد
سیم : 1 عدد
مدار آموزش ساخت ماشین حساب با آردوینو
اتصالات :
مدار کامل پروژه ماشین حساب آردوینو در تصویر بالا آماده است. سیم قرمز رنگ به پین ۵ ولت آردوینو و سیم مشکی به پین GND متصل است. برد آردوینو می توانید از طریق اتصال به کامپیوتر یا یک آداپتور ۱۲ ولت یا باطری کتابی ۹ ولت تغذیه شود.
در این پروژه ما از حالت ۴ بیتی LCD با آردوینو استفاده کردیم بنابراین ۴ بیت دیتای آخر LCD به آردوینو متصل شده است.
کیبورد ۸ پین خروجی دارد که مطابق تصویر باید به پین های ۰ تا ۷ آردوینو متصل شوند. جدول زیر اتصالات مدار را نشان می دهد.
نام پین در آردوینو | اتصال |
D0 | پین اول کیبورد |
D1 | پین دوم کیبورد |
D2 | پین سوم کیبورد |
D3 | پین چهارم کیبورد |
D4 | پین پنجم کیبورد |
D5 | پین ششم کیبورد |
D6 | پین هفتم کیبورد |
D7 | پین هشتم کیبورد |
D8 | پین رجیستر LCD – پین شماره ۴ |
D9 | پین شماره ۶ LCD – فعال |
D10 | پین دیتا – شماره ۱۱ |
D11 | پین دیتا – شماره ۱۱ |
D12 | پین دیتا – شماره ۱۱ |
D13 | پین دیتا – شماره ۱۱ |
+۵V | متصل به پین Vdd LCD – پین شماره ۲ |
Ground | متصل به پین های Vss,Vee و RW ( پین ۱ و ۳ و ۵ ) |
در صورت وجود اتصال هرچیزی به پین شماره ۰ و ۱ آردوینو، برخی از بردها ممکن است موقع آپلود خطا ایجاد شود. در صورت برخورد با این مورد کافیست هنگام آپلود برنامه صفحه کلید را جدا کنید.
پس از اتصال سخت افزار شما مشابه تصویر زیر خواهد بود :
برنامه ماشین حساب آردوینو:
کد کامل برنامه ماشین حساب آردوینو در انتهای مقاله آماده است. توضیحات قسمت های مختلف آمده است. ابتدا باید کتابخانه LCD و کتابخانه صفحه کلید را به آردوینو اضافه کنیم. کتابخانه LCD به صورت پیش فرض در IDE آردوینو اضافه شده است. کتابخانه Keypad را می توانید از GitHUB یا اینجا دانلود کنید.
توجه : به منظور راحتی کاربران و اطمینان از حذف نشدن فایل ها، یک نسخه از کتابخانه ها در وب سایت آپلود می شوند اما توصیه ما این است که در صورت امکان همواره آخرین نسخه را از مرجع اصلی دانلود کنید.
پس از دریافت فایل zip وارد منوی Sketch و سپس Include Library شوید. روی Add .zip file کلیک کنید و فایل دانلود شده را انتخاب کنید. با وجود اینکه از کتابخانه keypad استفاده می کنیم اما لازم است جزییاتی را در خصوص استفاده از صفحه کلید توضیح دهیم. متغیرهای ROWS و COLS مشخص می کند که صفحه کلید چه تعداد ردیف و ستون دارد. متغیر keymap ترتیب حضور کلیدها در صفحه کلید را مشخص می کند. keymap صفحه کلیدی که در این پروژه استفاده کردیم نیز در کد زیر آمده است :
1 2 3 4 5 6 7 8 9 10 11 12 | const byte ROWS = 4; // Four rows const byte COLS = 4; // Three columns // Define the Keymap char keys[ROWS][COLS] = { {'۱','۲','۳','A'}, {'۴','۵','۶','B'}, {'۷','۸','۹','C'}, {'*','۰','#','D'} }; byte rowPins[ROWS] = { 0, 1, 2, 3 };// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins. byte colPins[COLS] = { 4, 5, 6, 7 }; // Connect keypad COL0, COL1 and COL2 to these Arduino pins. |
پس از تعریف متغیر های بالا، از آنها به این صورت استفاده می کنیم :
1 | Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Create the Keypad |
به صورت مشابه باید مشخص کنیم که چه پین های از آدوینو به LCD متصل شده است. طبق مداری که در این پروژه بستیم کد به این صورت می شود:
1 2 | const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; //Pins to which LCD is connected LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //create the LCD |
در داخل تابع setup، مقداردهی و وضعیت اولیه LCD را انجام می دهیم.
در تابع loop اساسا، کاری که باید انجام شود این است که هر چیزی که در کیبورد تایپ می شود را بررسی و برای انجام عملیات ریاضی آماده سازی کنیم. هنگام فشردن دکمه = باید نتیجه را در خروجی چاپ کنیم.
1 2 3 4 5 6 7 8 9 | key = kpd.getKey(); //storing pressed key value in a char if (key!=NO_KEY) DetectButtons(); if (result==true) CalculateResult(); DisplayResult(); |
توضیحات مربوط به هر تابع به صورت کامنت در داخل کد آمده است. اگر در خصوص هر قسمت از کد مشکلی داشتید از طریق نظرات با ما در ارتباط باشید.
شبیه سازی ماشین حساب آردوینو در نرم افزار Proteus
می توانید این پروژه را در نرم افزار پروتئوس شبیه سازی کنید. پروتئوس کامپوننت آردوینو ندارد، اما می توانید کتابخانه آن را دانلود و نصب کنید. پس از نصب کتابخانه آردوینو، Alphanumeric LCD و Keypad را اضافه و اتصالات را طبق دیاگرام انجام دهید. سپس فایل hex را دانلود و با دابل کلیک روی برد آردوینو در پروتئوس و انتخاب program file اضافه کنید.
توجه : با توجه به تفاوت صفحه کلید شبیه سازی با سخت افزار مورد استفاده، فایل hex ارائه شده با فایل برنامه متفاوت است.
نحوه کار ماشین حساب آردوینو
پس از ایجاد اتصالات طبق دیاگرم و آپلود کد کامل برنامه که در انتهای این مقاله آمده است، خروجی کار شما باید چیزی شبیه تصویر زیر باشد :
با توجه به اینکه صفحه کلید استفاده شده برای این منظور استفاده نشده است، از حروف الفبای صفحه کلید طبق جدول زبر استفاده کردیم :
کلید | کاربرد |
“A” | جمع |
“B” | تفریق |
“C” | ضرب |
“D” | تقسیم |
“*” | پاک کردن صفحه |
“#” | مساوی |
می توانید با یک ماژیک عملیات مورد نظر را روی صفحه کلید نشانه گذاری کنید.
اعداد و عملگر را با صفحه کلید تایپ کنید و در نهایت دکمه # یا مساوی را بزنید و نتیجه را مشاهده کنید.
3 Comments
mahdi
ببخشید ولی فایلی به نام وجود نداره Sketch
amir hossein
کار نمیکنه خودتونو حیرون نکنین
رضا شاهرخیان
مشکل کجاست ؟ بگید تا راهنمایی کنم