【ESP32】I2Cシリアル 128×64 OLED LCDの動作確認【SSD1306】

・aliexpressで購入したI2Cシリアル 128×64 OLED LCD(参考
Amazon:KKHMF ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetooth
・Arduino IDE v1.8.8
で確認しました

表示できた

初期不良を調べるために、簡単なプログラムで表示できることだけ確認。

初めは、Adafruit_SSD1306を使おうと思ったんだけどうまくいかなかったので、路線変更。表示できることさえ確認できれば良いので・・。

上下逆のような?!

2つ購入して2つとも上下逆に表示されるし、不良とは考えられないのでライブラリーかな?ということで、ライブラリーのほうを少し書き換えたら、上下反転できました。

\Arduino\libraries\ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display\srcのOLEDDisplay.hの一部を書き換えます。

//#define COMSCANDEC 0xC8
//#define COMSCANINC 0xC0
#define COMSCANDEC 0xC0
#define COMSCANINC 0xC8
//#define SETCOMPINS 0xA0
#define SETCOMPINS 0xA1
//#define SETSEGMENTREMAP 0xA1
#define SETSEGMENTREMAP 0xA0

3か所書き換えます。そうすると、画像のように上下反転します。

修正方法が正しいかどうかは不明なんですが、SSD1306に、上下、左右反転する機能がついてるのは確かのようです。

この修正はなくても、1枚目の写真のように表示されるので、とりあえずスルーでよいかと思います。

参考:

0xA0 / 0xA1 : カラムアドレス0位置の指定
通常(カラムアドレス0が左端)
$ i2cset -y 1 0x3c 0x00 0xa0 i

左右逆転(カラムアドレス0が右端)
$ i2cset -y 1 0x3c 0x00 0xa1 i


0xC0 / 0xC8 : ページ0位置の指定
通常(ページ0は上端)
$ i2cset -y 1 0x3c 0xc0 i
上下逆転(ページ0は下端)
$ i2cset -y 1 0x3c 0xc8 i
上下逆転
OLED 0.96インチで遊ぶ ~その2~ - LSI Jiu-Jitsu

#SSD1306_SETCOMPINS = 0xDA
SSD1306_SETCOMPINS = 0xA0
#SSD1306_COMSCANDEC = 0xC8
SSD1306_COMSCANDEC = 0xC0
Adafruit SSD1306 library for Python (rotate)上下逆転 – しおそると

接続

OLED   ESP32
GND <=> GND
VCC <=> VIN (5V)
SCL <=> D22
SDA <=> D21

参考:ESP32 Arduino: Interacting with a SSD1306 OLED display – techtutorialsx

左側:0x78 右側:0x7A

接続先I2Cアドレス
0x78側に接続されている0x3C
0x7A側に接続されている0x3A

参考:ArduinoでOLEDディスプレイを試す - Qiita

写真の場合は、0x3Cになります。

ライブラリの導入

ESP8266_and_ESP32_Oled_Driver_for_SSD1306_display

ArduinoIDEの「スケッチ」=> 「ライブラリをインクルード」 => 「ライブラリを管理…」から導入します。「esp32 ssd1306」で検索して、上記のライブラリーを導入

動作確認用のスケッチ

#include <Wire.h>
#include "SSD1306.h"
 
SSD1306  display(0x3c, 21, 22); // I2Cアドレス,SDA,SCL
 
void setup() {
  display.init();  
  display.setFont(ArialMT_Plain_16);
  display.drawString(0, 0, "Hello World");
  display.display();  
}
 
void loop() {}

参考:
ESP32 Arduino: Interacting with a SSD1306 OLED display – techtutorialsx
ESP32 Arduino SSD1306: Changing font size – techtutorialsx

スポンサーリンク
コメント一覧
  • 名前:管理人 :

    コメントは、まだありません。