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