در این پست از سایت اِمیک, یک پروژه بسیار جالب با LCD کاراکتری و برد آردوینو قرار داده شده است. نام این پروژه, نوشتن متن فارسی روی LCD کاراکتری می باشد. همانطور که از نام این پروژه مشخص است ما روی یک LCD کاراکتری معمولی, به وسیله برد آردوینو حروف و کلمات فارسی را خواهیم نوشت. LCD کاراکتری برای نمایش حروف و کلمات انگلیسی طراحی و ساخته شده است ولی ما به روشی که در ادامه توضیح خواهم داد روی این LCD کلمات فارسی را خواهیم نوشت. در زیر شماتیک این پروژه جالب را مشاهده می کنید.

قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده ان پست می توانید اینجا کلیک کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد آردوینو UNO استفاده کرده ایم. از یک LCD کاراکتری نیز استفاده کرده ایم که این LCD به پین های 7 تا 13 برد آردوینو متصل شده است. پتانسیومتر RV1 برای تنظیم کنتراست یا میزان روشنایی LCD کاراکتری استفاده شده است. این پروژه در عمل نیز تست شده است که در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.

شماتیک این پروژه بسیار ساده است و نکته خاصی ندارد. تغذیه پروژه بالا را می توانید از خود برد آردوینو بگیرید, به این صورت که برد آردوینو را با استفاده از آداپتور راه اندازی کنید و از پایه های 5V و GND آردوینو برای تغذیه استفاده کنید.
در ادامه برنامه این پروژه را مشاهده می کنیم. تنها نکته این پروژه این است که ما باید توسط یک نرم افزار بسیار ساده حروف و کلمات فارسی مورد نظرمان را در ان رسم کنیم و کد ان را توسط نرم افزار دریافت کنیم و از این کد در برنامه استفاده کنیم.
نرم افزاری که در مورد ان توضیح دادم درون فایل دانلودی انتهای مطلب موجود است. این نرم افزار نیاز به نصب ندارد و کار با ان بسیار ساده است. قبلا در پست “پروژه AVR نوشتن متن فارسی روی LCD کاراکتری” در مورد این نرم افزار و کار کردن با ان توضیح دادم بنابراین برای اشنایی با نحوه کار با این نرم افزار پست معرفی شده را مطالعه کنید.
برنامه اردوینو :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
//////// WWW.EMIC.IR //////// #include <LiquidCrystal.h> //معرفي کتابخانه ال سی دی کاراکتری// //تابع زیر مشخص می کند که کدام پین های اردوینو به ال سی دی متصل شود// LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7); //در زير تعدادي ارايه تعريف کرده ايم که هر کدام از انها برابر یک حرف فارسی می باشد// //مقادير ارايه هاي زير توسط برنامه موجود در فايل دانلودي توليد شده اند// unsigned char Word1[] = {0, 0, 0, 21, 31, 0, 0, 0}; //حرف س// unsigned char Word2[] = {2, 2, 2, 2, 2, 0, 0, 0}; //حرف ا// unsigned char Word3[] = {0, 0, 0, 1, 31, 0, 6, 0}; //حرف ی// unsigned char Word4[] = {0, 6, 0, 17, 31, 0, 0, 0}; //حرف ت// unsigned char Word5[] = {4, 4, 4, 4, 4, 2, 4, 0}; //حرف اِ// unsigned char Word6[] = {0, 0, 0, 0, 31, 5, 2, 0}; //حرف م// unsigned char Word7[] = {0, 0, 0, 1, 31, 0, 6, 0}; //حرف ی// unsigned char Word8[] = {1, 2, 4, 18, 30, 0, 0, 0}; //حرف ک// void setup() { lcd.begin(16, 2); //پیکره بندی ال سی دی// //در زیر ما ارایه هایی که در بالا تعریف کرده بودیم را به کاراکتر تبدیل می کنیم تا بتوانیم روی ال سی دی نمایش دهیم// //همچنین هر کدام از ارایه ها را معادل عددی از 1 تا 8 قرار داده ایم و در برنامه اصلی با فراخوانی این اعداد کاراکترها را نمایش می دهیم// lcd.createChar(1, Word1); lcd.createChar(2, Word2); lcd.createChar(3, Word3); lcd.createChar(4, Word4); lcd.createChar(5, Word5); lcd.createChar(6, Word6); lcd.createChar(7, Word7); lcd.createChar(8, Word8); } void loop() { lcd.setCursor(6, 1); //رفتن به سطر 1 و ستون 6 از ای سی دی کاراکتری// lcd.write(char(8)); //می باشد را روی ال سی دی نمایش می دهد Word8 دستور روبرو کاراکتر شماره 8 که معادل ارایه// lcd.write(char(7)); //می باشد را روی ال سی دی نمایش می دهد Word7 دستور روبرو کاراکتر شماره 7 که معادل ارایه// lcd.write(char(6)); //در ادامه نیز دیگر کاراکترها روی ال سی دی نمایش داده می شوند// lcd.write(char(5)); lcd.setCursor(6, 0); lcd.write(char(4)); lcd.write(char(3)); lcd.write(char(2)); lcd.write(char(1)); delay(300); } |
همانطور که مشاهده می کنید در ابتدای برنامه تعدادی ارایه (با نام های Word1 تا Word8) تعریف شده که مقدار این ارایه ها توسط نرم افزاری که در بالا توضیح داده شد, تولید شده است. توجه کنید که به دلیل کم بودن حافظه LCD کاراکتری, فقط می توان 8 حرف فارسی (کاراکتر) در ان ذخیره کرد و بیشتر از ان را نمی تواند ذخیره و نمایش دهد. بنابراین ما فقط 8 ارایه که هر کدام از انها برابر یک کاراکتر یا حرف فارسی است تعریف کرده ایم.
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های آردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…





سلام استاد شما بلدید stm32 را در پرتوئوس فعال کنید و با اردینو کار کنیم؟