部品箱を漁っていたら出てきた小さなディスプレイモジュール。
裏面を見るとIIC ADDRESS SELECTとか書いてあって、0x78と0x7Aが選択できるようになっていて、これに騙された…(ここ注意!0x78は0x3Cになるらしい。)
型番とかわからないので、「1インチ i2c 液晶」で検索したらAmazonで違う商品が出たが、関連商品に4ピンのものを発見したので、それと思って「0.96インチ oled i2c」で検索しなおしたら、このページを発見。
https://programresource.net/2015/05/09/2616.html
早速、Arduino IDEでAdafruit SSD1306のライブラリをインストール。
まずはArduino IDEの「ツール」メニューから「ライブラリを管理…」を選択。
ライブラリマネージャで「adafruit ssd1306」を検索というかフィルタリング。(この図は既にインストールしちゃった後の図なので、インストールボタンの位置とか違っています。)
そして、インストール。
Arduinoの5V, GND, A4, A5にそれぞれ赤, 茶, 黄, オレンジをつないで、OLED側のGND, VCC, SCL, SDAに茶, 赤, オレンジ, 黄をつないだ。
I2Cアドレスが最初は0x3C(これで正しかった)になっていたのを0x78に書き換えて走らせるけど動かない…Adafruit SSD1305のライブラリとかインストールしたりしたけど、動かない…困って検索していたらこのページを見つけた。
https://programresource.net/2020/02/20/2891.html
早速、i2c_scannerをコピペして実行すると、0x3Cに見つかった…
最初のサンプルのI2Cアドレスを0x3Cに戻して実行すると、すんなりと動いた…
追記
Amazonの商品説明のところに、「I2Cアドレスが変更可能:0x78に接続すると、0x3Cになります:0x7Aに接続すると、0x3Dになります」って書いてあった…
追記2
3年近く前に記事を書いていた。当時もAdafruit SSD1306ライブラリで動かせなかったようで、この時もI2Cアドレスを間違えていたのかも知れない。
https://physicom.ossantube.com/?p=6135