参考
単色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で使う場合
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秒間待ち } }
こんな感じ。結構解像度が高くてきれい。
メソッド
- setTextSize(整数を指定)で文字の大きさを指定できる。
最小サイズは1、最大サイズは9ぐらい。 最小サイズで縦8ピクセル、サイズが1増えるごとに縦ピクセルがサイズ倍になる。 - setCursor(x,y)
このモジュールの場合、と考えていい。(x,y)は文字の左上のピクセルが表示される位置。x=128またはy=64だと画面外になるので、表示されなくなる。
- setTextColor(文字色,背景色)
背景色はデフォルトでBLACK
通常はsetTextColor(WHITE)、色反転する場合はsetTextColor(BLACK, WHITE)