صفحه 1 از 4 123 ... آخرینآخرین
نمایش نتایج: از 1 به 10 از 37
Like Tree12 لایک

موضوع: ماژول نمایشگر 128x64 oled

  1. #1
    Senior Member
    تاریخ عضویت
    Mar 2013
    محل سکونت
    Iran
    نوشته ها
    138

    Lightbulb ماژول نمایشگر 128x64 oled

    ماژول نمایشگر 128X64 OLED
    ماژول نمایشگر OLED یک نمایشگر تک رنگ 0.96 اینچی با رزولیشن 128x64 پیکسل است که به دلیل کنتراست بالا قابلیت خوانایی زیادی را برای کاربر فراهم می آورد. این ماژول نور پس زمینه را خود ایجاد کرده و فاقد Backlight می باشد که از این نظر در مقایسه با LCD باریکتر و شفافیت و کنتراست آن بیشتر است. چیپ درایور این ماژول SSD1306 است که توانایی ارتباط I2C را برای این ماژول فراهم می آورد. این ماژول را می توان در کاربرد های مختلف تجاری نظیر نمایشگر های تلفن همراه ، مدیا پلیرهای دیجیتال قابل حمل رادیو و دوربین های دیجیتال بکار برد. ولتاژ تغذیه برای این ماژول 3.3V و جریان مصرفی آن بطور میانگین 20mA می باشد. این ماژول به آسانی توسط آردینو قابل راه اندازی است.

    oled_lcd_128x64_1-500x500.jpg

    ویژگی ها
    اندازه صفحه نمایش: 0.96 اینچ
    دارای کنترلر داخلی SSD1306
    قابلیت نمایش دو رنگ آبی و زرد
    رزولیشن: 128x64
    تغذیه: 3.3V
    رابط I2C


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

    oled-64x128_fritzing_bb.jpg

    کد:
    #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); #define NUMFLAKES 10 #define XPOS 0 #define YPOS 1 #define DELTAY 2 #define LOGO16_GLCD_HEIGHT 16 #define LOGO16_GLCD_WIDTH 16 static unsigned char PROGMEM logo16_glcd_bmp[] = { B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B11111111, B00110011, B10011111, B00011111, B11111100, B00001101, B01110000, B00011011, B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000 }; #if (SSD1306_LCDHEIGHT != 64) #error("Height incorrect, please fix Adafruit_SSD1306.h!"); #endif void setup() { Serial.begin(9600); // by default, we'll generate the high voltage from the 3.3v line internally! (neat!) display.begin(SSD1306_SWITCHCAPVCC, 0x3D); // initialize with the I2C addr 0x3D (for the 128x64) // init done display.display(); // show splashscreen delay(2000); display.clearDisplay(); // clears the screen and buffer // draw a single pixel display.drawPixel(10, 10, WHITE); display.display(); delay(2000); display.clearDisplay(); // draw many lines testdrawline(); display.display(); delay(2000); display.clearDisplay(); // draw rectangles testdrawrect(); display.display(); delay(2000); display.clearDisplay(); // draw multiple rectangles testfillrect(); display.display(); delay(2000); display.clearDisplay(); // draw mulitple circles testdrawcircle(); display.display(); delay(2000); display.clearDisplay(); // draw a white circle, 10 pixel radius display.fillCircle(display.width()/2, display.height()/2, 10, WHITE); display.display(); delay(2000); display.clearDisplay(); testdrawroundrect(); delay(2000); display.clearDisplay(); testfillroundrect(); delay(2000); display.clearDisplay(); testdrawtriangle(); delay(2000); display.clearDisplay(); testfilltriangle(); delay(2000); display.clearDisplay(); // draw the first ~12 characters in the font testdrawchar(); display.display(); delay(2000); display.clearDisplay(); // draw scrolling text testscrolltext(); delay(2000); display.clearDisplay(); // text display tests display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); display.println("Hello, world!"); display.setTextColor(BLACK, WHITE); // 'inverted' text display.println(3.141592); display.setTextSize(2); display.setTextColor(WHITE); display.print("0x"); display.println(0xDEADBEEF, HEX); display.display(); delay(2000); // miniature bitmap display display.clearDisplay(); display.drawBitmap(30, 16, logo16_glcd_bmp, 16, 16, 1); display.display(); // invert the display display.invertDisplay(true); delay(1000); display.invertDisplay(false); delay(1000); // draw a bitmap icon and 'animate' movement testdrawbitmap(logo16_glcd_bmp, LOGO16_GLCD_HEIGHT, LOGO16_GLCD_WIDTH); } void loop() { } void testdrawbitmap(const uint8_t *bitmap, uint8_t w, uint8_t h) { uint8_t icons[NUMFLAKES][3]; srandom(666); // whatever seed // initialize for (uint8_t f=0; f< NUMFLAKES; f++) { icons[f][XPOS] = random() % display.width(); icons[f][YPOS] = 0; icons[f][DELTAY] = random() % 5 + 1; Serial.print("x: "); Serial.print(icons[f][XPOS], DEC); Serial.print(" y: "); Serial.print(icons[f][YPOS], DEC); Serial.print(" dy: "); Serial.println(icons[f][DELTAY], DEC); } while (1) { // draw each icon for (uint8_t f=0; f< NUMFLAKES; f++) { display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, WHITE); } display.display(); delay(200); // then erase it + move it for (uint8_t f=0; f< NUMFLAKES; f++) { display.drawBitmap(icons[f][XPOS], icons[f][YPOS], logo16_glcd_bmp, w, h, BLACK); // move it icons[f][YPOS] += icons[f][DELTAY]; // if its gone, reinit if (icons[f][YPOS] > display.height()) { icons[f][XPOS] = random() % display.width(); icons[f][YPOS] = 0; icons[f][DELTAY] = random() % 5 + 1; } } } } void testdrawchar(void) { display.setTextSize(1); display.setTextColor(WHITE); display.setCursor(0,0); for (uint8_t i=0; i < 168; i++) { if (i == '\n') continue; display.write(i); if ((i > 0) && (i % 21 == 0)) display.println(); } display.display(); } void testdrawcircle(void) { for (int16_t i=0; i<display.height(); i+=2) { display.drawCircle(display.width()/2, display.height()/2, i, WHITE); display.display(); } } void testfillrect(void) { uint8_t color = 1; for (int16_t i=0; i<display.height()/2; i+=3) { // alternate colors display.fillRect(i, i, display.width()-i*2, display.height()-i*2, color%2); display.display(); color++; } } void testdrawtriangle(void) { for (int16_t i=0; i<min(display.width(),display.height())/2; i+=5) { display.drawTriangle(display.width()/2, display.height()/2-i, display.width()/2-i, display.height()/2+i, display.width()/2+i, display.height()/2+i, WHITE); display.display(); } } void testfilltriangle(void) { uint8_t color = WHITE; for (int16_t i=min(display.width(),display.height())/2; i>0; i-=5) { display.fillTriangle(display.width()/2, display.height()/2-i, display.width()/2-i, display.height()/2+i, display.width()/2+i, display.height()/2+i, WHITE); if (color == WHITE) color = BLACK; else color = WHITE; display.display(); } } void testdrawroundrect(void) { for (int16_t i=0; i<display.height()/2-2; i+=2) { display.drawRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, WHITE); display.display(); } } void testfillroundrect(void) { uint8_t color = WHITE; for (int16_t i=0; i<display.height()/2-2; i+=2) { display.fillRoundRect(i, i, display.width()-2*i, display.height()-2*i, display.height()/4, color); if (color == WHITE) color = BLACK; else color = WHITE; display.display(); } } void testdrawrect(void) { for (int16_t i=0; i<display.height()/2; i+=2) { display.drawRect(i, i, display.width()-2*i, display.height()-2*i, WHITE); display.display(); } } void testdrawline() { for (int16_t i=0; i<display.width(); i+=4) { display.drawLine(0, 0, i, display.height()-1, WHITE); display.display(); } for (int16_t i=0; i<display.height(); i+=4) { display.drawLine(0, 0, display.width()-1, i, WHITE); display.display(); } delay(250); display.clearDisplay(); for (int16_t i=0; i<display.width(); i+=4) { display.drawLine(0, display.height()-1, i, 0, WHITE); display.display(); } for (int16_t i=display.height()-1; i>=0; i-=4) { display.drawLine(0, display.height()-1, display.width()-1, i, WHITE); display.display(); } delay(250); display.clearDisplay(); for (int16_t i=display.width()-1; i>=0; i-=4) { display.drawLine(display.width()-1, display.height()-1, i, 0, WHITE); display.display(); } for (int16_t i=display.height()-1; i>=0; i-=4) { display.drawLine(display.width()-1, display.height()-1, 0, i, WHITE); display.display(); } delay(250); display.clearDisplay(); for (int16_t i=0; i<display.height(); i+=4) { display.drawLine(display.width()-1, 0, 0, i, WHITE); display.display(); } for (int16_t i=0; i<display.width(); i+=4) { display.drawLine(display.width()-1, 0, i, display.height()-1, WHITE); display.display(); } delay(250); } void testscrolltext(void) { display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(10,0); display.clearDisplay(); display.println("scroll"); display.display(); display.startscrollright(0x00, 0x0F); delay(2000); display.stopscroll(); delay(1000); display.startscrollleft(0x00, 0x0F); delay(2000); display.stopscroll(); delay(1000); display.startscrolldiagright(0x00, 0x07); delay(2000); display.startscrolldiagleft(0x00, 0x07); delay(2000); display.stopscroll(); }
    مرجع:
    Wiring 128x32 I2C Display | Monochrome OLED Breakouts | Adafruit Learning System

    جهت سفارش این کالا، به این بخش در فروشگاه آفتاب رایانه مراجعه نمایید.
    فایل های پیوست شده فایل های پیوست شده
    ویرایش توسط hesam.time : 11-15-2013 در ساعت 05:33 PM

  2. #2
    Member
    تاریخ عضویت
    Aug 2013
    محل سکونت
    ایران
    نوشته ها
    65
    سلام
    با این سیم بندی و کد صفحه نمایش گر کار نمیکنه
    کسی این ماژول عملا استفاده کرده ؟ منم نتونستم روشن اش کنم
    ارادتمند اسلامی
    ویرایش توسط fea1845 : 02-10-2014 در ساعت 06:14 AM

  3. #3
    Junior Member
    تاریخ عضویت
    Jan 2014
    نوشته ها
    1
    با این سیم بندی و نمونه کد منم نتونستم ماژول رو را اندازی کنم.
    حتی با I2C Detector هم نتونستم ماژول رو پیدا کنم لطفا اگه کسی کد ی داره که با این ماژول کار می کنه راهنمایی کنه.
    با تشگر

  4. #4
    مدیر اصلی
    تاریخ عضویت
    Aug 2012
    محل سکونت
    ایران
    نوشته ها
    440
    نقل قول نوشته اصلی توسط MBAGHERI نمایش پست ها
    با این سیم بندی و نمونه کد منم نتونستم ماژول رو را اندازی کنم.
    حتی با I2C Detector هم نتونستم ماژول رو پیدا کنم لطفا اگه کسی کد ی داره که با این ماژول کار می کنه راهنمایی کنه.
    با تشگر
    سلام
    از کد ضمیمه این پست استفاده کنید ، در ضمن آقای اسلامی هم این رو راه انداختن امیدوارم ایشون هم راهنمایی کنند.
    فایل های پیوست شده فایل های پیوست شده
    • نوع فایل: zip OLED.zip (27.3 کیلو بایت, 192 مشاهده)

  5. #5
    Junior Member
    تاریخ عضویت
    Jan 2014
    نوشته ها
    1
    منم نتونستم این ماژول رو راه اندازی کنم هردو کد رو نیز امتحان کردم! چاره چیست؟

  6. #6
    Member
    تاریخ عضویت
    May 2013
    نوشته ها
    44
    نحوه اتصال ماژول به برد Arduino Uno

    128x64oled1.jpg

    کتابخانه مخصوص این ماژول تست شده توسط خودم

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

  7. #7
    Junior Member
    تاریخ عضویت
    Jul 2014
    نوشته ها
    14
    سلام. من این نمایشگر رو راه اندازی کردم. نمایشگر خیلی خیلی خوبیه. اول با یه مدل از adafruit اشتباه گرفته بودمش و نمیتونستم باهاش کار کنم که بعد متوجه شدم این اون مدل نیست و حلش کردم. برای کار باهاش هم از u8glib استفاده میکنم. فقط چند تا سوال دارم در موردش:
    ۱- کتاب خونه بهتر از اینی که استفاده میکنم هم داریم براش؟
    ۲- روشی برای نمایش صحیح و کامل فارسی روی این نمایشگر وجود داره؟
    ۳- این ماژول تک رنگه؟ فقط سفیده؟ اگه نیست، روش استفاده از رنگ های دیگه اش چطوریه؟ چون یکی دو جا دیده بودم که رنگ زرد و آبی و اینا هم داشت. شاید مدل مشابه بوده. -ـ-
    ویرایش توسط MaMaL : 07-17-2014 در ساعت 11:30 AM
    لایک کردن

  8. #8
    Member
    تاریخ عضویت
    Apr 2014
    محل سکونت
    ایران
    نوشته ها
    40
    نقل قول نوشته اصلی توسط MaMaL نمایش پست ها
    سلام. من این نمایشگر رو راه اندازی کردم. نمایشگر خیلی خیلی خوبیه. اول با یه مدل از adafruit اشتباه گرفته بودمش و نمیتونستم باهاش کار کنم که بعد متوجه شدم این اون مدل نیست و حلش کردم. برای کار باهاش هم از u8glib استفاده میکنم. فقط چند تا سوال دارم در موردش:
    ۱- کتاب خونه بهتر از اینی که استفاده میکنم هم داریم براش؟
    ۲- روشی برای نمایش صحیح و کامل فارسی روی این نمایشگر وجود داره؟
    ۳- این ماژول تک رنگه؟ فقط سفیده؟ اگه نیست، روش استفاده از رنگ های دیگه اش چطوریه؟ چون یکی دو جا دیده بودم که رنگ زرد و آبی و اینا هم داشت. شاید مدل مشابه بوده. -ـ-
    سلام، دوستان میتونن بگن چطور راه اندازیش کردن؟ و نحوه ی سیم بندیش چطوریه؟ چون دو حالت مختلف گفته شده! ولی هیچ کدوم کار نمیکنه!!!

  9. #9
    Member
    تاریخ عضویت
    Apr 2014
    محل سکونت
    ایران
    نوشته ها
    40
    نقل قول نوشته اصلی توسط romeo82ir نمایش پست ها
    سلام، دوستان میتونن بگن چطور راه اندازیش کردن؟ و نحوه ی سیم بندیش چطوریه؟ چون دو حالت مختلف گفته شده! ولی هیچ کدوم کار نمیکنه!!!
    سلام دوستان، همانطور که کاربر محترم MaMaL گفته بود، با کتابخانه ی u8glib کار میکنه، و نحوه سیم بندیش هم باید به پین های A4 و A5 وصل بشه یا همون دوتا پورت پایین دکنه ریست. فقط یادتون نره وقتی که از مثال هاش دارید استفاده میکنید گزینه ی (U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE را از کامنت بودن خارج کنید یعنی این کاراکتر // را حذف کنید.
    برای تغییر رنگش من نتونستم کاری کنم، ولی فکر کنم پشت برد دو تا مقدار نوشته یکی 0x7a و 0x7b که با اینا بشه رنگشو تغییر داد. یعنی تو کد نویسی از این آدرسها استفاده کنیم شاید بشه!!!

  10. #10
    Junior Member
    تاریخ عضویت
    Jul 2014
    نوشته ها
    14
    نقل قول نوشته اصلی توسط romeo82ir نمایش پست ها
    سلام دوستان، همانطور که کاربر محترم MaMaL گفته بود، با کتابخانه ی u8glib کار میکنه، و نحوه سیم بندیش هم باید به پین های A4 و A5 وصل بشه یا همون دوتا پورت پایین دکنه ریست. فقط یادتون نره وقتی که از مثال هاش دارید استفاده میکنید گزینه ی (U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE را از کامنت بودن خارج کنید یعنی این کاراکتر // را حذف کنید.
    برای تغییر رنگش من نتونستم کاری کنم، ولی فکر کنم پشت برد دو تا مقدار نوشته یکی 0x7a و 0x7b که با اینا بشه رنگشو تغییر داد. یعنی تو کد نویسی از این آدرسها استفاده کنیم شاید بشه!!!
    خوشحالم مشکلتون حل شد. اتصالات برای تمامی بردها مشابه هستش. SCL و SDA رو به پایه*های SCL و SDA بردتون وصل میکنید، ولتاژ و زمین هم همینطور، بعدش با استفاده از u8glib میتونید براحتی از نمایشگر استفاده کنید. فقط مشکل فارسی همچنان هستش. نمیدونم کسی راهی برای حلش سراغ داره یا نه. خودم هم هنوز وقت نکردم بخوام رو فونت و نوشتارش و کلا درک سیستمش کار کنم. اگه فرصت کنم شاید بتونم یکم بهترش کنم.

    برای تغییر رنگ، من که تا به حال نتونستم. کسی اگه تونسته باشه، ممنون میشم که به اشتراک بذاره.

صفحه 1 از 4 123 ... آخرینآخرین

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO