نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

پروژه و آموزش راه اندازی lcd tft 2.4 inch با آردوینو

به نام خدا : تو این مطلب از سری مطال پروژه آردوینو ، انشاالله قراره به آموزش نمایشگر رنگی با آردوینو بپردازیم، نمایشگر ما هسته مرکزیش ii9340 هستش و 2.4 اینچ هستش(320×240) و یه صفحه نمایش رنگی هستش که صفحه تاچ هم داره(البته اکثر این نمایشگرهایی که من دیدم صفحه تاچ هم داشتن حالا ممکنه بعضی نداشته باشن و وجود صفحه تاچ الزامی نیستش) این برد هایی که من دیدم و من خودم دارم یه رم ریدر هم دارن که میتونید ازش استفاده کنید برای نمایش اطلاعاتی که نمیشه تو میکرو قرارش داد مثل عکس(مثلا من 4-5 میگ عکس ریختم تو رم و تو نمایشگر نشون میدم، پروژش رو در ته مطلب قرار میدم)، خب معلومه این همه دیتا رو نمیشه تو میکرو ریخت لذا اینجا میتونه مفید باشه، البته موضوعی که هستش اینه که ما چرا از این نمایشگرها استفاده میکنیم؟ موضوعی که خیلی ها بهش توجه نمیکنن و فقط میگن این نمایشگر بدرد این میکرو نمیخوره چون سرعت این میکرو پایینه و از این جور حرفا، در حالی که فک میکنن فقط باید تو این نمایشگر فیلم(هندی!) نشون بدن و کاربرد صفحه نمایش رنگی فقط فقط همینه، لذا چون میخوایم فیلم نشون بدیم لذا! میکرو های فرکانس پایین جواب کار ما رو نمیدن لذا!!! باس بریم سمت میکرو های فرکانس بالا، از این جور حرفا من کم نشنیدم، در حالی که ما از نمایشگربرای مانیتورینگ پروژه هامون استفاده میکنیم و در قسمتی از صفحه نمایش قراره دیتا نشون بدیم و نه کل صفحه نمایش و نه شونصد تا عکس گنده!!! >>> خب بگذریم از بحث خارج شدیم(هنوز بحث نمایشگر رو شروع نکردم که بخوام ازش خارج بشم یا نشم laugh ) >>> خب شوخلوق بسته بریم سر اصل مطلب >>> پروژه و آموزش راه اندازی lcd tft 2.4 inch با آردوینو
پروژه و آموزش راه اندازی lcd tft 2.4 inch با آردوینو

پروژه و آموزش راه اندازی lcd tft 2.4 inch با آردوینو




 

خرید نمایشگر لمسی 2.4 اینچ آردوینو UNO و Mega2560

این نمایشگر رو میتونید از لینک زیر خرید کنید : خرید نمایشگر لمسی آردوینو
نمایشگر لمسی 2.4 اینچ آردوینو UNO و Mega2560
خب همون طور که در عکس بالا میبینید این نمایشگر روی برد آردوینو یا مگا قرار میگیره خیلی قشنگ.
نمایشگر لمسی آردوینوعکس بالا هم نمایی از پشت نمایشگر هستش که میبینید یه رم ریدر داره که میتونه خیلی خیلی مفید باشه.
ما عکس هامون رو تو رم میریزیم و رم رو داخل این رم ریدر قرار میدیم و …
صفحه تاچ آردوینو
این شیلد نمایشگر رنگی 2.4 اینچ علاوه بر داشتن رم ریدر، یه صفحه تاچ هم داره که در بالا مشاهده میکنید.
اندازه این شیلد رو هم در زیر مشاهده میکنید :
پروژه آردوینو

توضیح توابع کتابخانه lcd tft 2.4 inch با آردوینو

توجه مهم : اگه نمیخواید از رم استفاده کنید(مثلا نمیخواین عکسی چیزی نشون بدید و این عکس رو از رم بخونید) بهتره که کتابخونه های SPI و SD رو در پروژتون استفاده نکنید تا الکی حافظه میکرو اشغال نشه.

کتابخانه و ساخت شی از کلاس کتابخانه
خطوط اول دوم کتابخونه نمایشگر ما هستن که باس در اول پروژه قرارشون بدی و خط 4 هم یه شی از کلاس موجود در کتابخونه نمایشگر ساختیم، اگه نفهمیدید زیاد مهم نیست فقط این کد خط 4 رو بعد از قرار خطوط 1و2 قرارش بدید، ولی اگه میخواین بدونید برید بحث شی گرایی و کلاس و ساخت شیئ از کلاس، استفاده از توابع کلاس در برنامه های دیگه و... و عناوین مشابه رو تو نت بسرچید مطلب دربارش میاد و بعد بخونیدش.
خب تو خط 4 ما پایه های RS-WR-CS-RD-RST رو تعیین میکنیم که به کدوم پایه ها وصل هستن، اگه خواستید میتونید تغییرد بدید و اگه دوست نداشتید پایه ها رو تغییر بدید باید خط 4 رو به صورت زیر بنویسید(پایه ها رو تغییر بدید و در عمل درست نبندید نمایشگر چیزی نشون نمیده ها...)
راه اندازی نمایشگر
خب برای راه اندازی نمایشگر بعد از فراخونی کتابخونه باید از تابع readID استفاده کنید که یه متغیر صحیح 16 بایتی به شما میده و بعد شما باید این متغییر 16 بایتی رو به تابع begin بدید تا نمایشگر آماده نمایش دیتا بشه.
رسم انواع 4 ضلعی
fillRect : رسم یه 4ظلعی توپر
drawRect : رسم یه 4ظلعی تو خالی
FillRoundRect : رسم یه 4ظلعی توپر با گوشه های گرد
DrawRoundRect : رسم یه 4 ظلعی توخالی با گوشه های گرد
X,Y : مختصات نقطه سمت چپ بالای 4 ظلعی
W,H : طول عرض 4ظلعی
COLOR : رنگ داخل 4ظلعی(برای 4 ظلعی تو پر "و"  توپر با گوشه های گرد)، رنگ دور 4ظلعی(برای 4ظلعی تو خالی "و"  4 ظلعی تو خالی با گوشه های گرد)
R : مقدار گردی گوشه های 4 ظلعی
دایره تو خالی و دایره توپر
DrawCircle : رسم دایره تو خالی
FillCircle : رسم دایره تو پر
x0, y0 : مختصات مرکز دایره
Radius : شعاع دایره
COLOR : برای DrawCircle میشه رنگ دور دایره و برای FillCircle میشه رنگ داخل دایره
مثلث تو خالی و تو پر
drawTriangle : رسم مثلث تو خالی
fillTriangle : رسم مثلث تو پر
x0, y0 : راس اول مثلث
x1, y1 : راس دوم مثلث
X2, y2 : راس سوم مثلث
COLOR : برای drawTriangle میشه رنگ دور مثلث و برای fillTriangle  میشه رنگ داخل مثلث
رسم انواع خط
رسم انواع خط
drawFastVLine : رسم خط عمودی، x,y مختصات نقطه شروع این خط هستن و h  اندازه این خط هستش، color هم رنگ خط هستش.(رسم خط با داشتن مختصات راس اول و اندازه خط)
drawFastHLine : رسم خط افقی، پارامترهاش مثل تابع بالا هستش. (رسم خط با داشتن مختصات راس اول و اندازه خط)
drawLine : رسم خط با داشتن مختصات دو سر خط، x0,y0 مختصات راس اول خط و x1,y1 مختصات راس دوم خط هستش و color هم رنگ خط هستش.
چرخش صفحه نمایش
چرخش صفحه نمایش
0 : نمایش اطلاعات از بالا به پایین
1 : از راست به چپ
2 : از پایین به بالا
3 : از چپ به راست
توجه : تو موبایل های هوشمند اگه دیده باشید که صفحه موبایل رو میچرخونید و دیتاهای نمایش داده شده تو LCD هم میچرخه، این کار به کمک این تابع انجام میشه.
خوندن وضعیت صفحه نمایش(تابع بالا برا اعمال کردن هستش و این برا خوندن)
به کمک این تابع هم میتونیم بفهمیم الان نمایش گر در کدوم وقع نمایشی هستش(تابع بالا رو ببنید این تابع رو متوجه میشید)، مقادیری که این تابع بر میگردونه در تابع بالا(setRotation) ذکر شده.
معکوس کردن رنگهای صفحه نمایش
معکوس کردن رنگهای صفحه نمایش
i : اگه true قرار بدید هر چیزی که تو صفحه نمایش هستش و یا خواهد بود رنگش معکوس میشه؛ و اگه false قرار بدید رنگ ها به صورت عادی نمایش داده میشن و معکوس نمیشن.
تغییر رنگ صفحه نمایش
تغییر رنگ صفحه نمایش
Color : رنگ مد نظرتون رو در اینجا قرار میدید، که باید به صورت یه متغییر صحیح 16 بایتی بهش دیتا بدین و یا کدهای زیر رو در اول پروژتون قرار بدید و از اون اسم ها(black, red , blue و...) برای نمایش رنگ استفاده کنید.(بهترین کار همینه)
تغییر مختصات مکان نما
تنظیم موقعیت مکان نما، مثلا برای نمایش متن در یه موقعیت خاص از صفحه نمایش ابتدا باید به کمک این تابع مکان نما رو به محل مد نظر برده و بعد متن رو نمایش میدیم.
x,y : مختصات مکان نما
تغییر رنگ متن
تغییر رنگ متن و پس زمینه متن، برای این کار اول باید رنگ متن رو تغییر بدید(یعنی از این توابع استفاده کنید) و بعد متنتون رو نمایش بدید(که یه چیز واضح هستش^_^)
تابع اولی فقط رنگ متن رو تغییر میده.
تابع دومی علاوه بر تغییر رنگ متن، رنگ پس زمینه رو هم تغییر میده.
c : رنگ متن مد نظرتون
b : رنگ پس زمینه
تغییر اندازه متن
برای تعیین اندازه متنتون باید از این تابع استفاده کنید، که به جای S باید عددی بین 1 تا تقریبا 5 قرار بدید، البته از این تابع اول استفاده میکنید و بعد متنتون رو نمایش میدید، متنی که نمایش داده میشه در اندازه مد نظر شما خواهد بود!!!
نماش یه رشته در صفحه نمایش
این دو تابع برای نمایش یه متن در نمایشگر هستن، تابع اولی بعد از نمایش دادن متن، موقعیت مکان نما رو به خط بعدی میبره ولی تابع دومی فقط متن رو نشون میده، به جای آدرس سایت ما میتونید متنتون رو قرار بدید، در ضمن اگه بخواین متنتون رو در جای خاصی از صفحه نمایش نمایش بدید باید از تابع setCursor اول استفاده کنید و بعد متنتون رو نمایش بدید.
نمایش یه کاراکتر در صفحه نمایش
برای نمایش کاراکتر از این تابع استفاده میکنند.که کد اسکی بهش میدی برات کاراکترش رو نمایش میده و یا خود کاراکتر رو میدی و برات نمایش میده، فقط و فقط یه کاراکتر رو میتونید نمایش بدید به کم این تابع در هر با استفاده ازش.
نمایش یه کاراکتر در صفحه نمایش+امکانات ویژه!
نمایش یه کاراکتر، این تابع مثل تابع بالا هستش ولی یه سری امکانات دیگه هم داره، از جمله تعیین مکان نمایش کاراکتر، اندازه، رنگ کاراکتر و پس زمینه کاراکتر رو میتونید تعیین کنید.
Size : اندازه کاراکتر
Color : رنگ کاراکتر
Bg : رنگ پس زمینه کاراکتر
C : کاراکتری که قراره نمایش داده بشه
X,y : مختصاتی که کاراکتر باید نمایش داده بشه.
طول و عرض صفحه نمایش
این دو تابع مقدار طول عرض نمایشگر تون رو بهتون نمایش میده.
دادن رنگ مد نظرتون بر حسب RGB و گرفتن رنگ نهای مد نظر
خب این تابع کارش اینه که شما رنگ بر حسب RGB بهش میدید، یعنی مقدار 3 رنگ رو بهش میدید و ترکیب این 3 رنگ رو متغییرش رو به ما میده، اگه بخواین یکم خلاقیت در پروژتون به خرج بدید این تابع میتونه مفید باشه،
در مطلب زیر یه نرم  افزار هستش که به درد این تابع میخوره، بهترین نرم افزار هستش در این زمینه، کارش اینه که رنگ مد نظرتون رو انتخاب میکنید و کد RGB ایش رو به شما میده.
پروژه و آموزش راه اندازی lcd tft 1.8 inch با آردوینو
نمایش یه پیکسل(نقطه) در صفحه نمایش + خوندن رنگ یه نقطعه از صفحه نمایش
drawPixel : نمایش یه پیکسل رنگی در مختصات x,y با رنگ color
readPixel : خوندن رنگ پیکسل موجود در مختصات x,y
توابعی که توضیح ندادمش
setTextWrap : این تابع رو متوجه عملکردش نشدم من، اگه کسی میدونه بگه.
vertScroll : اینو متوجه شدم ولی حال و وقتش رو ندارم. laugh
نمایش عکس در نمایشگر
عرضم به حظورتون که این تابع همون طور که از اسمش معلومه برای نمایش عکس های 24بیتی از نوع bmp هستش، لذا نمیتونید عکسهایی با فرمت png - gif - bmp32bit - bmp16bit - jpg و... رو به کمک این تابع نشون بدید، چون نوع دیکود شدن این عکس ها فرق داره با هم و باید متناسب با هر کدوم یه تابع نوشت، این تابع فقط برای عکس هایی با فرمت bmp و اونم 24بیتی جواب میده فقط، برای عکسهایی با فرمت دیگه باید خودتون دست بکار بشید و تابعش رو بنویسید.(عمرا کسی بره همچین کاری کنه laugh )
حالا تصاویری که شما دارید اول باید اندازش رو به محدوده اندازه نمایشگر ببرید و بعد فرمتش رو تغییر بدید که هر دو کار رو میتونید در نرم افزار paint ویندوز و یا فوتوشاپ انجام بدید و چون اینجا جاش نیست توضیح بدم لذا نمیدم.(کسی مشکلی داره؟ diablo )
البته این تابع به این صورته که اسم عکس رو بهش میدی و میره این عکس رو از رم میخورنه، در کل این تابع برای نمایش عکس از روی رم هستش.
filename : آدرس فایل و یا نام فایل(اگه در root باشه عکس شما دیگه آدرس نمیخواد و همون نام عکس رو بفرستید)
x,y : مکان شروع نمایش عکس

برای این کار(نمایش عکس) چون از رم استفاده میکنیم برای نمایش عکس(عکسهامون رو میریزیم تو رم و از رم عکس ها رو میخونیم) بایت ابتدا کتابخونه های مربوط به برقراری ارتباط با رم رو قرار بدید در پروژه تون :

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

پروژه نمایشگر لمسی و رنگی 2.4 اینچ با آردوینو

خب در زیر چند تا پروژه براتون قرار میدم، در اول هر کدوم توضیحی در بارش میدم.

1) پروژه تست تمام توابع lcd tft آردوینو

این پروژه برا تست تمام توابع این کتابخونه هستش (غیر از تابع نمایش عکس) که میتونید با نگاه کردن بهش همه چیز رو یاد بگیرید.

فیلم عملکرد کدهای پروژه بالا رو در زیر میبینید، شرمنده اگه کیفیت پایین هستش، موبایلمون سادس و اینو هم با وبکم لبتاب گرفتم، اگه کسی موبایل داره از پروژه فیلم بگیره و بفرسته ممنون میشم
http://www.aparat.com/v/fDuba

2) پروژه نمایش تصویر در lcd tft آردوینو

تو این پروژه یه سری من عکس هم نشون میدم، فایل این عکس ها رو براتون در زیر قرار میدم و باس دانلودش کنید ودر رم بریزید و رم رو هم بزارید داخل رم ریدر و …(کلا آبو بریزید جایی که میسوزه، این دیگه معلومه و نیاز به گفتن نداره که laugh )
توجه : اگه میخواین از رم استفاده کنید و عکس نشون بدید باید توابع read32 و read16 و ShowBMP24BIT رو در پروژتون قرار بدید و برای نمایش عکس از تابع ShowBMP24BIT استفاده کنید.

فیلم پروژه بالا رو هم در زیر میبینید(بازم شرمنده بابت کیفیت پایین اگه کسی میتونه فیلم بگیره و بفرسته blush )
http://www.aparat.com/v/N7DW4

3)  پروژه نقاشی با آردوینو

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

اینم از فیلم پروژه(بازم با وب کم فیلم گرفتم focus )
http://www.aparat.com/v/dkGWS

دانلود چیز میزای پروژه آردوینو این مطلب !

دانلود پروژه ها و عکس ها و کتابخونه های مورد نیاز این مطلب

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

چیزایی که من نگفتم 
به علت این که من وقت ندارم!!! بیش از این نمیتونم توضیح بدم، بقیش بمونه برای بعد

  1. توضیح توابع صفحه تاچ و چند پروژه ازش
  2. نحوه ساخت و تغییر فوت

مطالب مرتبط  heart 
How to display images on 2.4inch TFT and make it a digital photoframe

آموزش و پروژه نمایشگر های دیگه با آردوینو :
آموزش نمایشگر گرافیکی ks0108 با arduino جلسه1
آموزش نمایشگر گرافیکی ks0108 با arduino جلسه2
آموزش جامع کار با lcd کاراکتری در ARDUINO

پروژه و آموزش راه اندازی lcd nokia 5110 با arduino

خب امیدوارم این مطلب براتون مفید بوده باشه، این مطلب رو بنا به درخواست آقایان احسان تابش و علی قهرمانی نوشتم، لطفا پس از مطالعه مطلب هزینه مطلب رو هم بپردازید(هزینه مطلب : 10 تا صلوات برای تعجیل در فرج آقا امام زمان عج و دعا برای دعا برای پیروزی بچه های مقاومت و نابودی داعش و رژیم صهیونیستی و آل سغوط)
بیش از این مزاحتمتون نمیشم، تا مطلب بعدی اگه زنده بودیم یا علی.

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ السارِچین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
238

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    محسن

    سلام
    ممنون بابت اموزش خوبتون
    یه سوال اگه از این شیلد روی برد اردینو uno استفاده کنیم کل پین های ورودی/خروجی برد اردینو درگیر میشه؟
    یعنی پین ازاد برای کارهای دیگه نداره؟

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

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

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

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

      • Avatar

        مهمان

        محسن

        ممنون
        ( فلذا ) رو خوب اومدی

  2. Avatar

    مهمان

    متین

    سلام و عرض خسته نباشید
    من تو این lcd دستور ساده print رو که می نویسم برعکس نمایش میده ممنون میشم مشکلم رو حل کنید.

  3. Avatar

    مهمان

    امیررضا

    سلام. میشه بدون برنامه نویسی عکس نمایش داد. با اردوینو uno r3.
    ممنون.

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

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

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

      سلام-یعنی چی؟ میکرو همش کدنویسی هستش.

  4. Avatar

    مهمان

    ثریا

    سلام ببخشید در codevision من هم تاچ اسکرین دارم هم glcd ام در codewizard هستن دوتاشون نمی دونم چجوری از تاچ اسکرین استفاده کنم؟

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

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

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

      سلام – با کدویزارد کار نکردم – برا بحث این پرژه – اطلاعی ندارم – شما باید بررسی کنید که اونی که تو کدویژن هستش کتابخونش برا همین نمایشگر با همین هسته ( آیسی مرکزی ) هستش –

  5. Avatar

    مهمان

    صادق

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

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

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

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

      سلام-بسکام کار نیستم.

  6. Avatar

    مهمان

    علی

    سلام خسته نباشید
    میخواستم ببینم میشه ویدیو داخل رم ریخت و نمایش داد
    اگه میشه کدش رو توضیح بدید
    ممنون

  7. Avatar

    مهمان

    حمید

    سلام ممنونم از مطلب عالیتون فقط یه سوال داشتم که فکر نکم خیلی ام پیچیده باشه اونم اینکه
    اگه بخواهیم مختصات مکان لمس شده رو روی lcd نمایش بدیم باید چه کدی رو بنویسیم
    در ضمن این پروزه ها با هسته 9341 هم راه اندازی میشه یا خیر help

1 2 3