簡単なスケッチなのに何故か上手くいかないOLEDでの表示。
#include <Adafruit_SSD1306.h>
#include <Adafruit_I2CDevice.h>
#define OLED_RESET 0 // GPIO0
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
Adafruit_SSD1306 OLED(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
OLED.begin();
OLED.clearDisplay();
//Add stuff into the 'display buffer'
OLED.setTextWrap(false);
OLED.setTextSize(1);
OLED.setTextColor(WHITE);
OLED.setCursor(0,0);
OLED.println("Hell World by YO$HI");
OLED.display(); //output 'display buffer' to screen
}
void loop() {
}
明示的に解像度(128x32)を指定してやったらモニョモニョは消えた。
Adafruitのソース、ヘッダをザッと眺めた感じでは引数無しの場合は
128x32になるように見えるんだけど、なんか上手くいってない。
それ以上深入りしたくないので見るのやめた。
念のためディスプレイを使い切るように文字を表示させて確認しよう。
OLED.println("Hell World by YO$HI");
OLED.setCursor(0,9);
OLED.println("abcdefghijklmnopqrstuvwxyz");
OLED.setCursor(0,18);
OLED.println("ABCDEFGHIJKLMNOPQESTUVWXYZ");
OLED.setCursor(0,27);
OLED.println("012345678901234567890123456");
こんな感じで。
最後の行が はみ出るようにカーソルをセットしている。
縦10mm程で4行表示しているから、1文字が縦2.5mm程になる計算だ。
非常に小さいけど、綺麗に発光して意外と読める。
遊び道具として買ったから目的は無かったんだけど、何かの役に立てたいところ。