در این پست با ادامهی آموزش توابع کتابخانه U8glib برای راهاندازی ماژول نمایشگر OLED با دیجی اسپارک همراه باشید.
آموزش راه اندازی ماژول نمایشگر OLED بخش اول
آموزش راه اندازی ماژول نمایشگر OLED بخش دوم
آموزش راه اندازی ماژول نمایشگر OLED بخش سوم
آموزش راه اندازی ماژول نمایشگر OLED بخش چهارم
آموزش راه اندازی ماژول نمایشگر OLED بخش پنجم
drawStr
توسط این تابع ، نوشته بر روی صفحه نمایش OLED نمایش داده خواهد شد.
ساختار تابع یه صورت زیر میباشد :
drawStr(u8g_uint_t x, u8g_uint_t y, const char *s)
x : موقعیت نمایش در راستای محور Xها
Y:موقعیت نمایش در راستای محور y ها
s: رشتهای که قصد نمایش آن را داریم.
مثال:
#include <U8glib.h> U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE); void setup () { u8g.setFont (u8g_font_timB10); Serial.begin (9600); } void loop () { Serial.println (u8g.getPrintCol ()); //حلقه رسم u8g.firstPage (); do { u8g.drawStr90(0, 00, "Digispark"); } while ( u8g.nextPage () ); delay (1000); }
drawStr90
توسط این تابع میتوان متن مورد نظر را به اندازه ۹۰ درجه در جهت عقربههای ساعت دوران دهیم و بر روی نمایشگر نشان دهیم..
ساختار :
drawStr90(u8g_uint_t x, u8g_uint_t y, const char *s)
مثال:
u8g.drawStr90(0, 0, "Digispark");
drawStr180
این تابع متن مورد نظر را ۱۸۰ درجه در جهت عقربههای ساعت دوران میدهد و سپس بر روی نمایشگر OLED نمایش میدهد.
ساختار:
drawStr180(u8g_uint_t x, u8g_uint_t y, const char *s)
مثال:
u8g.drawStr180(70, 25, "Digispark");
drawStr270
به وسیله ایین تابع میتوان متن مورد نظر را ۲۷۰ درجه در جهت عقربههای ساعت دوران داد.
ساختار:
drawStr270(u8g_uint_t x, u8g_uint_t y, const char *s)
مثال:
u8g.drawStr270(70, 60, "Digispark");
drawPixel
با استفاده از این تابع میتوان پیکسلی را در نقطهای به مختصات x و y رسم نمود.ساختار تابع به صورت زیر میباشد :
drawPixel(uint8_t x, uint8_t y)
از این تابع نیز باید در حلقه رسم استفاده شود. مثال:
#include <U8glib.h> U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE); void setup () { u8g.setFont (u8g_font_timB10); Serial.begin (9600); } void loop () { Serial.println (u8g.getPrintCol ()); //حلقه رسم u8g.firstPage (); do { u8g.drawPixel (10, 10); } while ( u8g.nextPage () ); delay (1000); }
setColorIndex
به وسیله این تابع میتوان خاموش یا روشن کردن پیکسلها را در نمایشگر OLED مشخص کرد. ساختار این تابع به صورت زیر میباشد.
setColorIndex(uint8_t color_index)
اگر مقدار یک را به تابه بدهیم به معنای روشن کردن پیکسل ، و اگر مقدار صفر را بدهیم به معنای خاموش بودن پیکسل میباشد. از این تابع برای پاک کردن پیکسلها استفاده میشود.
مثال:
#include <U8glib.h> U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE); void setup () { u8g.setFont (u8g_font_timB10); Serial.begin (9600); } void loop () { Serial.println (u8g.getPrintCol ()); //حلقه رسم u8g.firstPage (); do { u8g.setColorIndex (1); u8g.drawBox (10, 12, 20, 30); u8g.setColorIndex (0); u8g.drawPixel (28, 14); u8g.drawPixel (10, 10); } while ( u8g.nextPage () ); delay (1000); }
setRot90
setRot180
setRot270
با استفاده از این توابع میتوان نمایشگر OLED را در سه زاویه ۹۰ ، ۱۸۰ ، ۲۷۰ چزخاند.این تابع را باید خارج از حلقه رسم استفاده نمود(بهتر است درون setup برنامه نوشته شود ) . ساختار آنها همانند زیر میباشد:
setRot90() setRot180() setRot270()
برای مثال هنگام استفاده از تابع setRot90 حالت زیر به وجود میآید :
undoRotation
عملیات چرخشی ک توسط توابع فوق صورت گرفته را غیرفعال می@کند و نمایشگر به حالت عادی باز میگردد. ساختار آن مطابق قطعه کد زیر میباشد:
undoRotation()
سلام خوبید ؟
ببخشید میخواستم بدونم که اگه بخوام صفحه نمایشگر OLED رو پاک کنم از چه کدی باید استفاده کنم ؟
با سلام
ضمن تشکر از توجه شما، برای این منظور باید از تابع display.clearDisplay() باید استفاده کنید.
سلام و عرض ادب
با تشکر از زحمات شما میخواستم بدونم که این نمایشگر رو میشه با PIC و یا میکرو کنترل دیگه مثل AVR و نه توسط آردوینو راه اندازی کرد..
متشرم
با سلام و تشکر از شما
این ماژولها با هر میکروکنترلی قابل راه اندازی است. بسته به نوع پروژه پیچیدگیها و چالشهای خودش را دارد.
سلام دستوری هم وجود دارد که متن رو به صورت Mirror بنویسه؟
سلام
این مورد تست نشده است ولی میتوانید در کتابخانه تغییرات را اعمال کنید. فایل H کتابخانه را بررسی کنید.
سلام خسته نباشید
کد هارو که وارد خطا میده
u8g.firstPage();
از این دستور ایرادمیگیره
با سلام
ارور را کامل ارسال کنید تا بررسی شود.