راه اندازی OLED 7 PIN با آردوینو

سلام خدمت دانش پژوهانی که تا اینجا ما را همراهی کردن در این قسمت می خواهیم با هم به راه اندازی OLED 7PIN با آردوینو  بپردازیم

بیشتر ما با نمایشگر LCD ماتریس 16 × 2 نقطه ای که در بیشتر پروژه ها برای نمایش برخی اطلاعات به کاربر استفاده می شود ، آشنا هستیم. اما این نمایشگرها LCD محدودیت زیادی در کارهایی که می توانند انجام دهند دارند. در این آموزش قصد داریم با نمایشگرهای OLED و نحوه استفاده از آنها با Arduino آشنا شویم. انواع مختلفی از نمایشگرهای OLED در بازار موجود است.

در پروژه های آردوینو نیاز داریم تا برای نمایش برخی اطلاعات و یا کمیت های اندازه گیری شده از نمایشگر استفاده کنیم. به همین جهت  شما را با نحوه راه اندازی و برنامه نویسی نمایشگرهای گرافیکی (OLED) آشنا کنیم.

 

وسایل مورد نیاز برای راه اندازی OLED 7 PIN با آردوینو:

 

[icon name=”tablet-alt” style=”solid” class=”” unprefixed_class=””] یک عدد برد آردوینو UNO

[icon name=”tablet-alt” style=”solid” class=”” unprefixed_class=””] یک عدد( OLED 7 PIN(SPI/I2C

[icon name=”tablet-alt” style=”solid” class=”” unprefixed_class=””] تعدادی سیم برد برد

[icon name=”tablet-alt” style=”solid” class=”” unprefixed_class=””] یک عدد کابل USB پرینتر

 

[icon name=”infinity” style=”solid” class=”” unprefixed_class=””] دقت داشته باشید که برای راه اندازی OLED 7 PIN با آردوینو  باید از تغذیه( +3v) استفاده نماییم.

نمای OLED:

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

دلیل استفاده بیشتر از  oled:

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

در این پروژه هدف ما نمایش متن متحرک بر روی ماژول نمایشگر OLED با پروتکل SPI و I2C می باشد.

 

شمای oled:

راه اندازی OLED 7 PIN باآردوینو

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

قبل از شروع کار با نمایشگر OLED خود، اطمینان حاصل کنید که نمایشگر شما در کدام دسته قرار می گیرد. در اینجا ما یک صفحه نمایش OLED 7 پین SSD1306 0.96 ”مونوکروم استفاده کرده ایم. این نوع نمایشگر می تواند روی سه پروتکل مختلف ارتباطی مانند حالت SPI 3 Wire ، SPI چهار سیم و حالت IIC کار کند. حالت 4 سیم SPI سریعترین حالت ارتباطی و حالت پیش فرض است.

برای اینکه چیزی در صفحه OLED ظاهر شود ، با IC SSD1306 موجود در ماژول OLED ارتباط برقرار می کنیم. سپس این SSD1306IC هر پیکسل موجود در صفحه نمایش OLED ما را به روز می کند.

این ارتباط می تواند از طریق IIC یا SPI از طریق هر میکروکنترلری مانند Arduino ، PIC و غیره اتفاق بیفتد. برای برقراری ارتباط با یک IC از طریق هر یک از پروتکل های ارتباطی ، ابتدا باید IC را با خواندن صفحه داده آن درک کنیم.در اینجا ما  با Arduino ارتباط برقرار کرده ایم.

نحوه اتصال سیم های OLED 7 PINبه آردوینو :

راه اندازی OLED 7 PIN با آردوینو

جدول اتصالات :

[su_table responsive=”yes”]

آردوینو OLED
+3V VCC
GND GND
8 RES
9 DC
11 D1
13 D0

[/su_table]

نمای آردوینو:

راه اندازی OLED 7 PIN باآردوینو (2)

در این قسمت به آشنایی دستورات می پردازیم

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 #include <SPI.h>

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

مانند کد زیر:

#include <SPI.h>

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

#define OLED_MOSI   9

در این قسمت ما پایه های lcd  را به آردوینو معرفی کرده ایم و در خط های بعدی هم همینطور

مانند کد زیر:

#define OLED_MOSI   9

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

در این دستور ما نام پایه های lcd  را معرفی کرده ایم

مانند کد زیر:

Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

define LOGO16_GLCD_HEIGHT 16#:

ما در این دستور یک فرم 16 بیتی برای کاراکتر هایمان تعریف کرده ایم

مانند کد زیر:

#define LOGO16_GLCD_HEIGHT 16

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

static const unsigned char PROGMEM logo16_glcd_bmp[] =

در این دستور ما کد کاراکترهایی که می خواهیم نمایش داده شود را وارد کرده ایم

مانند کد زیر:

static const unsigned char PROGMEM logo16_glcd_bmp[] =

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

#define SSD1306_LCDHEIGHT 64

ما در این دستور فرم 64 بیتی lcd  را تعریف کرده ایم

مانند کد زیر:

#define SSD1306_LCDHEIGHT 64

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

if (SSD1306_LCDHEIGHT) != 64

دستور را در شرط قرار داده ایم

مانند کد زیر:

#if (SSD1306_LCDHEIGHT != 64)

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.begin(SSD1306_SWITCHCAPVCC);

نمایش نوع lcd  برای مقدار ولتاژ تغذیه lcd

مانند  کد زیر:

  display.begin(SSD1306_SWITCHCAPVCC);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.display();

این دستور برای نمایش می باشد

مانند کد زیر:

  display.display();

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 delay(2000);

این دستور برای زمان تاخیر می باشد

مانند کد زیر:

  delay(2000);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 display.clearDisplay();

این دستور برای پاک کردن دستورات بالا می باشد

مانند کد زیر:

  display.clearDisplay();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.drawPixel(10, 10, WHITE);

دستور کشیدن پیکسل (10و10ورنگ سفید)می باشد

مانند کد زیر:

  display.drawPixel(10, 10, WHITE);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  testdrawline();

کشیدن تعدادی خطوط می باشد

مانند کد زیر:

testdrawline();

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 testdrawrect();

این دستور برای کشیدن مستطیل می باشد

مانند کد زیر:

testdrawline();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

testfillrect();

این دستور برای کشیدن مستطیل پر است

مانند کد زیر:

 testfillrect();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 testdrawcircle();

این دستور برای کشیدن دایره می باشد

مانند کد زیر:

testdrawcircle();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.fillCircle(display.width()/2, display.height()/2, 10, WHITE);

کشیدن یک دایره پر (عرض)/(ارتفاع)/(رنگ سفید) به شعاع 10 پیکسل رسم کند

مانند کد زیر:

  display.fillCircle(display.width()/2, display.height()/2, 10, WHITE);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

testdrawroundrect();

کشیدن دایره رکت

مانند کد زیر:

 testdrawroundrect();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 testfillroundrect();

کشیدن دایره پر رکت

مانند کد زیر:

  testfillroundrect();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 testdrawtriangle();:

این دستور برای کشیدن مثلث می باشد

مانند کد زیر:

  testdrawtriangle();

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  testfilltriangle();

دستور کشیدن مثلث پر

مانند کد زیر:

testfilltriangle();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  testdrawchar();

کشیدن کاراکتر مورد نظر

مانند کد زیر:

testdrawchar();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 testscrolltext();

کشیدن نوشته

مانند کد زیر:

testscrolltext();

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.setTextSize(1);

نمایش سایز نوشته مورد نظرمان

مانند کد زیر:

display.setTextSize(1);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.drawBitmap(30, 16,  logo16_glcd_bmp, 16, 16, 1);

کشیدن بیت مپ (لوگو مشخص شده )

مانند کد زیر:

display.drawBitmap(30, 16,  logo16_glcd_bmp, 16, 16, 1);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.invertDisplay(true);

صفحه نمایش در حال چرخش

مانند کد زیر:

 display.invertDisplay(true);

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

while (1):

حلقه ما برای کشیدن بیت مپ در محور x وy

مانند کد زیر:

  while (1)

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  if (i == ‘n’) continue;

شرط ما برای یک کاراکتر که  یک خط کاراکتر را پایین بیندازد

مانند کد زیر:

  if (i == 'n') continue;

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

دستور display.write(i);

نوشتن نوشته مورد نظر

مانند کد زیر:

display.write(i);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.println();

پرینت نوشته مورد نظر

مانند کد زیر:

      display.println();

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

   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.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);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  if (color == WHITE) color = BLACK;

شرط برای رنگ هایمان

مانند کد زیر:

if (color == WHITE) color = BLACK;

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.setTextColor(WHITE);

این دستور برای نمایش تنظیم رنگ نوشته مان می باشد(سفید)

مانند کد زیر:

  display.setTextColor(WHITE);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 display.setCursor(10,0);

تنظیم مکان نوشته ما

مانند کد زیر:

 display.setCursor(10,0);

 

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

 display.println(“test”);

پرینت نوشته مورد نظر

مانند کد زیر:

display.println("test");

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

display.startscrollright(0x00, 0x0F);

شروع نمایش کاراکتر های مشخص ما از سمت راست

مانند کد زیر:

  display.startscrollright(0x00, 0x0F);

 

[icon name=”circle-o” class=”” unprefixed_class=””]دستور:

  display.stopscroll();

توفق کردن نوشته

مانند کد زیر:

 display.stopscroll();

 

سورس کامل برنامه:

[vc_row][vc_column][vc_message message_box_color=”pink” icon_fontawesome=”fa fa-cloud-download”]برای دانلود کامل برنامه و فایل های پروژه به صورت رایگان به پایین صفحه مراجعه کنید.[/vc_message][/vc_column][/vc_row]

//در این قسمت ما کتابخانه های مورد نظرمان رامعرفی کرده ایم
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

//در این قسمت ما پایه های lcd  را به آردوینو معرفی کرده ایم
#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13
// در این قسمت ما نام پایه های lcd را معرفی کرده ایم
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
//ما در این دستور یک فرم 16 بیتی برای کاراکتر هایمان تعریف کرده ایم
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH  16 
//در این دستور ما کد کاراکتر هایی که می خواهیم نمایش داده شود را وارد کرده ایم
static const 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 };
//ما در این دستور فرم 64 بیتی lcd  را تعریف کرده ایم
#define SSD1306_LCDHEIGHT 64
//شرط قرار دادن ما
#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup()   {                
  Serial.begin(9600);
  //نمایش نوع lcdبرای مقدار ولتاژتغذیهlcd
  display.begin(SSD1306_SWITCHCAPVCC);
  //نمایش دادن
  display.display();
  //زمان تاخیر
  delay(2000);
  //پاک کردن نوشته
  display.clearDisplay();
  //کشیدن پیکسل(10و10و سفید)
  display.drawPixel(10, 10, WHITE);
  display.display();
  delay(2000);
  display.clearDisplay();
  //کشیدن تعدادی خطوط
  testdrawline();
  display.display();
  delay(2000);
  display.clearDisplay();
  //کشیدن مستطیل
  testdrawrect();
  display.display();
  delay(2000);
  display.clearDisplay();
  //کشیدن تعدادی مستطیل پر
  testfillrect();
  display.display();
  delay(2000);
  display.clearDisplay();
 //کشیدن دایره
  testdrawcircle();
  display.display();
  delay(2000);
  display.clearDisplay();

  //کشیدن یک دایره پر (عرض)/(ارتفاع)/(رنگ سفید)به شعاع 10 پیکسل رسم کند
  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();
  // کشیدن کاراکتر ها 
  testdrawchar();
  display.display();
  delay(2000);
  display.clearDisplay();
  // کشیدن نوشته ها
  testscrolltext();
  delay(2000);
  display.clearDisplay();
  //نمایش سایز تست ها 
  display.setTextSize(1);
  display.clearDisplay();

  //کشیدن بیت مپ (لوگو مشخص شده)
  display.drawBitmap(30, 16,  logo16_glcd_bmp, 16, 16, 1);
  display.display();
  // صفحه نمایش در حال چرخش
  display.invertDisplay(true);
  delay(1000); 
  display.invertDisplay(false);
  delay(1000); 
  display.clearDisplay();
  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];
  // شرط ما در محور x و y
  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);
  }
//حلقه ما برای کشیدن بیت مپدر محور x و y
  while (1) {
    for (uint8_t f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, WHITE);
    }
    display.display();
    delay(200);
    
    // شرط بیت مپ ما
    for (uint8_t f=0; f< NUMFLAKES; f++) {
      display.drawBitmap(icons[f][XPOS], icons[f][YPOS], bitmap, w, h, BLACK);
      //حرکت y 
      icons[f][YPOS] += icons[f][DELTAY];
      // کشیدن دوباره آن
      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);
  //مکان نمایش آن در محور lcd
  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) {
    // رنگ های متناوب
    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) {
  //نمایش تنظیم سایز نوشته(2)
  display.setTextSize(2);
  //نمایش تنظیم رنگ نوشته (سفید)
  display.setTextColor(WHITE);
  //نمایش تنظیم مکان (0و10)
  display.setCursor(10,0);
  //نمایش پاک کردن نوشته
  display.clearDisplay();
  //پرینت جمله مورد نظر
  display.println("test");
  //نمایش دادن
  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();
}

 

 

نتیجه:

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

با استفاده از  ماژول نمایشگر OLED با پروتکل SPI و I2C می توانید ساعت و یا تصاویر و اشکال مختلف متحرک  بسازیم.

 

خب اینم از آموزش امروز امیدوارم که لذت برده باشید و پروژه  های مختلفی رو با این ماژول  بسازید و فیلمشو روی صفحه اینستگرام خودتون بزارید ، مارو تگ کنید و کپن تخفیف از ما بگیرید.

راستی یادتون نره ، حتما به اینستاگرام ماهم سربزنید

 

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل و شماره موبایل خود را در کادر زیر وارد کنید:
تعداد علاقه مندانی که تاکنون عضو خبرنامه ما شده اند: 0 نفر
دیدگاه

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

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