SSD1306のメモ

参考

単色OLEDモジュールを使う(SSD1306 / I2C) | たまねぎブログ

Arduino > OLED > adafruitライブラリ #Arduino - Qiita

電子工作 その15(OLEDディスプレイ:SSD1306の使い方)

OLED ディスプレイ SSD1306 (I2C) を使ってみる(Arduino) | 篠ん爺のさんぽ道 (遊び心の旅)

SSD1306の公式ライブラリ

GitHub - adafruit/Adafruit_SSD1306: Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs

製品情報

SSD1306にはI2CモデルとSPIモデルがある。購入したのはI2Cモデル

Amazon.co.jp: VKLSVAN 2個 0.96" iic i2c ホワイトOLEDモジュール128×64 OLED LCDディスプレイArduinoに対応 : 産業・研究開発用品

Arduino IDEで使う場合

次のライブラリをArduino IDEでインストールする

Adafruit_GFX_Library
Adarfuit_SSD1306

I2Cアドレスは0x3Cらしい。基盤の裏の抵抗を取り除けば0x3dとして使えるとのこと。

接続はVCCを3.3Vにつなぐこと。5Vでも動くっぽい。 SCL,SDAはArduino Unoの場合はSCL,SDAの代わりにA5,A4につないでもよい。

Hello Worldを表示させるスケッチ

専用のクラスがあるので、それを利用する。

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

#define SCREEN_WIDTH 128 
#define SCREEN_HEIGHT 64 
#define OLED_RESET -1 

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // ここにI2Cアドレスを設定
  display.begin(SSD1306_SWITCHCAPVCC,0x3C); 
  display.setTextColor(WHITE);  
  display.setTextSize(1);
  display.clearDisplay();
  display.clearDisplay(); 
}
 
void loop() {
  for(int i=0;i<64;i+=8){
  display.clearDisplay();    //画面クリア   
  display.setCursor(0,i);    //左上にカーソルを移動
  display.print(i);
  display.print(" ");
  display.println("Hello World");  //文字列挿入
  display.display();         //描画バッファの内容を画面に表示
  delay(1000);               //1秒間待ち
  }
}

github.com

こんな感じ。結構解像度が高くてきれい。

メソッド

  • setTextSize(整数を指定)で文字の大きさを指定できる。

最小サイズは1、最大サイズは9ぐらい。 最小サイズで縦8ピクセル、サイズが1増えるごとに縦ピクセルがサイズ倍になる。 - setCursor(x,y)

このモジュールの場合、 0\le x \le 128,\ 0\le y \le 64と考えていい。(x,y)は文字の左上のピクセルが表示される位置。x=128またはy=64だと画面外になるので、表示されなくなる。

  • setTextColor(文字色,背景色)

背景色はデフォルトでBLACK

通常はsetTextColor(WHITE)、色反転する場合はsetTextColor(BLACK, WHITE)