さて、OLEDのSSD1306ですが・・・前回、デモは動作させることができたので、今回はもうちょっと実用的な使い方です。
具体的に、テキストと数値を表示してみました。
#include<Wire.h>
#include<Adafruit_GFX.h>
#include<Adafruit_SSD1306.h>
Adafruit_SSD1306 display(128, 64, &Wire, 4); // デバイス変数の宣言
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // デバイスの初期化
}
void loop() {
int i;
display.setTextSize(1); // 文字の大きさ
display.setTextColor(WHITE); // 文字の色
// 画面への表示
for(i=0;i<10;i++) {
display.clearDisplay(); // 画面クリア
display.setCursor(0,0);
display.println("Hello");
display.println("World!");
display.display();
delay(1000);
display.clearDisplay(); // 画面クリア
display.setCursor(0,0);
display.println("sample");
display.println("program");
display.display();
delay(1000);
}
for(i=0;i<100;i++) {
display.clearDisplay(); // 画面クリア
display.setCursor(64, 32);
display.print("i :");
display.setCursor(88, 32);
display.print(i,DEC);
display.display();
delay(500);
}
delay(1000);
}
実験して分かったことは・・・何かを書いたところに、上書きすると・・・前の文字が消えずに、新しい文字が重なって書かれます。
だから、重ねて書いていくと白い四角になるだけです。(笑)
ということで、毎回画面をクリアしないと、何が表示されているかがわからなくなってしまいます。
これが、正しい使い方なのか分からないので・・・さらに研究したいと思います。