Sebelumnya beli display OLED dengan interface I2C, yang memiliki 4 jalur/interface untuk koneksi ke Arduino. Untuk menghubungkannya ke Arduino tidak rumit, banyak referensi bertebaran di internet. Karena rusak 😭, akhirnya coba beli OLED display lagi, dan kali ini barang yang datang memiliki 6 jalur/interface, tanpa pin CS, yang sepertinya produk versi awal dari Heltec[1]. Untuk wiringnya agak susah nyari referensinya (atau saya yang mungkin kurang telaten 😀 ) karena kebanyakan tutorial yang ada di internet, OLED displaynya, memiliki pin CS. Post ini adalah dokumentasi bagaimana menghubungkan (wiring) OLED display dengan interface SPI ke Arduino NANO[2].

OLED Display (SPI) Arduino NANO
GND GND
VCC 3.3 - 5V
SCL D13
SDA D11
RST D8
D/C D9

Library yang saya guanakan adalah U8glib. Berikut adalah contoh source code dari menu ‘example’ library U8glib, yang menampilkan teks ‘Hello Ishaq!’.

#include "U8glib.h"

U8GLIB_SSD1306_128X64 u8g( 13, 11, 10, 9, 8 );

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( 0, 22, "Hello Ishaq!");
}

void setup(void) {
  // flip screen, if required
  // u8g.setRot180();
  
  // set SPI backup if required
  //u8g.setHardwareBackup(u8g_backup_avr_spi);

  // assign default color value
  if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
    u8g.setColorIndex(255);     // white
  }
  else if ( u8g.getMode() == U8G_MODE_GRAY2BIT ) {
    u8g.setColorIndex(3);         // max intensity
  }
  else if ( u8g.getMode() == U8G_MODE_BW ) {
    u8g.setColorIndex(1);         // pixel on
  }
  else if ( u8g.getMode() == U8G_MODE_HICOLOR ) {
    u8g.setHiColorByRGB(255,255,255);
  }
  
  pinMode(8, OUTPUT);
}

void loop(void) {
  // picture loop
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );
  
  // rebuild the picture after some delay
  //delay(50);
}


Foto produk dan hasil percobaan:

Referensi:
[1] http://www.heltec.cn/download/OLED_Sepecification.pdf
[2] http://forum.arduino.cc/index.php?topic=300763.0