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

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

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

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

 

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

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

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

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

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

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

 


رسم تصاویر در OLED با Gimp


می‌خواهیم تصویر زیر را بر روی نمایشگر OELD نمایش دهیم. در ابتدا برای نمایش لوگو نمایشگر OLED نرم‌افزار Gimp را از لینک زیر دانلود  و نصب نمایید. دانلود نرم‌افزار Gimp از soft98 مرحله اول : وارد نرم‌افزار شوید و تصویری  مورد نظر را درون این نرم‌افزار باز می‌کنیم.باید دقت داشته باشید رزولوشن تصویر کمتر از ۱۲۸*۶۴ باشد( رزولوشن عکس باید کمتر یا مساوی تراکم پیکسلی نمایشگر باشد).همچنین توجه داشته باشید تصویر مورد نظر فقط باید دارای دو رنگ مشکی و سفید باشد ، در غیر این صورت باید تصویر را ویراییش کنیم و به رنگ سفید و مشکی تبدیل کنیم.( رنگی مشکی در تصویر به صورت رنگ سفید در نمایشگر و رنگ مشکی به رنگ سفید در ماژول OLED نمایش داده می‌شود).


20

 

مرحله دوم : سپس از منوی file گزینه Export as  را انتخاب می‌کنیم و در پنجره باز شده فرمت فایل را بر روی x BitMap image قرار می‌دهیم و تصویر خود را در مکان مورد‌نظر ذخیره ‌می‌کنیم.

21-1

 

 


رسم تصاویر OLED با تابع drawXBMP


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

drawXBMP(u8g_uint_t x, u8g_uint_t y, u8g_uint_t w, u8g_uint_t h, const u8g_pgm_uint8_t *bitmap)

پارامترها به شرح زیر است.

x : مختصات نمایش تصویر در راستای محور x

y : مختصات نمایش تصویر در راستای محور y

w : اندازه‌ی عرض تصویر می‌باشد

h : ارتفاع تصویر می‌باشد

bitmap : آرایه‌ای از کد‌های تصویر تولید شده می‌باشد( این قسمت توضیح داده می‌شود)

مرحله سوم: اکنون به محلی که تصویر مورد نظر را با فرمت xbm ذخیره کردیم مراجعه نموده ، برروی آن راست کلیک کرده و آن را با یک editor باز می‌کنیم:

22

مرحله چهارم: کد زیر را در نظر بگیرید :

#include "U8glib.h"


U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI


#define test_width 99
#define test_height 64
static const unsigned char test_bits[] PROGMEM = {
   };



void draw(void) {

  // graphic commands to redraw the complete screen should be placed here

u8g.drawXBMP( 0, 0, test_width, test_height, test_bits);

}

void setup(void) {
}

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




}

 


کد آردوینو ماژول OLED I2C


می‌بایست به‌جای define test_width و define test_heigh در ابتدای برنامه ، عرض و ارتفاع تصویر را وارد کنیم.همچنین باید  درون آرایه test_bits[] کدهای تولید شده در مرحله سوم را قرار دهیم. پس کد نهایی ما به صورت زیر در می‌آید.

#include "U8glib.h"


U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI


#define test_width 99
#define test_height 64
static const unsigned char test_bits[] PROGMEM = {
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
   ۰x20, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x1e, 0x60, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x1f, 0x60, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
   ۰x00, 0x00, 0x0f, 0x60, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x03,
   ۰x00, 0x00, 0x86, 0x03, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00,
   ۰x07, 0x00, 0x00, 0x87, 0x03, 0x60, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
   ۰x00, 0x0f, 0x00, 0x80, 0x07, 0x03, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00,
   ۰x00, 0x00, 0x0e, 0x00, 0xc0, 0x03, 0x07, 0x60, 0x00, 0x00, 0x3a, 0x00,
   ۰x00, 0x0e, 0x10, 0x1c, 0x00, 0xc0, 0x00, 0x06, 0x60, 0x00, 0x00, 0x33,
   ۰x80, 0x00, 0x7e, 0x18, 0x18, 0x00, 0x60, 0x00, 0x06, 0x60, 0x10, 0x24,
   ۰x33, 0xc0, 0x00, 0xff, 0x18, 0x18, 0x00, 0x60, 0x00, 0x06, 0x64, 0x30,
   ۰x66, 0x33, 0xc0, 0x00, 0xf0, 0x18, 0x30, 0x00, 0x60, 0x00, 0x06, 0x66,
   ۰x30, 0x36, 0x33, 0xe0, 0x00, 0xf0, 0x10, 0x10, 0x00, 0xe0, 0x80, 0x06,
   ۰x66, 0x18, 0x36, 0x33, 0x70, 0x00, 0x78, 0x18, 0x10, 0x00, 0xe0, 0xff,
   ۰x03, 0xe6, 0xff, 0xff, 0x11, 0x30, 0xfc, 0xff, 0x9f, 0x1f, 0x00, 0xc0,
   ۰xff, 0x01, 0xec, 0xff, 0xff, 0x31, 0x18, 0xfc, 0xdf, 0x8f, 0x0f, 0x00,
   ۰x00, 0x7f, 0x00, 0x84, 0xf6, 0xcd, 0x08, 0x18, 0xfc, 0xc7, 0x87, 0x07,
   ۰x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x08, 0x30, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x30, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x3e, 0x00, 0x00, 0x18, 0x30,
   ۰x18, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x36, 0x00, 0x00, 0x38,
   ۰x1c, 0x38, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x36, 0x00, 0x00,
   ۰xf0, 0x1f, 0x18, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00,
   ۰x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x0c,
   ۰x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01,
   ۰x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   ۰x00, 0x00, 0x00, 0x00, 0x00, 0x00   };



void draw(void) {

  // graphic commands to redraw the complete screen should be placed here

u8g.drawXBMP( 0, 0, test_width, test_height, test_bits);

}

void setup(void) {
}

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




}

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

photo_2015-11-20_00-39-14

 

دو تصویر برای تمرین شما عزیزان قرار داده شده است، طبق آموزش‌های داده شده این دو عکس را بر روی نمایشگر OLED نمایش دهید و در صورت با ما در میان بگزارید.

 

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

 


لوازم مورد نیاز


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

آردوینو مگا ۲۵۶۰

 

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

 

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

 

 

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

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

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

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

۲۱ دیدگاه