ハードシーケンサ開発。(その4:ディスプレイ表示の動作確認)

画面表示の確認

とりあえず使おうと思ってるパーツが手元に合ったので、
動作確認してみる。

割とあっさり動いてしまったのでよかった。

これで必要な実装は揃えた。


#include <U8g2lib.h>;

U8G2_SSD1305_128X32_ADAFRUIT_F_4W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 10, /* data=*/ 11, /* cs=*/ 9, /* dc=*/ 8, /* reset=*/ 12);
int i =0;
void setup(void) {
    u8g2.begin(); // OLEDの初期化
    u8g2.setFlipMode(0); // 画面の向きを設定、数字を変えると向きが変わる
}

void loop(void) {
    u8g2.clearBuffer(); // バッファのクリア
    u8g2.setFont(u8g2_font_ncenB08_tr); // フォント設定
    //u8g2.drawStr(0, 10, "Hello World!"); // バッファに文字列を格納
    u8g2.setCursor(0, 10);
    u8g2.print(i);
    u8g2.drawStr(0, 20, "MachiaWorks "); // バッファに文字列を格納
    u8g2.drawStr(0, 30, "2022/08/30 @"); // バッファに文字列を格納
    u8g2.drawLine(72, 0, 128, 32); // バッファに直線の情報を格納
    u8g2.sendBuffer(); // バッファの内容で画面を更新
    delay(1000);
    i++;
}

動作プログラムの内容解説

U8G2というライブラリを利用する。
モノクロ限定でディスプレイと信号のやり取りを行える。

ちなみにディスプレイごとのIFは予め定義されているが、
通信プロトコルについてはIFごとに違っており、今回はSPIを利用している。

IFごとに利用するプロトコルとそれに紐づく利用ピンの数が違うので注意。

「SPI」の解説 – しなぷすのハード製作記 (synapse.kyoto)

参考資料

ArduinoでOLEDを動かす(u8g2libライブラリを使用) – Qiita

u8g2reference · olikraus/u8g2 Wiki (github.com)

ArduinoとSCD30、OLED、u8g2で作る日本語表示のCO2濃度・温湿度計 | よかひより (yokahiyori.com)

あとU8G2ライブラリのHelloWorldコード。こっから対応しているモニタの定義探したので。