راه‌اندازی نمایشگر OLED آردوینو

نمایشگر‌های OLED ، نمایشگرهایی با کانتراست  و رزولوشن بالای می‌باشند ، از این رو قابلیت خوانایی زیادی را برای کاربر فراهم می‌کند. این نوع ماژول‌ها فاقد Backlight  می‌باشند و نور پس‌زمینه را خودشان ایجاد می‌کنند از این رو نسبت به LCD ها باریک‌تر ، شفاف‌تر و شکیل تر می‌باشند. در ادمه آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

در این پست قصد آموزش راه اندایز نمایشگر OLED 128* 64  را داریم . این ماژول‌ها دارای چیپ‌های راه‌انداز متفاوتی از قبیل SSD1306 ،SH1106  و… می@باشند  که دراین آموزش از یک OLED با چیپ داخلی SH1106 به همراه پروتکل ارتباطی I2C استفاده شده است.

برای تشخیص نوع درایور این ماژول یک روش وجود دارد. در نمایشگر OLED هایی که از چیپ SH1106 استفاده کرده‌اند اولین پین از سمت چپ ، پین VCC می‌باشد و در نمایش‌گرهایی که از چیپ SSD1306 استفاده می‌کنند پین اول از سمت چپ ، پین GND می‌باشد. در  تصاویر زیر این موضوع نشان داده شده است.

نمایشگر OLED با چیپ SH1106

نمایشگر OLED با چیپ SH1106

نمایشگر OLED چیپ SSD1306

نمایشگر OLED با چیپ SSD1306

 

 

سخت افزار استفاده  شده در این آموزش :

یک عدد Arduino MEGA2560

یک عدد OLED 128*64 با چیپ داخلی SH1106 و پروتکل ارتباطی I2C

 

 

 

برای راه‌اندازی OLED  ابتدا کتابخانه U8glib را از لینک زیر دانلود نمایید  و آن را به نرم افزار آردوینو اضافه کنید.

دانلود کتابخانهU8glib

 

 

OLED 128*64 بدین معناست که دارای ۱۲۸ پیکسل از چپ به راست  و ۶۴ پیکسل از بالا به پایین می‌باشد. به عبارت دیگر این نمایشگر از ۸۱۹۲  پیکسل تشکیل شده است. به ازای هر پیکسل ، یک عدد LED بسیار کوچک بر روی این نمایشگر قرار دارد.

 

شمارش پیکسل‌ها

در عرض این نمایشگر ۱۲۸ پیکسل قرار  دارد که شمارش آن از ۰  در سمت چپ شروع می‌شود و به راست تا پیکسل شماره ۱۲۷ ادامه می‌یابد. و همچنین در طول این نمایشگر ۶۴ پیکسل قرار دارد که از شماره صفر شروع می‌شود و به سمت پایین تا شماره ۶۳ ادامه می‌یابد.

آموزش OLED آردوینو

آموزش نمایشگر OLED آردوینو

 

 

کد‌های زیر را در نرم افزار آردیونو کپی نمایید و سپس در آردوینو آپلود کنید.

 

 

همانطور که مشاهده می‌کنید متن Digisprak.ir در نمایشگر نشان داده می‌شود.

آموزش OLED در آردوینو Arduino

 

 

شرح برنامه

پس از فراخوانی کتابخانه U8glib توسط دستور زیر به برنامه اعلام می‌کنیم که از یک عدد OLED 128*64 با استفاده از رابط I2C استفاده می‌کنیم .

 

 

سپس فونت دلخواهمان را انتخاب می‌کنیم .( این کتابخانه از فونت‌های بسیار زیادی پشتیبانی می‌کند که در آموزش‌های بعدی لیست اسامی آن‌ها قرار داده می‌شود. در کتابخانه‌هایی که برای LCDهای گرافیکی و OLED ها استفاده می‌شود اصطلاحی وجود دارد به نام “حلقه رسم”. “حلقه رسم توسط دستور زیر شروع می‌شود

و همچنین توسط دستور زیر به پایان می‌رسد:

” حلقه رسم ” برای اجرای دستورات گرافیکی در OLED نیاز می‌باشد و تمام دستورات گرافیکی در میان این حلقه قرار می‌گیرد. و ما نیز تابع draw را نیز در میان این حلقه قرار داده‌ایم. ( در قسمت‌های بعدی راجب به این حلقه توضیحات جامعی را ارائه می‌دهیم )

 

اسکرول کردن متن

در کد‌‎های قرار گرفته در ابتدای آموزش دستور

را با دستور

جایگزین کنید و در آردوینو آپلود نمایید . اگر مراحل را به درستی انجام داده باشید تصویر زیر را مشاهده می‌کنید:

آموزش OLED در آردوینو Arduino

آموزش OLED در آردوینو Arduino

 

همانطور که ملاحظه می‌کنید این کتابخانه از مختصات منفی برای نمایش پشتیبانی می‌نماید. از این ویژکی می‌توان برای تولید انیمیشن‌های جذاب و زیبا و همچنین اکسرول کردن متن استفاده نمود.

کد‌های زیر را به منظور اسکرول کردن متن در آردوینو آپلود کنید :

 

 

اگر مراحل را به درستی انجام داده باشید ، فرایندی مطابق فیلم زیر مشاهده می‌کنید .

 

 

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

16 دیدگاه ها

  1. Amin می‌گه:

    آقا واقعا باحوصله آموزش دادید. دمتون گرم
    بعد از دیدن فیلم، فکر نمیکردم در این حد کیفیت داشته باشه این ماژول، خیلى عالى

  2. SADEGH SAFARI می‌گه:

    همون طور که امین گفت واقعا عالی بود

  3. غلامعلی می‌گه:

    سلام

    کار با OLED بسیار سخته، من خودم چند سالی هست در زمینه ماژول های نمایشگر کار میکنم ولی جرات اینکه روی OLED ها کار کنم را نداشتم، چون واقعا حوصله میخواد و زمان بره،
    خیلی ممنونم از سایتتون و همچنین آقای قربانی، امیدوارم آموزش های جذابت ادامه دار باشه

    با تشکر

  4. شعباني می‌گه:

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

  5. علی می‌گه:

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

  6. ashkan می‌گه:

    با عرض سلام
    از این کتابخانه برای مدل sdd1306 هم میشه استفاده کرد؟

  7. حسین می‌گه:

    آیا میشه برای انجام این آموزش از uno استفاده کرد؟

  8. احسان می‌گه:

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

  9. […] آموزش  ماژول نمایشگر OLED I2C در آردوینو بخش اول […]

  10. علی اسماعیلی می‌گه:

    سلام من کد هارو کپی کردم ولی این خطا رو میده:
    expected constructor, destructor, or type conversion before ‘;’ token

  11. هیراد می‌گه:

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

  12. ALI می‌گه:

    سلام شما تو نظرها گفتین که میشه تو این پروژه از مدل ssd1306 هم استفاده کرد و فقط باید یک آبجکت بسازیم .
    من خیلی مبتدی ام . میشه درباره ساخت همین آبجکت یا کارایی که باید انجام بدیم تا با مدل ssd1306 هم راه بیوفته یه توضیحی بدین ! ممنون میشم .

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *