نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

آموزش نمایشگر گرافیکی ks0108 با arduino جلسه1

229

به نام خدا : تو این مطلب از سری مطالب پروژه آردوینو ، به درخواست و حمایت آقای Ali Ghahramani میخوام آموزش کار با نمایشگر KS0108 رو براتون بگم، و پروژه KS0108 با آردوینو رو براتون میزارم، و آموزش ساخت فونت برای نمایشگر KS0108 رو براتون میگم، آموزش ساخت عکس و نمایش در KS0108 رو براتون میگم، توابع کتابخونه KS0108 رو براتون توضیح میدم و بعدش برای هر تابع یه پروژه نمونه قرار میدم براتون >>>> آموزش نمایشگر گرافیکی ks0108 با arduino جلسه۱
آموزش نمایشگر گرافیکی ks0108 با arduino جلسه1

آموزش نمایشگر گرافیکی ks0108 با arduino جلسه۱

داستان کربلا رفتن ما، قسمت ۳
یکی نیست بگه حالا یه کربلا رفتی ها - حالا بشین تا قیامت داستانش رو تعریف کن laugh
داستان کربلا رفتن ما(قسمت۳) : تو راه نجف بودیم، سر یه چیزایی من از بچه ها جدا شدم، مسیر رو داشتم میرفتم که به دو راهی خوردم، مسیر اصلی نجف به کربلا رو داشتن تعمیر میکردن و اندازه جاده رو کوچیک کرده بودن برا بحث تعمیرات تا هم بتونن کار تعمیرات رو انجام بدن و هم مردم به پیاده رویشون ادامه بدن ولی چون اون جاده نصف شده کفاف این جمعیت رو نمیداد به همین خاطر یه راه دیگه هم ایجاد کرده بودن برای رسیدن به کربلا تا زائر ها راحت باشن، به همین خاطر میگم دو راحی کربلا، تقریبا این دو راهی تو حدودای عمود ۱۱۰۰ بود فک کنم، دقیقا خاطرم نیست، ۱۴۰۰ فک میکنم میشد حرم حضرت عباس ع ، یه چیز تو این مایه ها، دقیقش رو خاطرم نیست، این مسیر نجف تا کربلا کلی عمود(همون تیر برق خودمون^_^) داشت – حدودا هر ۵۰ متر یه عمود بود(اندازش رو حدودی دارم میگم) و بین نجف تا حرم حضرت عباس ع حدودا ۱۴۰۰ تا علم بود یعنی ۷۰ کیلومتر (حالا خدا فقط میدونه این آماری که من دارم میدم چقدر دقیق هستش!!! ^_^) – میگفتم آقا ما از بچه ها جدا شده بودم و سر دو راهی موندم از کدوم طرف برم، با بچه ها هماهنگ کردم و من سر همون دو راهی موندم تا بچه ها بهم برسن، رفتم تو یه موکبی و نشستم تا استراحتی کنم تا بچه ها برسن، ما هم که آدمی نیستیم که ساکت یه گوشه بشینیم^_^، یه عربستانی اومد پیشم نشست، یکم باهاش حرف زدم (حالا من نه زبون اونو بلدم و نه اون زبون منو، خودتون یه بار اگه رفته باشید کربلا میدونید که من چطوری با اینا صچبت میکردم، حالا شده به کمک ایما اشاره، عکس، و هر چیزی که فک کنید^_^ حتی مترجم گوگلO_o) بهش با پانتومیم(همون نشون دادن منظورم با حرکات بدنم) گفتم تو عربستان شما شیعه ها رو سر میبرید، گفت نه نه نه، ما هم خندیدیم(چون طرف خودش شیعه بود^_^)، بعد یه چند نفری اومدن کنارم نشستن، از بچه های "کتاب حزب الله" عراق بودن فک کنم یا "حزب الله در عراق" دقیقا خاطرم نیست کدومش بودن، چون پرچمشون "کتاب حزب الله" بود ولی کارت شناساییشون رو که ازشون گرفتم نوشته بود "حزب الله در عراق" زیرش هم امضای سید حسن نصرالله بود، بهشون با کلی زور و زحمت گفتم میخوام تو گروهتون عضو بشم، آخر سر بعد کلی حرف زدن بهم گفتن از طریق تلگرام خبرت میکنیم، ولی نامردا تا الان هم خبر نکردن(این میشه تجربه که به حرف آدم نظامی جماعت نباید زیاد اعتماد کرد، چون به احتمال زیاد میخوان بپیچوننت، تو ایران هم همین طور هستش، به اندازه موهای سرتون پیچیده شدم که دارم میگم^_^)، نماز رو خودم و بعد بچه ها بهم رسیدن، یکی از بچه ها ترکش خورده بود بهش^_^؛ در اثر پیاده روی پاش تاول زده بود فک کنم، بنده خدا با پای پیاده اومده بود و ما با کفش O_o، بعد ۱۰ دقیقه استراحت، رفتیم یه موکب پیدا کردیم و شب اونجا موندیم.

 

مطالب مرتبط با KS0108 :

 

توابع کتابخانه نمایشگر گرافیکی ks0108

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

دانلود کتابخانه نمایشگر گرافیکی ks0108 برای آردوینو

openGLCD

برای استفاده از این نمایشگر در پروژتون باس فایل کتابخونه این نمایشگر رو در خط اول برنامه قرار بدید، تا بتونید از توابع این کتابخونه استفاده کنید و نمایشگر گرافیکی تون رو راه اندازی کنید.

Init

در شروع پروژه برا راه انداری کتابخونه باید این تابع رو فراخونی کنید(در اول تابع SETUP)، اون پارامتری که به تابع میدیم تعیین رنگ پس زمینه نمایشگر هستش، میتونید یکی از موارد زیر به به این تابع بدید(داخل پرانتز قرار بدید^_^) :
NON_INVERTED : رنگ پس زمینه سفید و چیزای دیگه سیاه نمایش داده میشن
INVERTED : رنگ پس زمینه سیاه و چیزای دیگه(متن، خط و...) به صورت سفید نمایش داده میشن

SelectFont - آموزش کامل ساخت فونت برای نمایشگر KS0108

این تابع برا انتخاب فونت متنی که میخوایم نشون بدیم هستش، این کتابخونه فونت های زیر رو داره(فقط حواستون باشه که اگه بخواین از همه فونت ها استفاده کنید ظرفیت حافظه میکرو پر میشه، این نکته رو در نظر بگیرید.)
توجه : تا برا متنی فونت تعیین نکنید و یا در اول پروژه یه فونت کلی تعریف نکنید متن نمایش داده نمیشود.
۳۹ فونت موجود به شرح زیر هستش که باید در مکان پارامتر اولی قرارشون بدید :

  • Callibri11
  • CalLite24
  • cp437font8x8
  • font8x8
  • Roosewood22
  • TimesNewRoman13_italic
  • Verdana_digits_24
  • Arial_bold_14
  • Callibri11_bold
  • Cooper19
  • newbasic3x5
  • TimesNewRoman13
  • utf8font10x16
  • Wendy3x5
  • fixed_bold10x15
  • Iain5x7
  • Roosewood26
  • TimesNewRoman16
  • TimesNewRoman16
  • Verdana12
  • Arial14
  • Callibri11_italic
  • Cooper21
  • fixednums7x15
  • Callibri15
  • Corsiva_12
  • fixednums15x31
  • lcdnums12x16
  • System5x7
  • TimesNewRoman16_bold
  • Verdana12_bold
  • CalBlk36
  • Callibri14
  • Cooper26
  • fixednums8x16
  • lcdnums14x24
  • SystemFont5x7
  • TimesNewRoman16_italic
  • Verdana12_italic
  • Callibri10
پارامتر دوم رنگ متن و پس زمینه متن هستش که باید یکی از دو پارامتر زیر رو براش قرار بدید،
WHITE : رنگ متن سفید شده و رنگ پس زمینه سیاه
BLACK : رنگ متن سیاه شده و رنگ پس زمینه سفید
پارامتر سوم رو هم متوجه نشدم.

فیلم آموزشی ساخت فونت : خب برا بحث آموزش استفاده از فونت ها و ساخت فونت و یه سری چیزای کوچولو یه فیلم ضبط کردم که براتون برای دانلود میزارم تو سایت :

19.8MB آموزش ساخت فونت برای KS0108
0%
00:00  /  11:42

توجه مهم : به نظرم این کد فونت های آماده رو کپی کنید و در برنامه تون پیس کنید، انگار یه فونت جدید ساختین و اون کاراکتر های اضافی فونت رو حذف کنید تا هم حجم برنامه کم بشه و هم بتونید از تعداد فونت های بیشتری در برنامه استفاده کنید، مثلا برنامه شما نمایش ساعت هستش، حالا شما چه نیازی به کاراکتر ؟ خب معموله مثلا اعداد یا در بعضی حالات به یه سری حروف انگلیسی نیاز دارید، خب اگه کاراکتری رو نیاز نداشتید از مجموعه کاراکترهای فونت حذفش کنید تا حجم برنامه بیاد پایین و حافظه کمتری از میکرو اشغال کنه، و هم بتونید از فونت های بیشتری استفاده کنید.
سایت سازنده : نرم افزار ساخت فونت

دانلود نرم افزار ساخت فونت برای نمایشگر KS0108

 

آموزش ساخت فونت برای نمایشگر گرافیکی KS0108

تو آموزش بالا یه سری مقدمات رو گفتم و از یه نرم افزاری استفاده کردیم که باهاش همه جور فونتی نمی تونستیم بسازیم، ولی در فیلم آموزشی زیر یه نرم افزاری رو معرفی و استفاده میکنم که به کمکش همه جور فونتی میتونیم بسازیم - اول فیلم بالا رو ببینید و بعد این فیلم زیر رو ببینید :

21.5MB آموزش ساخت فونت برای نمایشگر KS0108 با آردوینو
0%
00:00  /  07:22

توجه : اگه کسی نتونست فونتی رو بسازه و نمایش بده و یا اگه کسی شک داره به صحت فیلم بالا^_^ ، بگه تا فیلم بگیرم، البته بدبختی موبایل خودم ندارم باس رفیقم اومد خونمون ازش بگیرم و فیلم بگیرم و براتون بزارم تو این مطلب(دیگه چیکار کنم آخه) >>>> اینا ر ومیگم که مطمئن بشید آموزش بالا ۱۰۱% عملی هستش و اگه مشکلی باشه از شما هستش و باس ببینید کجا سوتی دادید  laugh

توجه : نرم افزار (Java Runtime Environment (JRE رو هم برید از نت دانلود کنید.

دانلود نرم افزار open GLCD Font Creator

 

دانلود فونت های پیکسلی

  1. dafont
  2. 1001freefonts
  3. fonts2u
print - println - Printf
نمایش متغییر و متن، به جای آدرس سایت ما میتونید متغییرتون و یا متنتون رو قرار بدید تا نمایش داده بشه تو LCD
تابع اولی فقط متن رو نشون میده – ولی تابع دومی بعد از نمایش متن میره خط بعدی
تابع سومی هم اطلاعات رو از حافظه flash میخونه(اگه اشتباه نکنم.)
این تابع ها رو میشه به فرم های مختلفی استفاده کرد که در زیر میبینید
write
نمایش یه کاراکتر
CursorTo
این تابع برای تعیین موقعیت مکان نما هستش، مثلا میخواین یه متنی رو در مکان مد نظرتون نمایش بدید، به کمک این تابع ابتدا مکان نما رو به مکان مد نظر میبرید و بعد متن مد نظرتون رو قرار میدید.
پارامتر اول هم ستون هستش(شمارش از ۰ شروع میشه) و دومی هم سطر نمایشگر(شمارش از ۰ شروع میشه)
CursorToXY
خب بعضا ممکنه متن ما با تابع CursorTo جابجا نشه(حالا علت چیه و تابع CursorTo مخصوص چه چیزهایی هستش دقیقا اینو نمیدم ولی این تابع رو من تست کردم مشکل نداشت)
او دو تا پارامتر هم مختصات X و Y  ایی هستش که متن ما از اون مکان شروع به نمایش میکنه.
ClearScreen
پاک کردن کل صفحه نمایش(یا این طور هم میشه گفت : رنگ کردن کل صفحه نمایش)
اگه نمایشگر در مد NON_INVERTED باشه :
WHITE : کل صفحه به رنگ سفید در میاد.
BLACK : کل صفحه به رنگ سیاه در میاد.
ولی اگه نمایشگر در مد  INVERTED باشه چون همه چیز معکوس میشه لذا اگه WHITE قراربدید صفحه رو سیاه میکنه و BLACK صفحه رو سفید میکنه.
DrawCircle - FillCircle
این دو تابع برای رسم دایره هستن، اولی دایره تو خالی و دومی دایره تو پر
xCenter و yCenter : مختصات x وy  مرکز دایره.
Radius : شعاع دایره
Color : رنگ دایره رو تعیین میکنه این پارامتر، BLACK بزاری دایره سیاه رسم میشه و WHITE بزاری دایره سفید رسم میشه(نمایشگر در مد NON_INVERTED هستش)
ولی اگه نمایشگر در مد  INVERTED باشه چون همه چیز معکوس میشه لذا اگه WHITE قراربدید صفحه رو سیاه میکنه و BLACK صفحه رو سفید میکنه.
DrawEllipse - FillEllipse
این دو تابع برای رسم لوزی تو خالی و تو پر هستن.
xCenter و yCenter : مختصات x وy  مرکز لوزی
xRadius و yRadius : شعاع افقی و عمودی لوزی
Color : رنگ لوزی رو تعیین میکنه این پارامتر، BLACK بزاری لوزی سیاه رسم میشه و WHITE بزاری لوزی سفید رسم میشه(نمایشگر در مد NON_INVERTED هستش)
ولی اگه نمایشگر در مد  INVERTED باشه چون همه چیز معکوس میشه لذا اگه WHITE قراربدید صفحه رو سیاه میکنه و BLACK صفحه رو سفید میکنه.
DrawRect - FillRect
این دو تابع برای رسم ۴ ضلعی (مربع/مستطیل) تو خالی و تو پر هستن.
x و y : مختصات نقطه سمت چپ بالای ۴ ضلعی (مربع/مستطیل)
Width و height : طول و عرض ۴ ضلعی ما(مربع/مستطیل)
color:  رنگ ۴ ضلعی  رو تعیین میکنه این پارامتر، BLACK بزاری لوزی سیاه رسم میشه و WHITE بزاری لوزی سفید رسم میشه(نمایشگر در مد NON_INVERTED هستش)
ولی اگه نمایشگر در مد  INVERTED باشه چون همه چیز معکوس میشه لذا اگه WHITE قراربدید صفحه رو سیاه میکنه و BLACK صفحه رو سفید میکنه.
DrawRoundRect - FillRoundRect
این دو تابع همون دو تابع بالا هستن فقط یه امکانی بهشون اظافه شده، میشه مربع رو گردش کرد(گوشه هاش رو)
این دو تابع  برای رسم مربع تو خالی و تو پر با گوشه های قابل گرد شدن هستن
پارامترهاش که مثل تابع بالا هستش فقط یه پارامتری این دو تابع نسبت به دو تابع بالا اضافه تر دارن که در زیر توضیح میدم:
Radius : این پارامتر میزان گرد بودن گوشه های ۴ ضلعی ما رو تعیین میکند، که مقدارش از ۱ شروع میشه تا نصف طول و یا عرض یکم کمتر
InvertRect
این تابع یه ۴ ضلعی (مربع/مستطیل) رسم میکنه، و رنگ اون محوطه ای که درش قرار مییره رو معکوس میکنه، مثلا یه عکس کوچیک رو یه قسمت از نمایشگر نمایش دادم(حالا نه این که رزلولیشنش خیلی بالاس^_^) و حالا میخوام فقط همین یه عکس(همین محدوده محدود) رو رنگش رو معکوس کنم؟ چی کار میکنم؟ خب معلومه میام و از این تابع استفاده میکنیم، ادازه عکس رو میبینم چقدره و بعد به کمک این تابع یه مربع ایجاد میکنم که دقیقا روش بیوفته، و بعد این تابع رنگ اون عکس(محوطه) رو معکوس میکنه و اگه دوباره از همین تابع استفاده کنم رنگ اون قسمت به حالت اولیه درمیاد.
x و y : مختصات سمت چپ و بالای مربع
Width و height : طول و عرض ۴ ضلعی ما(مربع/مستطیل)
DrawTriangle - FillTriangle
این دو تابع برای رسم مثلث هستن، اولی تو خالی و دومی توپر
x1 و y1 : اولین راس مثلث(همون طور که میدونید مثلث ۳ تا راس داره – اگه اشتباه نکنم بهش راس میگن، همون ۳ نقطه زاویه دار مثلث یا هر چی که اسمش رو بزارین)
x2 و y2 : دومین راس مثلث
x3 و y3 : سومین راس مثلث
Color : اینم صد دفه دربالا برای شونصد تا تابع توضیحش دادم، اینجا دیگه توضیح نمیدم، چون حسش نیست، کسی مشکلی داره؟ ^_^
DrawLine
رسم یه خط، با داشتن مختصات دو راس خط
x1 و y1 : مختصات راس اول خط(نمیدونم ولی فک کنم راس اشتباه باشه، حالا شما گیر ندید دیگه ^_^)
x2 و y2 : مختصات راس دوم خط
Color : به توابع بالا مراجعه کنید.
DrawVLine - DrawHLine
این دو تابع برای رسم خطوط افقی(تابع دومی) و عمودی(تابع اولی) هستن
که باید در این حالت مختصات راس اول خط رو به تابع بدیم و بعد طول(عرض) خط رو تعیین کنیم.
تابع اولی : مختصات راس اول خط رو به تابع میدیم(پارامترهای xوy) و بعد ارتفاع خط رو به کمک پارامتر height تعیین میکنیم و بعد رنگ این خط رو به کمک پارامتر color تعیین میکنیم.
تابع دومی : با پارامترهای xوy راس اول خط رو تعیین کرده و با پارامتر width طول خط رو تعیین میکنیم و با color هم رنگ رو تعیین میکنیم.
DrawHBarGraph
این تابع برا ایجاد یه نمودار پر شونده عمودی هستش(یه نمودار افقی که میتونی مثلا یه چیزی رو بر حسب درصد از 0 تا 100 نشون بده)
Xوy : مختصات شروع نمایش این نمودار
Width و height : طول عرض این نمودار
Border : میزان حاشه های دور این نمودار
Minval و maxval : مقدار مینیمم و ماکزیمم این نمودار
Curval : مقاداری که باید در این نمودار نمایش داده شود.(مثلا ۲۰% رو تو نودار عمودی نشون میدیم.)
DrawVBarGraph
این تابع هم مثل تابع بالا هستش، فقط با این تفاوت که این تابع افقی نشون میده نمودار رو و تابع بالا عمودی نشون میده
SetDisplayMode
معکوس کردن رنگ کل صفحه، برا پارامتر این تابع مقادیر زیر رو یتونید قرار بدید :
NON_INVERTED : حالت عادی، رنگ سیاه سیاه و سفید سفید میمونه.
INVERTED : رنگ ها معکوس میشه؛ سیاه سفید میشه و سفید سیاه.
متغییرها
یه سری متغییر عمومی تو این کتابخونه هستش که میتونه در نوشتن برنامه به شما کمک کنه، در زیر به ترتیب توضیحشون میدم.
Width    : طول نمایشگر رو نشون میده = ۱۲۸
Height   : عرض نمایشگر رو نشون میده = ۶۴
Left       : مختصات سمت چپ ترین پیکسل نمایشگر رو نشون میده = ۰
Right     : مختصات سمت راست ترین پیکسل نمایشگر رو نشون میده = ۱۲۷
Top       : مختصات بالاترین پیکسل نمایشگر رو نشون میده = ۰
Bottom  : مختصات پایین ترین پیکسل نمایشگر رو نشون میده = ۶۳
CenterX : مختصات x مرکز صفحه نمایش رو میده = ۶۴
CenterY : مختصات y مرکز صفحه نمایش رو میده = ۳۲
Untitled-1
DrawString
این دو تابع برای نمایش متن هستن، دومیش زیاد مهم نیست و توضیحش نمیدم زیاد، چون بر کلاس String استفاده میکنه که تو آردوینو تعریف شده، ما هم زیاد کاری بهش نداریم؛ بریم سراغ توضیح تابع اولی :
به جای str متنمون رو قرار میدیم.
Hpos و vpos : این دو پارامتر مختصات xوy شروع نمایش متن هستن، به جای دادن مقدار عددی طول و عرض میتونید از متغییر جدید تعریف شده gTextfmt_t استفاده کنیم برای ترتمیزی کار، این نوع متغییر جدید رو در زیر براتون توضیح میدم :

enum gTextfmt_t

gTextfmt_left

سمت چپ صفحه نمایش

gTextfmt_right

سمت راست صفحه نمایش

gTextfmt_top

بالای صفحه نمایش

gTextfmt_bottom

پایین صفحه نمایش

gTextfmt_center

وسط صفحه نمایش

gTextfmt_current

موقعیتی که قبلا فعال بوده

Erase : این پارامتر تعیین میکنه که متن در چه وضعتی نمایش داده شود، اتدا کل اون خط پاک شود و بعد متن ما داخلش نمایش داده شود، فقط همون محدوده ای که متن نمایش قراره داده بشه پاک بشه و... که کلا ۴ حالا داره که در زیر مشاهده میکنید.

خب به کمک متغییر جدید gTextfmt_t هم میتونید دیگه از مقدار دهی عددی برای تعیین موقعیت متنمون استفاده نکنیم
مثال زیر رو ببینید که در تمام ۹ موقعیت ممکمن متنمون رو نمایش دادیم :

On - Off

این دو تابع برای نمایش/عدم نمایش دیتا در نمایشگر هستن.
اگه از تابع off استفاده کنید هر چی که تو نمایشگر باشه غیب میشه(پاک نمیشه، غیب میشه فقط) و بعدش اگه از تابع on استفاده کنیم دیتاهای توی نمایشگر دوباره ظاهر میشه.(حالا این دو تابع کجا میتونه مفید باشه من چیزی به ذهنم نمیرسه – اگه کسی میدونه بگه)

SetPixels

این تابع یه ۴ ضلعی(مربع/مستطیل) رسم میکنه که میتونیم رنگش رو سفید و یا سیاه در نظر بگیریم – برا سیاه/سفید کرده یه محوطه میتونه این تابع مناسب باشه، دقیقا میشه گفت همون کار تابع "رسم ۴ ضلعی توپر" رو انجام میده این تابع
Xوy : مختصات نقطه سمت چپ و بالای ۴ ضلعی
x1وy1 : مختصات نقطه سمت راست بالای ۴ ضلعی
Color : رنگ داخل این ۴ ضلعی

SetDot

رسم یه پیکسل سیاه/سفید
به کمک این تابع میتونید یه نقطه/پیکسل به رنگ سیاه/سفید نمایش بدید تو نمایشگر.
xوy : مختصات نمایش این نقطه/پیکسل
Color  : تعیین رنگ این پیکسل

CharWidth

این تابع تعداد پیکسل(طول) هر کاراکتر فونت جاری رو به شما نشون میده.
مثلا یه متنی با فونت۱ نمایش دادید، طول یه کاراکتر در فونت ۱ برابر ۸ پیکسل و مثلا برا فونت ۳ برابر ۵ پیکسل و برا فونت ۳ برابر ۶ پیکسل هستش.
کلا طول هر کاراکتر(اندازه هر کاراکتر بگم به نظرم بهتر باشه) بستگی به فونتش داره.
این مورد برا جاهایی که نیاز دارید کارتون دقیق باشه نیاز دارید مثلا یه متن نمایش بدید و مختصات ته متن رو داشته باشید تا یه کاری انجام بدید، این تابع میتونه مفید باشه.

CharHeight

این تابع همانند تابع بالا هستش فقط با این تفاوت که تابع قبلی طول یه کاراکتر رو نشون میداد ولی این تابع عرض(ارتفاع) کاراکتر رو نشون میده.

StringWidth

این دو تابع هم مثل دو تابع بالا هستن، تابع دومی رو کاری نداریم چون مربوطه به کتابخونه String در آردوینو.
توضیح تابع اولی : یه رشته ای رو به عنوان پارامتر به این تابع میدید و ان تابع تعداد پیکسل هایی دین متن شما رو بهتون برمیگردونه، که بسته به این که متن شما با چه فونتی داره نمایش داده میشه و خود متن چند تا کاراکتر هستش این تابع اعداد متفاوتی رو نشون میده
توجه : برا پیدا کردن ارتفاع(عرض) این متن هم میتونید از تابع CharHeight استفاده کنید که یه کاراکتر رو بهش میدید و اندازه ارتفاعش رو بهتون میده برا فونتی که روی متن اعمال شده است.

DefineArea

خب این ۴ تا تابع بهترین تابع های این برنامه هستن به نظرم، فوق العاده میتونن کاربری باشن تو پروژه های سنگین برا ساده کردن کار، کارشون اینه که میان محدوده هایی تعریف میکنن، برا اون محدوده فونت تعیین میکنن، میتونیم تعیین کنیم متن یا کلا دیتای ما در کدوم محدوده نمایش داده بشه، دیتای ما از اون محدوده بیرون نمیزنه، یعنی اگه تو اون محدوده دیتا زیاد بریزید از اون محدوده خارج نمیشه و فقط تو همون محدوده نمایش داده میشه.
توجه : این محدوده ای که ما تعریف میکنیم به صورت یه ۴ ضلعی هستش.
توضیح تابع اولی :
x1وy1 : مختصات نقطه سمت چپ بالای ۴ ضلعی
X2وy2 : مختصات نقطه کوشه سمت راست پایین ۴ ضلعی
Mode : این پارامتر هم برا تعیین اطلاعاتی از نحوه نمایش دیتا در این محدوده هستش که در زیر توضیحش میدم.

خب یه نوع متغییر تعریف شده وجود دارد به نام gTextMode که در هر ۴ تابع بالا از همین نوع متغییر استفاده شده، در زیر تمام مقادیری که این متغییر میتونه بگیره رو توضیح میدم؛ هر چند که از اسمشون هم معلومه کارشون.
همون طور که میدونید اگه یه محدوده ی محدودی رو داشته باشیم یه سری متن مثلا میتونیم داخلش نمایش بدیم، این کار رو تا زمانی میتونیم انجام بدیم که تو اون محدوده جا برا نمایش دیتای جدید وجود داره، حالا یه سوال؟ اگه اون محدوده پر از دیتا شد و دیگه جای خالی برا نمایش دیتای جدید نبود باید چیکار کنیم؟ مثلا بیایم تو اون محدوده یه قسمتی رو پاک کنیم و دیتایمون رو نمایش بدیم؟ یا مثلا بیایم و دیتامون رو روی دیتاهای قبلیمون بنویسیم یا...؟ کدوم روش؟ خب جواب معلومه هر کدوم رو دوست دارید ^_^ یه روش دیگه هم برا حل این مشکل وجود داره، که در ۴ تابع بالا این موشکل در نظر گرفته شده که در زیر توضیح میدم :
SCROLL_UP : اگه از این مقدار برای پارامتر آخر هر ۴ تابع بالا استفاده کنید، وقتی جایی برای نمایش دیتای جدید نیستش، تمام دیتاها یه خط به بالا ششیفت داده میشوند و خط اول دیتاش پاک میشه و تمام خطوط یه واحط میان بالا و دیتا در خط آخر که خالی شده نمایش داده میشود.
SCROLL_DOWN : خب این مورد عکس مقدار بالا هستش، در این حالت در صورت کمبود فضا، خط آخر حذف شده، تمام خطوط  یه واحد به سمت پایین شیفت داده میشوند و بالاترین خط که الان خالی هستش، دیتای جدید در اون مکان نمایش داده میشود.
خب بریم سراغ توضیح توابع دیگه :
توضیح تابع دومی :
xوy : مختصات نقطه سمت چپ بالای ۴ ضلعی
Columns و rows : تعداد ستون و ردیف این ۴ ضلعی ما
Font : تعیین فونت این ناحیه تعریف شده، اسم یکی از فونتهای موجود رو قرار بدید.
Mode : در بالا توضیح دادمش
توضیح تابع سومی :
Font : دربالا توضیح دادمش.
Mode : در بالا توضیح دادمش.
Selection : به جای این پارامتر باید از یکی از مقادیر زیر استفاده کنید، که این پارامتر برا تعیین موقعیت ناحیه جدید ما هستش.

خب توضیحات متغییر جدید predefinedArea رو در همون بالا دادم لذا دیگه توضیحش نمیدم.

توضیح تابع چهارمی :
این تابع همانند تابع شماره ۳ هستش فقط با این تفاوت که قسمت تعیین فونت رو نداره، بقیه پارامترها رو در بالا توضیح دادم.
توجه : اون پارامترهایی که مقدار اولیه دارن، رو هم اگه مقدار بهشون ندید زیاد مهم نیست، اینو دیگه همتون میدونم که میدونید که نمیدونید که میدونید ^_^ >>> گفتم که گفته باشم فقط ^_^

DrawBitmap - DrawBitmapXBM

تابع اولی : 
این تابع برای نمایش عکس استفاده میشه (یه نمایش یه آرایه)
Bitmap : در این پارامتر نام عکسمون رو قرار میدیم، که باید به صورت آرایه ای با فرمت
const uint8_t PROGMEMGLCD تعریف شود.
xوy : این دو پارامتر مختصات فقطه سمت چپ بالای عکس هستن.
Color : در این قسمت اگه BLACK قرار بدید، عکس ما همون طور که تو نرم افزار "نقاشی" رسمش کردیم نمایش داده میشه.
و اگه WHITE قرار بدیم، رنگ ها معکوس میشه.

تابع دومی : 
این تابع هم برای نمایش عکس هستش که در بالا میبینید ولی این که  چطور برای این تابع ما میتونیم عکس تولید کنیم و اونم به کمک چه نرم افزاری خودم هم نمیدونم فعلا

در فیلم زیر درباره نحوه ساخت عکس و گرفتن کد عکس و ... رو توضیح دادم که میتونید ببینید :

11.4MB آموزش نمایش عکس در lcd گرافیکی ks0108 با آردوینو
0%
00:00  /  02:07

 

دانلود نرم افزار LCD Assistant

SetFontColor

به کمک این تابع میشه رنگ متن رو تغییر داد، مثلا میخواین یه متن نمایش بدید که خود متن سیاه باشه و رنگ پس زمینه سفید، میاید و مقدار BLACK به تابع میدید و اگه بخواین رنگ متن سفید باشه و رنگ پس زمینه سیاه باید مقدار WHITE رو به تابع میدیم و بعد باید متنمون رو نمایش بدیم.

ClearArea

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

SetAreaMode

برای تنظیم مد نمایش اطلاعات محیط انتخاب شده هستش هستش.

توابعی که توضیح ندادم

توضیح توابع بالا هم بمونه برا بعد دیگه حال ندارم توضیح بدم بیش از این.

خب این مطلب هم تموم شد، امیدوارم براتون مفید بوده باشه، اگه بود دعا کنید ما رو، بیمار هارو، مسئولین خدمت گزار رو، رهبر انقلاب و علمای اسلام رو (هزینه ی مطلب هستش این کار ^_^)

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
بقیه جلسات : آموزش ks0108 با arduino
ارسال دیدگاه
70
نظرات این مطلب بسته شده است.
  1. Alireza

    مهمان

    Alireza

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

  2. وحید

    مهمان

    وحید

    با عرض سلام و خسته نباشید
    بنده در راه اندازی نمایشگر گرافیکی به مشکل بر خوردم.لطفا در صورت امکان راهنمایی کنید
    نمایشگر گرافیکی ۱۹۲×۶۴ با درایور ks0108
    مشکل اینه که هر چیزی که از اردوینو به lcd ارسال میشه در سه مکان نمایش داده میشه انگار که هر کدوم از چیپ های lcd به صورت جدا اطلاعات رو نمایش میده

  3. محمد

    مهمان

    محمد

    سلام
    خیلی آموزش خوب و کاملی بود. خیلی کمک کرد .ممنون.

  4. حسین11

    مهمان

    حسین11

    سلام .
    من با esp32 کار میکنم و موقع کامپایل کد این ارور را به من میده …..
    exit status 1
    no matching function for call to ‘min(int, const uint8_t&)’

  5. A.M_BJ

    مهمان

    A.M_BJ

    وقتی به ۴۵ میرسه دیگه ادامه پیدا نمی کنه و ۵و۶ قاطی میشه

  6. A.M_BJ

    مهمان

    A.M_BJ

    اصلا فرمت مثال هاش فرمت ARDUINO نبود شناسایی اصلا نمی کنه اونی که از اینجا دانلود کردم از یه سایته دیگه چند ورژن بالا ترشا گرفتم بازم کار نکرد

  7. A.M_BJ

    مهمان

    A.M_BJ

    برای نمایش باید منبع قطع میکردم دوباره وصل میکردم اون مشکل رفع شد ولی یه مشکل دیگه این لینکا ببین
    http://uupload.ir/view/k4g_۲۰۱۹۰۸۰۳_۱۷۱۲۰۶.mp4/
    وقتی به یه قسمت میرسه تصویر خراب میشه

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      “وقتی به یه قسمت میرسه”

      یعنی چی؟ متوجه نشدم – فیلم هم دیدم…

  8. A.M_BJ

    مهمان

    A.M_BJ

    سلام من جواب گرفتم
    http://uupload.ir/files/xtjr_img_20190803_154353_383.jpg
    ولی پایه ریستا زدم به مثبت رفت دیگه چیزی نمایش نمیده مشکل چیه

    مشاهده پاسخ ها (2)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام مجدد – مشکل قبلی از کجا بود؟
      خب ولتاژ بالای 5 ولت ( تقریبا، برا دقیقش به دیتاشیتش نمایشگر مراجعه کن ) به نمایشگر ندی، نباید چیزیش بشه.
      با اون پتاسومتره و مدارش ور برو.

      • A.M_BJ

        مهمان

        A.M_BJ

        مشکل کتابخانه که شما دادین اینه
        http://uupload.ir/view/0f8j_2019_08_03_17_30_17_1600x900.wmv/
        خودم با کتابخانه U8g2اجرا کردم

  9. A.M_BJ

    مهمان

    A.M_BJ

    سلام اقا مهدی این کتابخانه توی برنامه ARDUINO شناسایی نمیشه مشکل از چیه

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام – فایل کتابخونه رو در مسیر کتابخونه های آردوینو کپی کردی؟ خطای چی میده؟

  10. Alirezark

    مهمان

    Alirezark

    سلام،یه متنی که داخل یه متغیر String ذخیره شده رو چجوری میتونم روی ال سی دی نمایش بدم؟

    مشاهده پاسخ ها (1)
    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-در مطلب بالا، قسمت “print – println – Printf” رو بخون –

  11. 95 mosfet

    مهمان

    95 mosfet

    سلام دوستان بجای تابع void SelectFont();
    از تابع (GLCD.SelectFont(System5x استفاده کنید اصلا دردسر نداره داخل پرانتز نوع فونت رو مشخص میکنید تمام wink

  12. سیداحمد موسوی

    مهمان

    سیداحمد موسوی

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام.تو جلسه 2 گفتم.

  13. علی

    مهمان

    علی

    اردوینو رو چه جوری به Ks0108 تو پروتئوس وصل کنم pin هاش چیه

  14. امید

    مهمان

    امید

    سلام برادر
    ممنون از طراحی سایت بسیار خوب و مطالب مفیدی که ارائه کردین
    من می‌خوام با یه دوربین تصویر (فیلم) رو به صورت در لحظه (یا همون Real Time) روی یه LCD نمایش بدم و علاوه بر اون یه سری پارامتر هم (مثل لوگو) در حد محدود به تصویر اضافه کنم.
    آیا میشه تصویر رو مستقیما بفرستم به LCD و این وسط اون مواردی رو میخوام رو هم به صورت موازی روی تصویر یه جوری نمایش بدم؟
    اصولا برای چنین کاری حداقل چردازنده ای که جواب کارمو بده چی هست؟ با آردوینو یا رزپری میشه به صورت در لحظه تصویر رو گرفت (با مثلا ۳۰ فریم بر ثانیه) یا نه باید برم سراغ FPGA؟
    لازم به ذکره که رزولوشن تصویر زیاد بالا نیست و در حد زیر یک مگاپیکسل هست فعلا
    با تشکر

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-کار نکردم در این زمینه – با رزبری که میشه ولی با آردوینو رو نمیدونم – با آرمهای فرکانس بالا هم میتونی.

  15. حامد

    مهمان

    حامد

    سلام به سوال داشتم وقتی lcd گرافیکی پین RST رو به مثبت وصل می کنم اتصال کوتاه می شه یعنی رگولاتور آردوینو خیلی داغ می شه و نور ال سی دی هم کم می شه به نظرتان ال سی دی سوخته؟ هر کاری هم کردم چیزی نشون نداد

  16. حامد

    مهمان

    حامد

    سلام به سوال داشتم وقتی lcd گرافیکی پین RST رو به مثبت وصل می کنم اتصال کوتاه می شه یعنی رگولاتور آردوینو خیلی داغ می شه و نور ال سی دی هم کم می شه به نظرتان ال سی دی سوخته؟ هر کاری هم کردم چیزی نشدن نداد

  17. نیما

    مهمان

    نیما

    آقا مهدی من میخوام صفحه رو به دو ناحیه تقسیم کنم در واقع به دو تا مستطیل . مستطیل بالا باید طولش 128و عرضش 47 باشه و توش یک عکس نشون بدم و یک مستطیل پایین که طولش 128 باشه و عرض 16 . از این دو تا دستور هم استفاده میکنم ولی اصلا اونجایی که میخوام در نمیاد
    textArea1.DefineArea(GLCD.Left,GLCD.Top,GLCD.Right,47, Callibri15, SCROLL_UP);
    textArea3.DefineArea(GLCD.Left,GLCD.Bottom,GLCD.Right,16,Callibri15, SCROLL_UP);

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      چیزی خاطرم نیست از این مطلب – هر چی هستش تو مطلب گفتم.

  18. نیما

    مهمان

    نیما

    آقا این تابع drawstring نمیتونه یک متغیر رشته ای رو چاپ کنه؟اون تابع پرینت متغیر رو می تونه چاپ کنه ولی هیج تنظیمی نمیشه روش داد مثلا کجای صفحه چاپ کنه و …

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تو مطلب گفتم :

      Hpos و vpos : این دو پارامتر مختصات xوy شروع نمایش متن هستن، به جای دادن مقدار عددی طول و عرض میتونید از متغییر جدید تعریف شده gTextfmt_t استفاده کنیم برای ترتمیزی کار، این نوع متغییر جدید رو در زیر براتون توضیح میدم :

      عدد هم میتونی بدی – از اون ماکرو ها هم میتونی استفاده کنی

  19. نیما

    مهمان

    نیما

    ما که هر جا نگاه کردیم شما جایی نگفته بودی یک جا فقط گفته بودی بهتره بذارین در صورتی که اگر نذارین اصلا کار نمیکنه و به مشکل من دچار میشه من منظورم این بود که از حالت مستحب درش بیارین و صراحتا بگین واجب هست که این کارو بکنن . حالا بگذریم
    نکته دیگه این لینک رو نگاه کنین
    http://forum.arduino.ir/4/14/318.html
    آخر پست اول یک بنده خدایی اومده برای avr فونت رو درست کرده و لینک دانلودش رو هم گذاشته حالا از اون چطوری میشه توی آردوینو استفاده کرد

    مشاهده پاسخ ها (3)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      فونت پیش فرض خود کتاب خونه رو ببین-طبق همون ، اون هر کاری کرده بود تو هم همون کار رو بکن.

      • نیما

        مهمان

        نیما

        ای بابا چرا قطره قطره جواب میدین
        اینقدر همش میگین نظر بذارین و سوالاتونو بپرسین و … وقتی هم که می پرسیم تیکه تیکه و قطره قطره جواب میدین
        الان جواب خودتون رو بخونین واقعا کسی از خوندن این جواب چیزی دستگیرش میشه ؟!؟؟!؟!
        فونت پیش فرض کدوم کتابخونه رو میگین؟کتابخونه خود openglcd یا کتابخونه ای که این بنده خدا نوشته ؟؟؟؟ من اومدم اطلاعات آرایه این فونت فارسی که این بنده خدا نوشته رو توی یکی از فونت های پیش فرض openglcd مثلا فونت cooper21 کپی کردم ولی بازم فارسی رو درست نشون نداد

        • مهدی دمرچیلو

          نویسنده این مطلب

          مهدی دمرچیلو

          ببخشید من معضرت میخوام – تو Eca مطرح کنید.

  20. نیما

    مهمان

    نیما

    آقا مهدی بالاخره بعد از حدود 5-6 ساعت مشکل رو پیدا کردم اگر لطف کنید این دو تا نکته رو یک جا توی پست اصلی آموزش قرار بدید ممنون میشم که بقیه بچه ها اینقدر مثل من وقتشون گرفته نشه
    اول از همه توی اینترنت و توی سایت های مختلف نحوه اتصال پین ها بر اساس نوع پنل هست که چندین حالت داره و من همشون رو امتحان کردم ولی هیچکدومش درست نیست نمونه اون اتصالات پین ها رو از سایت های معتبر توی پست های قبلی بهتون نشون دادم ولی هیچکدوم کار نمی کنه و نمونه درست همونی هست که شما توی پست گذاشتین و خود سایت وین استار که تولید کننده این ال سی دی هست هم توی دیتاشیتش همین رو گفته .
    نکته دوم اگر کسی پتانسیومتر نداره میتونه پین 3 و 18 رو با یک مقاومت 10 کیلو به هم وصل کنه اینطوری تصویر با کیفیت خیلی خوبی نمایش داده میشه در غیر اینصورت اگر اون پین 3 و 18 رو به امان خدا رها کنه ال سی دی روشن هست ولی هیچی روش نشون داده نمیشه

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      good
      فک نکنم نیازی باشه به مطلب اضافه بشه چون شما طبق شماتیک من عمل نکردی و جواب نگرفتی – در غیر این صورت اگه بود تو مطلب پیوست میکردم. pardon

  21. نیما

    مهمان

    نیما

    الان این نحوه های مختلف اتصال پینها جریانش چیه
    اون داستان پنل ها که توی پست قبلیم گفتم و لینک دادم
    اینو نگاه کنید سایت خود کتابخونه openglce اینو گفته اوایل صفحه رو ببیند جدول رو
    https://www.pslib.cz/david.kadanik/MIT/openGLCD-v1.0rc2-14-ga8b9f57/openGLCD/doc/html/page_ks0108_family.html
    اینم سایت خود آردوینو که حالت های مختلف پینها رو بسته به مدل پنل گفته وسطهای صفحه رو نگاه کنید جدول رو
    http://playground.arduino.cc/Code/GLCDks0108

    مشاهده پاسخ ها (1)
    • محمد علی احمدی

      مهمان

      محمد علی احمدی

      اردینو میشه ایمیل یا شماره تماس بدین
      سلام و عرض ادب ..من چنتا سوال داشتم آقا نیما در مورد راه اندازی ال سی دی گرافیکی با

  22. نیما

    مهمان

    نیما

    الان طبق پی دی اف نحوه اتصال پینها خیلی با هم فرق میکنه من طبق پی دی اف و اون جدول اتصالات مربوط به پنل A رو وصل کردم به آردینو ولی مشکل داره چون چند ثانیه بعد از وصل کردن آردینو به سیستم آردینو سریع خاموش میشه . دیگه نمیدونم چی کار کنم .
    پی دی اف رو نگاه کردین من طبق چیزی که شما گفتین پین ها رو وصل کردم اونطوری شد طبق این پی دی اف وصل کردم اونطوری شد. یعنی واقعا مشکل از اون نبود پتانسیومتر هست؟؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      کار پتاسیومتر ور که بهت گفتم

  23. نیما

    مهمان

    نیما

    حتما باید وصل باشه چون ندارم الان ضمن اینکه مثکه این 108 سه تا پنل داره A B C و هر کدوم نحوه اتصالاتش فرق میکنه . این سایت سازنده خود ماژول که شرکت وین استار هست
    http://winstar.com.tw/product_show.php?pd_num=WG
    اینم یک PDF که نحوه سیم بندی هر پنل رو توضیح داده و با هم فرق میکنن
    http://p30up.ir/uploads/f297881219.rar

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      برا نور اطلاعات هستش تا جایی که یادمه
      در ضمن فایل رو تو پیکو فایل آپلود کن تا پاک نشه بعد یه مدت – بعد لینکش رو بده

  24. نیما

    مهمان

    نیما

    آقا مهدی من این ks108 رو به UNO وصل کردم برنامه شما رو هم ریختم روش ال سی دی هم روشن میشه ولی هیچی نشون نمیده چندین پایه ها رو چک کردم درست هست ولی نمیدونم چرا هیچی روی صفحه نشون نمیده . فقط بگم که پایه های 3 و 18 رو به هیچی وصل نکردم

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      این دو رو هم وصل کن – بعد با پتاسیمتر یکم ور بری اطلاعات تو نمایشگر ظاهر میشه.

  25. نیما

    مهمان

    نیما

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      گفتم که.
      ربطی نداره.
      ولی باز تست کردنش ظرر نداره
      =======
      میتونی این کارو بکنی – نرم افزار هم برا این کار هستش – سرچ کن – نرم افزار طراحی فونت برا LCD – فارسی گشتی نبود – انگلیسی سرچ کن

  26. نیما

    مهمان

    نیما

    نرم افزار glcd fone creator رو میگم این قسمت
    http://p30up.ir/uploads/f5241761.png
    یعنی حتی یک فونت هم نیست که الان بشه ازش استفاده کرد و نخواد حرف حرف حروف رو طراحی کرد؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      فک نکنم ربظی به نمایشگر داشته باشه – تست کن

  27. نیما

    مهمان

    نیما

    توی این نرم افزار دومی که برای ساخت فونت معرفی کردین این فونت های فارسی معروف مثل B titr B nazanin ,… اینها رو به صورت مربع مربع نشون میده این یعنی اگر از این فونت توی پروژه استفاده کنیم حروف فارسی همینطوری مربع مربع نشون داده میشن؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      تو این مطلب نرم افزاری نمیبینم که تازه معرفیش هم کرده باشم laugh
      خب نمایشگر یه ستونی از مربع های ریز هستش دیگه – 64 تا ردیف در 128 تا ستون که میشه 64*128 = 8192 تا مربع ریز – فک کنم درست گفتم
      مثلا کلمه “ل” رو یه خونه 8در8 مربع ریز در نظر بگیر – کدوم خونه ها باید روشن بشه تا حرف”ل” نمایش داده بشه و ساخته بشه – خب به این میگن تعریف حرف”ل” حرف حرف تعریف کنی …، یه نرم افزار هم برا این کار باید باشه قبلا دیدم!!!

  28. نیما

    مهمان

    نیما

    آقا مهدی توی این ال سی دی 108 نمیشه عکس رنگی نشون داد ؟ باید حتما از اون نوع tft بخرم؟اگر از اون نوع tft بخرم علاوه بر عکس متن فارسی هم میشه نمایش داد؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      نه نمیشه – بله.
      متن فارسی اگه تابعش رو پیدا کنی آره وگرنه خودت باید دست بکار بشی یا متن فارسی رو به صورت عکس نشون بده.

  29. نیما

    مهمان

    نیما

    نحوه اتصال پین ها رو هم لطفا بگین

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      جلسه 2 رو ببین

  30. نیما

    مهمان

    نیما

    از این ال سی دی میشه برای UNO هم استفاده کرد؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      جلسه 2 رو ببین laugh

  31. shahnbaz

    مهمان

    shahnbaz

    راستی از برد اردوینو نانو استفاده می کنم

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      نمیدونم

  32. shahnbaz

    مهمان

    shahnbaz

    سلام
    موقع کامپایل کد خطای زیر میده
    In file included from C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/include/glcd_io.h:53:0,
    from C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/include/glcd_Device.h:36,
    from C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/include/gText.h:36,
    from C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/include/glcd.h:41,
    from C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/openGLCD.h:5,
    from H:\aaBOL\abol2\DigitalReadSerial\DigitalReadSerial.ino:8:
    C:\Users\Nasr\Documents\Arduino\libraries\openGLCD-v1.0rc2/include/avrio.h:1615:0: warning: "PIN_A0" redefined
    #define PIN_A0 AVRIO_PIN(AVRIO_PORTA, 0)
    ^
    In file included from C:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs/pins_arduino.h:23:0,
    from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:249,
    from sketch\DigitalReadSerial.ino.cpp:1:
    C:\Program Files\Arduino\hardware\arduino\avr\variants\eightanaloginputs/../standard/pins_arduino.h:56:0: note: this is the location of the previous definition
    #define PIN_A0 (14)

    از پین A0 تا پین A7 این خطا رو میده….مشکل کجاست؟

  33. mehdi

    مهمان

    mehdi

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      فایل پسورد داره – فایل رو از حالت فشرده خارج کنید – و اون فایل خارج شده رو اد کنید

  34. عباس

    مهمان

    عباس

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      خطا چیه؟ پروژه رو کامپیایل هم میکنید ارور میده یا فقط تو بحث آپلود ارور میده؟

  35. طاهر

    مهمان

    طاهر

    سلام ممنون از مطالب عالی و فوق العاده
    فقط یه سوال
    چه جوری میشه تو همین lcd فارسی نوشت
    منظورم فارسی رو تایپ کرد نه این که با عکس نشون داد

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-خب طراحی فونت فارسی – ببین میتونی فونت ها رو ویرایش کنی – چون این فونت ها هم یه شکل هستن که طراحی شدن و به ازای هر کاراکتر برنامه میاد و اون کد/شکل رو نمایش میده.

  36. طاهر

    مهمان

    طاهر

    سلام
    ممنون از مطالب عالی شما و سایت عالی تر شما
    فقط یه سوال
    چه جوری میشه تو همین ال سی دی فارسی نوشت؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      طراحی فونت فارسی/عکس

  37. فرهاد

    مهمان

    فرهاد

    سلام خیلی خیلی ممنون بابات مطالب مفیدتون بعد یک روز ور رفتن تونستم با برد مگا 2560 راه بندازم

  38. حسین

    مهمان

    حسین

    اول دمت گرم که پای ولایت هستی و بع دست درد نکنه که این مطلب را گذاشتی.(حسین سرباز ولایت)

  39. حمید

    مهمان

    حمید

    سلام. نمایشگر ks0108 را از چه فروشگاهی می تونم تهیه کنم؟؟

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      eca-roboeq و…

  40. علی

    مهمان

    علی

    هولی …
    خعلی عاولی بوت…
    بسیار به این آموزش نیاز مند بودم
    السپاسات

  41. حمید

    مهمان

    حمید

    جالبه.. فدای شما…