[ESP32-EVB][esp-idf][I2C] OLED ssd1306 で文字を表示してみる

I2C OLED1306の表示をテストしてみたいと思います。

Olimex ESP32-EVBのESP32ボードを利用してespressif/esp-idfで開発して行きます。

まずは、ESP32-EVBのI2Cについて確認してみます。

UEXTの端子 5,6 がI2Cとして使えるようです。
2.2kで外付けのプルアップ抵抗も確認出来ます。
GPIO16/I2C-SCK
GPIO13/I2C-SDA

OLED1306はメジャーなOLED液晶なので、
Githubでライブラリーを探してみる事にします。

yanbe/ssd1306-esp-idf-i2c: Sample code for driving 128×64 OLED display (SSD1306 driver) via ESP-IDF’s I2C master driver

yanbe/ssd1306-esp-idf-i2cを試してみたいと思います。

ESP32-EVBのシリアルポートを確認します

/dev/tty.wchusbserial1410
である事が確認出来ます。

makeの設定をします

コンパイルしたプログラムを書き込むためのESP32-EVBのシリアルポートを設定します。

サンプルプログラムを開いて I2C のピンの設定を変更します。

に変更します。

実際に表示するプログラムから点滅やスクロールをコメントアウトして
単純に文字を表示するだけにします。

コンパイルを行い ESP32-EVBにプログラムを書き込みます。

ssd1306に文字が表示される事が確認できます。

esp32-evb-ssd1306

文字が表示されない場合はi2cのアドレスを確認します。

デフォルトでは
0x78 でプログラム上では、0x3Cと記載します。
0x7Aの場合 プログラム上では、0x3Aと記載します。

ssd1366.h

アドレスについては以下のページが参考になります。
I2C 極小 OLED( 有機EL ) SSD1306 をスクロールさせたり、もうちょっと深堀りしてみました
ArduinoでOLEDディスプレイを試す – Qiita

このライブラリーではFontは8×8ドット英語のみになります。
ssd1306-esp-idf-i2c/main/font8x8_basic.h

投稿者: yoshimax

Software Engineer #Unity #iOS