[Arduino] OLEDで表示する

液晶ディスプレイは、16×2で、非常に古風な上、配線が面倒でした。
そこで、OLED(有機液晶)を使っていきたいと思います。
最近では、家電やスマホでも普及してきましたが、自発光型で、見やすいのが特徴です。

などの商品ですね。I2C通信の方を選んでください。
接続はシンプルです。
OLED-UNO
SCL -SCL
SDA -SDA
VCC -5V
GND -GND

次に、ライブラリを入れます。
[スケッチ]-[ライブラリのインクルード]-[ライブラリの管理]を開き
検索に「Adafruit」と入力し、
「Adafruit SSD1306」と「Adafruit GFX Library」をインストールします。

こちらの商品は、互換品なので、そのままでは動かないと思います。
裏面を見て、I2Cのアドレスがあります。アドレスの調べ方はこちら

0x3cならば、

Adafruit_SSD1306.hを開いて、以下を変更します。

#define SSD1306_I2C_ADDRESS 0x3C // 011110+SA0+RW - 0x3C or 0x3D

サンプルファイルを開きます。
[スケッチ例]-[Adafruit SSD1306]-[ssd1306_128x64_i2c]
こちらもアドレスを変更します。

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)

コンパイルして、書き込むと、Adafruitのロゴやデモが出るかと思います。

このOLEDは上部と下部とで色が違うバージョンです。同一でも、上部と下部の間に若干隙間があります。

SPIの場合

https://ht-deko.com/arduino/oled_spi.html

より、
OLED – UNO
GND – GND
VCC – 3V3
D0 – 10
D1 – 9
RST – 13
DC – 11
CS – 12

で接続すればうまくいくはずです。