Release 2016.12.31 / Update 2019.1.21

HiLetgoのOLEDを使う -I2C-

Amazonで手に入るOLEDで一番安いものが400円ちょっと(2016/12/28 現在)。Arduinoで動かせなくてしばらく四苦八苦してましたが、やり方がようやく分かったので、記事にしました(ただし、I2C接続での確認のみです)。初期設定のSPI接続での動作も確認しました。(2017/3/20 追記)

購入したのはこちら。

HiLetgoのOLED

Amazonで手に入る小型のOLED の中では格安の128×64グラフィックディスプレイです。液晶と違い太陽光に負けず、視野角も完璧です。気になるのは耐久性ですが、使い続けてみないと分からないので現時点はなんとも。後は中華なので、発送、不良品等の対応に時間がかかってしまうことです。他の商品の話ですけど、見据えて1個余分に注文したら、1個だけカラになってたこともありました。まあ、そこら辺の手間を考えても購入する価値はあるんではないかと思います。

初期設定はSPIとして動作する(はずですが)、裏の配線をいじることでI2Cデバイスとしても動きます。

動かなかった理由

うまくいかなくて、試行錯誤しI2C仕様に変えてもみましたが、それでも動きませんでした。

SPIでも動作確認済み → こちら (2017/3/20 追記)

ただ、その後レビューにある通り、RESETピンへ電圧変化を与えたところ、ちゃんと動作するようになりました。Amazonの商品レビューでは、

電源投入時は電圧LOW、その後HIGHに切り替える

と解説されています。ピンを手動で切り替えることでも動作確認は出来ました。

ただ、毎回そうするのは面倒なので、Arduinoからのピンを一つ使い、その操作をやらせます。配線図のD13がそれに当たります。

配線図

SPIをI2C仕様へ

成功前にI2Cへ変更してしまったので、SPIで動くのかはまだ分からずじまいです。そのうちもう1個手に入れられたら試してみたいと思います。なにせ、小さいチップ抵抗などを付け替えるのはかなり大変で、とても戻す気になれないので。

なるべく精巧なピンセット、固定器具などは必須です。

I2Cへの変更方法

  • R3のチップ抵抗(4.7kΩ)を取り外し、R1に付け直す
  • R8をショートさせる。

チップ抵抗はサイズ的には2012かと思われます。R8のショートには普通の抵抗を切った余りを短く切ってブリッジとして使いました。たまたまうまくいきましたが、あまり半田ごての扱いは得意ではないので(R6少し溶かしてます…)、苦手な方は換えのチップ抵抗用意しておいたほうがいいかもしれません。

スケッチ

setup関数内に以下のようなコードを付け足すことで起動時の電圧操作を行います。

void setup() {
  pinMode(13, OUTPUT);
  digitalWrite(13, LOW);
  delay(10);
  digitalWrite(13, HIGH);
}

あとは通常の通り、u8glibで動作させられます

 

今まで使用していたOLEDより一手間増えて大変な部分もありますが、値段が半分なので動かせることが分かれば、場合によっては魅力的かもしれません。

「HiLetgoのOLEDを使う -I2C-」への2件のフィードバック

    1. わざわざありがとうございます。
      ただ、SPI接続に関しては、u8glib内でリセットしてくれる仕組みがあったみたいで^^;
      近々改訂しますが、

      U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8); // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9

      を設定した上で、ピンを、
      13 → DO
      11 → DI
      8 → RES
      9 → DC
      10 → CS
      これでそのままサンプルスケッチが動くみたいです。

      https://jumbleat.com/2017/03/16/amazon_cheap_oled_2/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください