パーツライブラリ - SSD1306


2021/12/20公開

概要
最近SSD1306搭載のOLEDモジュールを手に入れたのでこちらの記事のソースを元にさせていただき、通常の外部パーツライブラリとして使えるように改修してみました。
表示領域の拡張や無印obniz搭載のOLEDの劣化対策などにお使いください。
なお当方で動作確認したのは下記画像のモジュールです。(基板裏面にGM009605v4.2のシルク印刷有り)
おそらくSSD1306搭載モジュールであればこれ以外でも動くとは思いますが未確認です。

説明
クラス名は"SSD1306"です。
パーツライブラリの組込方法は公式ドキュメント「外部のパーツライブラリを取り込む」も参考にしてください。

仕様

wired("SSD1306", {gnd, vdd, scl, sda, address} )


OLEDモジュールに接続します。
sclはSCKと同じ意味です。
addressにはI2Cの接続先アドレスを指定してください。(省略時は0x3C)
<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="ssd1306.js"></script>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");

obniz.onconnect = async function () {
  // パーツライブラリの登録
  Obniz.PartsRegistrate(SSD1306);

  var oled = obniz.wired("SSD1306", { gnd:0, vdd:1, scl:2, sda:3, address:0x3c });
}
</script>

[await] clear()


表示内容をクリアします。
<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="ssd1306.js"></script>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");

obniz.onconnect = async function () {
  // パーツライブラリの登録
  Obniz.PartsRegistrate(SSD1306);

  var oled = obniz.wired("SSD1306", { gnd:0, vdd:1, scl:2, sda:3, address:0x3c });
  oled.display.clear();
}
</script>

[await] drawing(mode)


描画をバッファリングします。
<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="ssd1306.js"></script>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");

obniz.onconnect = async function () {
  const canvas = document.getElementById("c");
  const ctx = canvas.getContext("2d");

  // パーツライブラリの登録
  Obniz.PartsRegistrate(SSD1306);

  var oled = obniz.wired("SSD1306", { gnd:0, vdd:1, scl:2, sda:3, address:0x3c });

  oled.display.drawing(false);

  ctx.font = "20px Avenir";
  ctx.fillText("hoge", 0, 40);
  oled.display.draw(ctx);

  oled.display.drawing(true);
}
</script>

[await] draw(ctx)


CanvasのContextの内容を描画します。
<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="ssd1306.js"></script>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");

obniz.onconnect = async function () {
  const canvas = document.getElementById("c");
  const ctx = canvas.getContext("2d");

  // パーツライブラリの登録
  Obniz.PartsRegistrate(SSD1306);

  var oled = obniz.wired("SSD1306", { gnd:0, vdd:1, scl:2, sda:3, address:0x3c });

  ctx.font = "20px Avenir";
  ctx.fillText("hoge", 0, 20);
  ctx.fillText("fuga", 0, 40);
  oled.display.draw(ctx);
}
</script>

使用例
<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="ssd1306.js"></script>

<script>
var obniz = new Obniz("OBNIZ_ID_HERE");

obniz.onconnect = async function () {
  const canvas = document.getElementById("c"); // Bodyに"c"というidのCanvasタグがあるものとする
  const ctx = canvas.getContext("2d");

  // パーツライブラリの登録
  Obniz.PartsRegistrate(SSD1306);

  var oled = obniz.wired("SSD1306", { gnd:0, vdd:2, scl:4, sda:6, address:0x3c });

  ctx.font = "20px Avenir";
  ctx.fillText("hoge", 0, 20);
  ctx.fillText("fuga", 0, 40);
  oled.display.draw(ctx);
}
</script>

ダウンロード
ssd1306.js


戻る