目次
透過型 OLED
通常の OLED は、ディスプレイの裏面ガラスが非透過になるように塗装などの処理がされています。ここで紹介する透過型 OLED は、裏面の処理を行わず、表面から裏面が透過するように製造されたものです(たぶん)。
1.54インチ SSD1309
1.54インチの SSD1309 OLEDを使用しました。同じ型番でも透過型でない場合があるので、購入する際は注意してください。
筆者は DIY MORE (深圳市四海芯舟科技) が販売するTransparent OLED Screen SSD1309を使用しました。AliExpressで検索すると、見つけれると思います。
接続回路
リセット端子「RES」を抵抗100kΩでプルアップし、電源投入後時は一定の時定数でLレベルを維持できるようにコンデンサ0.1uFを付与しました。また、ダイオード1SS178は、電源OFF時にコンデンサを放電します。
ボクが入手した製品は、I2CとSPIに対応していました。この場合は、I2Cに切り替える必要があります。基板裏面にシルク印刷で「I2C PORT:R8,R4」「SPI PORT R9」と書かれていたので、チップ抵抗R9を取り外して、R8とR4に0Ωのチップ抵抗を半田付けするか、半田をもってショートします。
前記の回路図のように、抵抗、コンデンサ、ダイオードを半田付けした様子です。
この写真は、撮影時の手振のように見えますが、OLEDの裏面のガラス面やプリント基板面での反射によるものです。実物は、立体感があって、写真よりもキレイに見えます(ボクの主観)。
IchigoJam に装着する
OLEDのGND、VCC、SCL、SDAの4つのピンを、IchigoJamのCN5のGND、3.3V、SCL、SDAに接続しました。残るRES、DC、CSには、ピンヘッダを取り付けませんでした。
プログラム
下記のページの「プログラムA1 縦画面 BASIC版 [PCG] ロゴ表示」を使いました。OLED上に表示されたIchigoJamのロゴは、 jig.jp社のCC BYライセンスに基づいて使用してください。
I2C有機ELディスプレイOLEDの接続方法:
https://bokunimo.net/ichigojam/oled.html
しかし、「プログラムA0(ダイエット版)」では、文字の表示位置がずれてしまいました。これは、SSD1306との違いで発生したもので、SSD1309の場合は、起動時のの表示位置が原点ではないようです。そこで、行番号800の初期化コマンドの末尾に描画位置指定「,33,#227F,#700」を追加し、行番号810のi2cwの第5引数(送信データ長)を24に変更しました。
プログラムを下記のように修正して実行すれば、正しく表示することが出来ます。
800 let[84],#4000,#D5AE,#8D80,#2014,#DA00,#8112,#D9CF,#DBF1,#A440,#AFA6,33,#227F,#700
810 W=i2cw(60,#8A8,1,#8AA,24)
ところで、上の写真ではOLEDの下側の基板面に表示が映り込んでいるのが分かると思います。透過型OLEDを使うことで、こういった立体感のある表示ができるようになります。
裏面にIchigoJamマイコン?
OLEDの裏面にはIchigoJamマイコン用のシールを置きました。シールとOLEDとの間には4mm程度の間隔をあけました。すきまを開けることで、透過光だけでなく、OLEDの発光によってシールに光があたり、より美しく見えます。
表示バッファの転送
このIchigoJamのOLED用デバイスドライバの表示方法は、ボクがIchigoJam用LCD用ドライバで使い始めた方法と同じで、モニタ表示用のビットマップバッファ内のデータをOLEDに転送しています。表示に必要な機能の多くをBASICインタープリタ内で実行するので、とても短いプログラムで実用的なディスプレイ用ドライバとして使用することが出来ます。
MicroPython用ドライバも
Raspberry Pi Pico 用に MicroPython 用のプログラムも作成しました。こちらは、前述の IchigoJam 用のプログラムを MicroPythonに移植したものになります。
MicroPython 用のプログラム:
https://github.com/bokunimowakaru/pico/blob/master/examples/test_oled.py
MicroPython 用のプログラムでは、予め表示桁数分の文字列×表示行数分の配列変数に文字を代入しておき、I2Cでフォントを転送します。
by bokunimo.net
「透明な 有機EL ディスプレイ OLED を IchigoJam に I2C 接続してみた」への1件の返信
[…] 透明な 有機EL ディスプレイ OLED を IchigoJam に I2C 接続してみた […]