ESP-WROOM-02でOLED(有機EL) SSD1306が動作しない

こんばんは、よつばです。

===
本件、解決しました。(2018/03/15)
解決記事は、こちら -> ESP-WROOM-02 (ESP8266)で有機EL SSD1306を表示する)
コメントで情報くださった方、ありがとうございました。
===

今日はうまくいかなかった話をしたいと思います。
ESP-WROOM-02(ESP8266)で、128×64ドットのOLED(有機ELディスプレイ) SSD1306に文字を表示させようとしたのですが、画面がうまく表示できず詰まっています。

以下の写真のように、画面にはドットが表示されるのですが、表示したい文字にはなりませんでした。

ここから、やったことを記していきます。

準備

Arduino IDEでスケッチ -> ライブラリをインクルード -> ライブラリを管理から「Adafruit SSD1306」で検索し、バージョン1.1.2をインストールしました。

  • SDAピンとしてGPIOの4に接続
  • SCLピンとしてGPIOの5に接続
  • VccにESP-WROOM-02の3.3Vを接続
  • GNDにESP-WROOM-02のGNDを接続

GPIOの設定として、SDAとSCLを何番に設定しているかをソース中で書いてないように見えて、どこかで設定するのではないかと思うのですが、デフォルトは4と5を使用しているとの記載も見たため、そのままにしています。

ただ、OLED_RESETが4になっていたので、これを2に変更しました。

OLEDの裏面は、0x78にハンダづけされていました。したがって、display.beginは0x78>>1 (= 0x3C)としました。

ソースコード

ここを参考にしました。

Arduino > OLED > adafruitライブラリ
https://qiita.com/sugasaki/items/7df0fec82b232c41c2d2

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 2
Adafruit_SSD1306 display(OLED_RESET);

void setup() {
 Serial.println("Setup Start");
 Serial.begin(9600);
 display.begin(SSD1306_SWITCHCAPVCC, 0x78>>1);
 Serial.println("Clear Display");
 display.clearDisplay(); // Clear the buffer.
 Serial.println("Setup End");
}
 
void loop() {
 Serial.println("Loop");
 display.setTextSize(1);
 display.setTextColor(WHITE);
 display.setCursor(0,0);
 display.println("Hello");
 display.display();
 delay(2000);
}

ヘッダーファイルの編集

Arduinoフォルダ -> libraries -> Adafruit_SSD1306 -> Adafruit_SSD1306.h を以下のように編集しました。   

変更前

// #define SSD1306_128_64
 #define SSD1306_128_32

変更後

#define SSD1306_128_64
// #define SSD1306_128_32

まとめ

現在、ESP-WROOM-02に有機EL SSD1306を接続したが、画面に文字を表示できない状態でした。

参考文献

  • Arduino > OLED > adafruitライブラリ
    https://qiita.com/sugasaki/items/7df0fec82b232c41c2d2

  • ArduinoでOLEDディスプレイに色々表示する
    https://qiita.com/jakalada/items/793a6cf5ff2796db4e86

  • ssd1306_128x64_i2c.ino
    https://github.com/adafruit/Adafruit_SSD1306/blob/master/examples/ssd1306_128x64_i2c/ssd1306_128x64_i2c.ino

  • BME280とOLEDをESP-WROOM-02で使ってみた
    https://jiwashin.blogspot.jp/2016/01/bme280-oled-and-esp-wroom-02.html

4 Replies to “ESP-WROOM-02でOLED(有機EL) SSD1306が動作しない”

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です