外部ディスプレイ

SSD1306(OLEDディスプレイ)

以下の拡張ボードで動作確認しています.

https://www.switch-science.com/products/7445
https://akizukidenshi.com/catalog/g/g117966/
https://www.switch-science.com/products/7554

以下は文字列を表示する例です. GALLOCIMAGE()でイメージを作成し,SSD1306DRAW()でそのイメージをディスプレイに 表示します.メモリ節約のためにGALLOCIMAGE()には G_MONOCOLOR|G_NDRAWPIXEL|G_NCOPY をフラグ指定します.

nll> SSD1306INIT()
nll> IMG=GALLOCIMAGE(128,64,G_MONOCOLOR|G_NDRAWPIXEL|G_NCOPY)
nll> GPRINT(20,30,8,8,"This is NLL",G_FONT8X8,,,,IMG)
nll> SSD1306DRAW(,IMG)
I2C接続です.以下のようにしてピン番号/I2Cのアドレス/I2Cの周波数を 指定することができます. これを利用すると,アドレスを変えて複数のディスプレイに表示させたり することもできます.
nll> I2CINIT(26,32,I2C_FREQ100K) ※SCL/SDAのピン番号と周波数を指定
nll> SSD1306INIT(0x3c) ※I2Cアドレスを指定して初期化
nll> SSD1306DRAW(0x3c,IMG) ※I2Cアドレスを指定して描画
SSD1306INIT()の第2引数にはフラグ,第3引数にはコントラスト(0〜255)を指定できます. フラグの意味は以下です.
nll> SSD1306INIT(,EG_INVC|EG_INVX|EG_INVY,1) ※白黒反転,180度回転表示,コントラスト1で初期化
SSD1306DRAW()の第3引数にはフラグを指定できます. フラグの意味は以下です.

以下は円を大量に描画するサンプルです.


メールは kozos(アットマーク)kozos.jp まで