OLEDモジュールの仕様
- 解像度/カラー:128 x 64 ピクセルで単色のものが主流
- サイズ:0.96インチ と 1.3インチ のものが主流
- インターフェース:I2C または SPI (I2Cのものが主流)
- コントローラIC:SSD1306 と SH1106 のものが主流
【通販】
SSD1306 と SH1106
- どういうわけか、0.96インチではSSD1306、1.3インチではSH1106が使われる
- どちらのICも 6800、8080、SPI、I2Cに対応しているが、多く出回っているモジュールはI2C用(4ピン) か SPI/I2C用(7ピン)
- 互換性は無い
【データシート】
ライブラリ
- Arduoino系 では Adafruit_GFX と u8glib、u8g2 がよく使われている。
- u8glib は書き方がちょっと独特。開発終了している。
- u8g2 は u8glib の後継で素直な書き方。フォントが豊富。
- u8x8 は u8g2に含まれ、文字表示のみサポート(等幅フォント、8x8マトリクス単位での位置指定)。
- Adafruit_GFX は Adafruit_SSD1306 または Adafruit_SH110x を併用する。
【参考】
Adafruit_GFXで表示できる文字数
128 x 64 ピクセルのOLEDで表示できる英数字の文字数
- setTextSize(1) なら 8行×21列 (1文字6×8ドット)
- setTextSize(2) なら 4行×10列 (1文字6×8ドットの2×2倍)
- setTextSize(4) なら 2行×5列 (1文字6×8ドットの4×4倍)
- フォント変更も可能
- 利用できるフォントは Adafruit_GFX_Library/Fonts
- FreeMono9pt7b なら行幅18ドット
- FreeMono12pt7bなら行幅24ドット
- FreeMono18pt7bなら行幅35ドット
- FreeMono24pt7bなら行幅47ドット
u8x8 で利用できるフォント
128 x 64 ピクセルのOLEDで表示できる英数字の文字数
- フォント一覧 → fntlist8x8 · olikraus/u8g2 Wiki · GitHub
- u8x8_font_chroma48medium8_r なら 8行×16列
u8g2 で利用できるフォント
参考
- 大きく見易い1.3インチ OLED (SH1106)と、ESP32の別I2Cで0.96インチにも表示する #Arduino - Qiita
- ラジオペンチ 1.3インチOLED をArduinoで使う(ライブラリの選定)
- Arduino UNO R4 OLED ディスプレイをつなぐ | それ、やってみよう!
- 電子工作 その15(OLEDディスプレイ:SSD1306の使い方)
- ArduinoでOLEDを動かす(u8g2libライブラリを使用) #oled - Qiita
- Grove Beginner KitでのArduino入門 その8 OLEDディスプレイ | Lang-ship
- Adafruit LEDBackpack で GFX のフォント比較 | HeavyMoon