今まで使ったOLEDは0.96インチの製品。ちょっと大きめ1.3インチのOLEDを評価するため、一個購入して見る。WeMosがターゲット、直結できると考えて、適したピン配列を注文、その通りのぐつが届いた。
そのまま差し替えて動くと思ったけど、表示が乱れ、調べってみったら、1.3インチの製品は、SH1106というチップ使い、対応するドライバーは必要。
ArduinoのLibから検索すると、3点がヒット、簡単そうな一個が動かない、動いたのは複雑そうなU8g2でした。
このU8g2ライブラリは、SCLとSDAの差し替えてできないみたい、結局直結できなく、ジャンパーで繋ぐ 初期化コマンドで、SCL、SDA対応するGPIO変更可能。また対応するSSDは多数なので、根気よく対応する定義を見つけ、今回の件はSH1106のI2Cを使用してコンパイル。
一応表示ができた。
/* HelloWorld.ino Universal 8bit Graphics Library (https://github.com/olikraus/u8g2/) Copyright (c) 2016, olikraus@gmail.com All rights reserved. */ #include <Arduino.h> #include <U8g2lib.h> #ifdef U8X8_HAVE_HW_SPI #include <SPI.h> #endif #ifdef U8X8_HAVE_HW_I2C #include <Wire.h> #endif U8G2_SH1106_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); void setup(void) { u8g2.begin(); } void loop(void) { u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_ncenB08_tr); // choose a suitable font u8g2.drawStr(0,10,"Hello World!"); // write something to the internal memory u8g2.sendBuffer(); // transfer internal memory to the display delay(1000); }