آردوینو آردوینو Arduino Uno آموزش آردوینو نمایشگر OLED پروژه های آردوینو

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

آموزش ماژول نمایشگر OLED SPI
نوشته شده توسط علیرضا قربانی

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

 


اتصالات ماژول نمایشگر OLED


ماژول OLED را طبق  تصویر زیر به آردوینو متصل می‌‌کنیم:

پین vcc به ۵ ولت DC و GND به زمین مدار

CLK پین سورس کلاک ماژول می‌باشد و باید به SCK آردوینو متصل شود

MOSI  ماژل نیز باید به MOSI آردوینو متصل شود

پین CS  بر روی ماژول له منظور select کردن آن می‌باشد و به پین شماره ۱۰ متصل می‌شود

پین D/C بر روی ماژول برای این است که ماژول را آگاه کنیم که آیا برای آن داده می‌فرستیم یا دستور.

fd9fb683-5d3b-40b9-b901-23a7955fc249

 

 

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

آموزش ماژول نمایشگر OLED SPI

پین‌های SPI در ماژول‌های آردوینو

 

 


شمارش پیکسل در ماژول نمایشگر OLED


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

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

 


کدنویسی ماژول نمایشگر OLED


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

#include <U8glib.h>


U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9);  // SW SPI Com: SCK = 13, MOSI = 11, CS = 10,D / C = 9


void setup(void)
{

}

void loop(void)
{
  // picture loop
  u8g.firstPage();
  do {
    draw();
  } while( u8g.nextPage() );

  delay(50);
}

void draw(void)
{
  // graphic commands to redraw the complete screen should be placed here
  u8g.setFont(u8g_font_unifont);
  //u8g.setFont(u8g_font_osb21);
  u8g.drawStr( 15, 40, "digispark.ir");
}

 

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

آموزش ماژول نمایشگر OLED SPI

 


شرح برنامه ماژول نمایشگر OLED


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

U8GLIB_SH1106_128X64 u8g(SCK, MOSI,CS, D/C);

اتصالات پین‌ها به صورت تصویر زیر می‌باشند.

آموزش ماژول نمایشگر OLED SPI

اتصالات ماژول نمایشگر OLED SPI به آردوینو

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

U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9);  // SW SPI Com: SCK = 13, MOSI = 11, CS = 10,D / C = 9

 

drawStr(u8g_uint_t x, u8g_uint_t y, const char *s)

توسط این تابع ، نوشته بر روی صفحه نمایش OLED نمایش داده خواهد شد.پاراکتر‌های این تابع به صورت زیر می‌باشد:

x : موقعیت نمایش در راستای محور Xها

Y:موقعیت نمایش در راستای محور y ها

s: رشته‌ای که قصد نمایش آن را داریم.

 

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

 u8g.firstPage();

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

u8g.nextPage()

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

u8g.firstPage();
do {
  //دستورات گرافیکی در این قسمت قرار می‌گیرد

} while ( u8g.nextPage() );

 

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

 

در این آموزش با اصول راه اندازی OLED SPI آشنا شدید . آموزش توابع تکمیلی این کتابخانه در پست‌های زیر در درسترس می‌باشند.

آموزش ماژول نمایشگر OLED بخش دوم

آموزش ماژول نمایشگر OLED بخش سوم

آموزش ماژول نمایشگر OLED بخش چهارم

آموزش ماژول نمایشگر OLED بخش پنجم

آموزش ماژول نمایشگر OLED بخش ششم

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

 

 


سخت افزار مورد نیاز


آردوینو Uno

ماژول نمایشگر OLED SPI

 

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

 

پروژه و دریافت بن ارسال رایگان

برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

علیرضا قربانی

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

تبادل نظر و رفع عیب با ثبت دیدگاه

۱۶ دیدگاه

  • بسیار عالی بود مثل همیشه فوق العاده بود.
    جای آموزش GLCD خالیه.پیر شدیم و این آموزش را یادمون ندادید.
    ولی منهای شوخی مطالبتون عالیه
    با تشکر

  • سلام ممنون از راهنمایی هاتون
    من یک ماژول OLED تهیه کردم که علاوه بر پایه های بالا پایه ریست هم داره وبرنامه شما روی اون جواب نمیده میتونید راهنمایی کنید؟

  • سلام
    ممنون از راهنمایی هاتون
    من یک ماژول OLED تهیه کردم که علاوه بر پایه های بالا پایه ریست هم داره وبرنامه شما روی اون جواب نمیده میتونید راهنمایی کنید؟

  • سلام
    روی oled که من خریدم پایه ها به ای شکله
    DC- RES- D1- D0- VCC- GND
    میشه راهنمایی بفرمایید اتصال پایه ها به چه صورته

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

  • سلام
    آیا امکانش هست این صفحه نمایش رو به attiny85 که آموزش هم دادید، وصل کنیم؟

    • سلام
      بله محدودیتی برای اینکاروجود ندارد. تنها باید با توجه به تراشه OLED، کتابخانه مورد نیاز جهت راه اندازی attiny با OLED را فراخوانی نمایید.

  • با سلام و خسته نباشید ، اگر بیش از یک oled با ارتباط i2c و مشابه هم باشد آیا با پایه CS میشه oled مورد نظر را انتخاب کرد و دسترسی داشت با برنامه نویسی یعنی باید برای هر پایه CS جداگانه به پینهای اردینو وصل بشوند و تو برنامه نویسی تعریف بشوند، مثل همون دات ماتریس مشابه که چند تا شون بهم وصل میشدند اینها هم بهم وصل می‌شوند

    • با سلام
      برای ارتباط i2c میتوانید از چندین رابط استفاده کنید. فقط دقت داشته باشید پایه های I2c به صورت SDA, SCL است.