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

آموزش و پروژه نمایشگر گرافیکی t6963c با arduino

به نام خدا : تو این مطلب قراره بنا به درخواست دوست عزیزمون آقای علی قهرمانی مطلب ” آموزش و پروژه نمایشگر گرافیکی t6963c با arduino ” رو تو سایت قرار بدیم، قبلا خودم آموزشش رو با Avr تو سایت قرار داده بودم و الان هم میخوام با آردوینو آموزشش رو بزارم تو سایت، امید است این مطلب ناچیز مفید واقع شود(چقدر جمله ابدیاتی بود ^_^)
توجه : عکس زیر رو از نت پیدا کردم، دیدم کیفیت عکسش خوبه انتخابش کردم و در زیر قرار دادم، من چون فقط میتونم با وبکم لبتاب فیلم بگیرم لذا کیفیتش آنچنان خوب نمیشه، گفتم حداقل عکس اول مطلب خوب باشه.
آموزش و پروژه نمایشگر گرافیکی t6963c با arduino

آموزش و پروژه نمایشگر گرافیکی t6963c با arduino


مطلب آموزش این مایشگر با Avr که قبلا تو سایت گزاشتم : 
آموزش LCD های سری توشیبا با کنترلر T6963C جلسه1
آموزش LCD های سری توشیبا با کنترلر T6963C جلسه2
آموزش LCD های سری توشیبا با کنترلر T6963C جلسه3

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

بهترین کتابخونه ای که من تا این زمان تست کردم همین کتابخونه هستش.

دانلود کتابخونه t6963c برای آردوینو

 

ترتیب پایه های LCD T6963C

رو عکس زیر کلیک کنید و در اندازه بزرگتر ببینیدش.

ترتیب پایه های LCD T6963C

نحوه اتصالات نمایشگر گرافیکی T6963C

این نمایشگر 22 تا پایه داره، که یه سری از پایه ها رو ما استفاده میکنیم ازشون و یه سری رو نه.
D0 : پایه 2 آردوینو
D1 : پایه 3 آردوینو
D2 : پایه 4 آردوینو
D3 : پایه 5 آردوینو
D4 : پایه 6 آردوینو
D5 : پایه 7 آردوینو
D6 : پایه 8 آردوینو
D7 : پایه 9 آردوینو
CS ( یا همون CE) : پایه A0 آردوینو
a0 (یا همون C/D) : پایه A1 آردوینو
wr : پایه A3 آردوینو
rd : پایه A4 آردوینو
reset(یا همون RES) : پایه A2 آردوینو
پایه های 2و21 نمایشگر به GND
پایه های 3و20 نمایشگر به VCC (یا همون 5V یا همون 5ولت ^_^)
پایه های 1و18و22 بدون اتصال.
حالا برید یه پتاسیومتر بیارید(مقاومت متغییر 3پایه) و پایه اولیش رو به VO (پایه شماره 4 نمایشگر) وصل کنید و پایه وسطیش رو به VOUT (پایه 19 نمایشگر) وصل کنید و پایه آخریش رو به پایه 21 نمایشگر وصل کنید.

توضیح توابع نماشگر T6963C با آردوینو

رسم نقطه
رسم(نمایش) یه پیکسل(نقطه) در مختصات xوy
رسم خط
drawHLine  :  رسم یه خط افقی که از مختصات xوy شروع میشه و طول این خط w هستش.(رسم خط با داشتن نقطه شروع و طول خط)
drawVLine : رسم یه خط عمودی که از مختصات xوy شروع میشه و طول این خط w هستش.(رسم خط با داشتن نقطه شروع و طول خط)
drawLine : رسم خط از مختصات x1وy1 تا x2وy2  (رسم خط با داشتن مختصات دو سر خط)
رسم یه 4ظلعی
drawFrame  : رسم یه 4 ظلعی با داشتن مختصات نقطه سمت چپ بالا(xوy) و طول و عرض اون 4 ظلعی(wوh)
drawRFrame : رسم یه 4 ظلعی با گوشه های گرد، اون r میزان گردی 4 ضلعی رو تعیین میکنید و اون پارامترهای دیگه مثل تابع بالا هستش(این که حداکثر مقدار r چقدر هستش، بسته به اندازه 4 ضلعی متفاوت هستش و باید تست کنید.)
drawBox : رسم یه 4 ظلعی تو پر، پارامترهاش مثل تابع drawFrame هستش
drawRBox : رسم یه 4ظلعی توپر با گوشه های گرد(پارامترهای مثل 2-3 تا تابع بالا هستش)
رسم داره
DrawCircle : رسم داره، با مرکز دایره XوY و شعاع rad (از پارامتر آخر استفاده نکنید.)
DrawDisc : رسم دایره توپر، پارامتر هاش مثل تابع بالا هستش.
رسم لوزی
این دو تابع برای رسم لوزی هستن مثلا ^_^، اولی لوزی توخالی و دومی لوزی توپر، X0وy0 مختصات وسط لوزی هستن، rxوry اندازه شعاع های افقی و عمولی لوزی هستن، پارامترآخر هم استفاده نکنید ازش.
این دو تابع یکم مشکل دارن، تو اندازه شعاع بالای 25 جواب نمیدن درست.
رسم مثلث
رسم مثلث توپور، xوy ها هم مختاط سه راس مثلث هستن.
X1,y1 راس اول --- x2,y2 راس دوم ---- x3,y3 راس سوم
متاسفانه پثلث تو خالی من هر چی گشتم پیدا نکردم تو این کتابخونه، به ناچار باید خودم تابعش رو بنویسم(که فعلا حسش نیست، ولی با رسم 3 تا خط میتونید مثلث رو ایجاد کنید! یه تابع بنویسید و داخلش 3 بار از تابع رسم خط استفاده کنید، اگه نتونستید بگید بهم – اصلا مثلث تو خالی برا چیتون هستش ^_^)
نمایش عکس
برای نمایش عکس از این 4 تابع استفاده باس بکنیم ولی من فقط نحوه تولید عکس برای 2 تابع آخر رو میدونم و اون دو تای اول رو نمیدونم، برای تولید کد (تبدیل عکس به کد و دادن به این دو تا تابع) باید از نرم افزار Image2Code استفاده کنید که برای دانلدو براتون قرار میدم، نحوه کارش رو هم در عکس زیر مشاهده میکنید.
بعد از گرفتن کد عکس باید مثل پروژه های نمایش عکسی که براتون قرار دادم عمل کنید.
نمایش عکس در LCD گرافیکی T6963C
چرخش صفحه نمایش
  • نمایش دیتا از بالا به پایین
  • نمایش دیتا از راست به چپ
  • نمایش دیتا از پایین به بالا
  • نمایش دیتا از چپ به راست
نمایش یه متن
نمایش یه رشته، که زاویه نمایش متن رو هم میتونید تعیین کنید، تابع اولی متن رو 0 درجه نشون میده، دومی 90، سومی 180 و چهارمی هم 270 درجه نشون میده متن رو، این متن از مکان XوY شروع میشه نمایش دادنش، به جای پارامتر S هم متنمون رو قرار میدیم.
سوال : فرق استفاده از این تابع(3 تابع آخر)، با تابع  drawStr به همراه استفاده از یکی از 4 تابع setRot چیه؟
جواب : خب اگه فیلم پروژه رو ببینید به خوبی متوجه میشید، وقتی ما از setRot استفاده میکنیم کلا مختصات شروع و پایان نمایش دیتا تغییر میکنه، تو حالت عادی متن از بالا شروع به نمایش دادن میکنه به سمت پایین، ولی وقتی از setRot استفاده میکنیم مختصات شروع و پایان صفحه نمایش تغییر میکنه کلا، مثلا صفحه نمایش ما اول اطلاعات رو به صورت افقی نشون میداد ولی الان به صورت عمودی نشون میده، یا اصلا تو موبایل های هوشمند! اگه دیده باشید، در حالت عادی اطلاعات از بالا به پایین نمایش داده میشه، ولی وقتی موبایل رو میچرخونید اطلاعات از چپ به راست نمایش داده میشه، به قولی میشه گفت صفحه نمایش میچرخه، این داستان تو بحث تابع setRot هستش که کارش چرخش صفحه نمایش هستش، ولی توابع drawStr90 و اون 3 تای دیگه، صفحه نمایش رو نمیچرخونن و فقط اطلاعات رو زاویه دار نشون میدن(زوایای 0-90-180-270) خب بعد این همه داستان امیدوارم متوجه شده باشید، اگه نشدید چند بار از این توابع استفاده کنید و نتیجه رو در عمل ببینید اون وقت حتما متوجه میشید.

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

تعیین فونت

تعیین فونت مورد نظر، متن با این فونت نمایش داده میشود.، به جای u8g_font_5x7 نام فونت مورد نظرتون رو قرار بدید.
برای دیدن لیست تمام فونت های موجود به فایل u8g_font_data برید.

2 برابر کردن اندازه دیتای نمایشی

این دو تابع برای 2 برابر کردن اندازه دیتای نمایشی در lcd
setScale2x2 : اندازه دیتایی که قراره نمایش داده بشه رو دوبرابر میکنه.
undoScale : تنظیم دو برابر کردن نمایش دیتا رو غیر فعال میکنه.

دو تابع برای نمایش متن و تنظیم موقعیت مکان نما

غیر از توابع drawStr  این دو تابع هم میتونید ازش استفاده کنید، برای نمایش دیتا از این تابع هم میشه استفاده کرد، و برای تنظیم مکان نمایش دیتا باید از تابع setPrintPos استفاده کرد که x برا تعیین موقعیت افقی و y برا تعیین موقعیت عمودی هستش.

پاک کردن صفحه نمایش

به کمک تابع Clear که براتون نوشتم میتونید نمایشگر رو پاک کنید.

طول و عرض صفحه نمایش

تابع اولی عرض صفحه نمایش رو به شما میده، حالا بسته به این که دیتا تو نمایشگر از کدوم جهت به کدوم جهت نمایش داده میشه این مورد متفاوت هستش، مثلا اگه دیتا از پایین به بالا نمایش داده بشه، مقدار 240 رو بر میگردونه و اگه از راست به چپ باشه 128 رو بر میگردونه تابع.
تابع دومی هم همین طور با این تفاوت که ارتفاع رو بهمون میده

نکات مهم در نمایش دیتا و استفاده از این کتابخونه
عرضم به حظورتون که برای نمایش دیتا و استفاده از توابع بالا باید اطلاعاتتون رو در کد زیر قرار بدید(قسمت مشخص شده)

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

نحوه کار به این صورت هستش که شما توابعتون رو در یه تابع(که خودتون تعریف میکنید و مثلا اسمش رو x میزارید) قرار میدید و حالا برا نمایش این توابع میاید و x به به تابع ShowData میدید(پروژه های نمونه ای که براتون گزاشتم رو اگه ببینید متوجه میشید، اگه هم نشدید بپرسید در خدمتیم) >>> این نحوه دادن استفاده از نام توابع به عنوان پارامتر توابع دیگه هم مربوطه به بحث اشاره گر ها(اشاره گر به تابع) که میتونید برید تو نت بخونید، البته خودم هم مطلبی درباره اشاره گر ها قبلا تو سایت گزاشتم که میتونید برید اونو هم بخونید.
آموزش جامع اشاره گرها در Pointer Tutorial in C
روش های ارسال متغییر به تابع در C
توجه : برای تابع Clear لازم نیست از روش بالا استفاده کنید و باید به صورت مستقیم فراخونیش کنید.

حالا میخواین مثلا دمای یه سنسور رو تو نمایشگر نشن بدید، که دما هی تغییر میکنه و نمیخواین که هی نمایشگر رو پاک کنید و دمای جدید رو نشون بدید و فقط میخواین که دمای جدید در اون قسمت مد نظرتون باز نویسی بشه تا نمایشگر چشمک نزنه و یه چیز خوشگل! درست کنید >>> پروژه 1 تابع ShowTemp رو نگاه کنید.

پروژه t6963c با آردوینو – 1

تو این پروژه تست انواع فونت، نمایش عکس با دو تابع مختلف که این دو عکس در دو حافظه متفاوت ذخیره شدن و نمایش دما به صروت نمادیدن برا بحث آموزشی

فیلم پروژه1

پروژه t6963c با آردوینو – 2

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

فیلم پروژه 2

پروژه t6963c با آردوینو – 3

تو این پروژه یه دیتایی نمایش میدم و پاکش میکنم و باز دیتا نمایش میدم و …

توجه : این نمایشگر با MEGA256 هم راه اندازی میشه و مشکلی نیست، در زیر فیلم تست این نمایشگر با مگا256 رو میزارم

خب این مطلب هم توم شد، امیدوارم مفید باه براتون، در ضمن من تمام کتابخونه های موجود برا این نمایشگر رو تا این زمان تست کردم و این کتابخونه بهترینش بود، در ضمن عیدتون هم مبارک، هزینه این مطلب دعا برای تعجیل در فرج آقا، بیش از این مزاحم نمیشم ، فعلا یا علی

پسورد فایل های سایت :
www.dmf313.ir
مهدی دمیرچیلو جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
23

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

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

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. Avatar

    مهمان

    مهدی

    سلام
    ظاهرا این کتابخانه از کنترل T6963 در Arduino Due پشتیبانی نمی کند. کتابخانه جایگزین سراغ دارید که معرفی کنید؟

    ممنون

    1397/12/06
    06:59
    • مهدی دمیرچیلو

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

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

      سلام – نه – یا تو نت بسرچید یا همین کتابخونه رو اصلاح کنید.

      1397/12/06
      11:07
  2. Avatar

    مهمان

    سجاد

    سلام آقا مهدی – من یه ال سی دی ts240128d-1v1.0 رو طبق آموزش با آردپینو uno بستم و کد های آماده ای ک گذاشتی رو ریختم روش – ال سی دی دری وری نشون میده – هر کار مینم نمیفهمم مشکلشو – چند بار بستم همین مدارو – کد هم ک تو جواب گرفتی تو فروم ها هم چیزی نیافتم – ب نظرت مشکل چیه ؟ اگه حل بشه قول میدم مسلمان شم laugh unknw

    1397/05/21
    04:52
    • مهدی دمیرچیلو

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

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

      سلام
      این نمایشگر انواع مدل مختلف داره – یه سرچی بکن ببین چه فرقی دارن با هم – و چه تغییری باید ایجاد کنی تو پروژه.

      1397/05/21
      07:07
  3. Avatar

    مهمان

    amin

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

    1397/02/20
    03:05
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام-آره اون موقع هم کار میکردم این مشکلاتو داشت ولی خب من زیاد تو بحرش نرفتم حقیقتا چون زیاد کاربرد و استفاده ای برام نداشت
      قیمتش خیلی بالاس

      1397/02/20
      08:00
  4. Avatar

    مهمان

    amin

    سلام. یه سوال؟ این توابعی که الان در بالا نوشتید و یکی یکی توضیح دادید رو از کجا اوردید؟ آیا از تو همون example هایی که ضمیمه‌ی فایل کتابخونه‌ی github بوده استنتاج کردید یا از سایتی دیگه بدست اوردید؟ من منبع لاتینش رو نیاز دارم اگه میشه راهنمایی کنید.
    یا علی

    1397/02/19
    07:01
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      طبق توضیحات توی مطلب انگار از لینک زیر گرفتمش – نمیدونم دقیقا یادم نی :
      https://github.com/olikraus/U8glib_Arduino

      1397/02/19
      07:03
  5. Avatar

    مهمان

    amin

    بسیار عالی wink . اللهم عجل لولیک الفرج

    1397/02/18
    10:13
  6. Avatar

    مهمان

    alireza

    سلام
    یه مشکل عجیب دارم من تصور از وسط نصف شده و دو تا نشون می ده تا حالا به این مشکل خوردین؟؟؟

    1396/11/15
    02:50
  7. Avatar

    مهمان

    علیرضا

    سلام داشی خسته نباشی
    من یه lcd دارم که توشیبا نیست 20 پایه داره اندازش هم 128*64 هستش
    اینو بخوام با آردوینو بزنم با کتابخونه u8g کار میکنه؟
    تو برنامه هم باید تغییراتی بدم؟

    1396/08/30
    04:59
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

      1396/09/05
      01:26
      • Avatar

        مهمان

        علیرضا

        سلام
        داش مهدی مدل نمایشگرم Agm1264f هست و کتابخونه آردینیو ی اینو نتونستم پیدا کنم فکر نکنم موجود باشه اصلا
        برای راه اندازی این نمایشگر حتما باید کتابخونش رو داشته باشم؟
        یا راه حل دیگه ای هم هست؟
        ممنون

        1396/09/06
        12:39
        • مهدی دمرچیلو

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

          مهدی دمرچیلو

          سلام
          کتابخونه که باید باشه.
          اگه پیدا نکردی
          باید دیتاشیتش رو پیدا کنی ببینی چطور کار میکنه – یه کتابخونه خودت براش بنویسی

          1396/09/06
          08:37
  8. Avatar

    مهمان

    سعید

    بسیارعالی
    برروی آردوینو اونو هم اجرامیشه؟

    1396/06/20
    04:59
  9. Avatar

    مهمان

    مرتضی

    خیلی عالی
    دو روزه داشتم دمبالش میگشتم

    1395/08/29
    01:28
  10. Avatar

    مهمان

    مهرداد

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

    1395/03/18
    08:53
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      سلام
      باید صدق کنه – بزار من یه نیم-1 ساعت دیگه تست میکنم و خبرت میدم.

      1395/03/18
      12:49
      • مهدی دمرچیلو

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

        مهدی دمرچیلو

        سلام
        تست کردم مشکلی نبود و جواب داد ببین کجا سوتی دادی
        فیلمش داره آپلود میشه چند دقیقه دبگه به همین مطلب پیوست میکنم.

        1395/03/18
        02:41
        • Avatar

          مهمان

          مهرداد

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

          1395/03/18
          02:51
          • مهدی دمرچیلو

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

            مهدی دمرچیلو

            سلام
            نمیدونم

            1395/03/18
            02:57
  11. Avatar

    مهمان

    HOSEIN

    پولش چقدره اینا داچ مهدی

    1395/03/02
    11:07
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

      130

      1395/03/02
      12:57