OLED(SPI)に挑戦

最終更新日:2019/10/21

SPI接続のOLED(96×64)を入手しました。型番は秋月の情報からqt095bで Shenzhen Taida Century Technology Co,Ltd が製造元のようです。これをBluePillで動かせるように挑戦しておきたいと思います。
OLED(Organic Light Emitting Diode)つまり有機ELのことです。小型のものは安価で入手可能なのです。

使用されているコントローラデバイスはSSD1331のようです。
今回使用するOLEDモジュールはSPI接続なのですが、信号表記がSCL/SDAとありI2Cと勘違いしそうです。
BluePillとの配線ですが、ライブラリのコードを参照して決めました。
使用しているライブラリはAdafruitの提供しているものです。STM32が使用出来るように対策されたライブラリの様です。

SSD1331   BluePill
GND

GND
VCC

3V3
SCL

PA5(SCK)
SDA

PA7(MOSI)
RES

PA3
DC

PA2
CS

PA4(NNS)

実際にサンプルスケッチを動かしてみました。ちゃんと動きます。ただ注意が必要なことも判りました。それは配線長です。
可成り高速に動いており、配線長が問題になることが判りました。その点予め把握しておく必要があります。

その後思ったことがあります。SPIなのでクロックの設定が出来るはずです。ライブラリを確認する必要があります。

C:\Users\[ユーザ]\Documents\Arduino\libraries\Adafruit-SSD1331-OLED-Driver-Library-for-Arduino-master\Adafruit_SSD1331.h
void begin(uint32_t begin=8000000);

指定しないと8MHzのようです。16MHzのUnoで8Mhzとなると、極力クロックを上げていることが判ります。qt095bのSCL端子がどの程度のクロックを認めるのか知りたかったのですが、qt095bの資料には見つかりませんでした。そこで、

begin(36000000);

と指定して動かしてみました。結果エラーにならず動きます、また、ちらつきが少ないです。最適なクロック値がいくつなのか判りませんが、早いほうが良さそうです。

表示のためにSPIを使う場合、出来ればSPT2を使いたいです。それはSPI1ではNIC等の接続が考えられ、別のラインとしたいからです。そうしないとCSを選択する度に止まってしまいます。

SSD1331   BluePill
GND

GND
VCC

3V3
SCL

PB13(SCK)
SDA

PB15(MOSI)
RES

PA9
DC

PA8
CS

PB12(NNS)

ちゃんと動きました。begin(16000000); で実施しましたが、1/16のbegin(1000000); にすると確かに描画速度が変わることが確認出来ます。

ライブラリで気になるところがあります。原点の変更(回転、平行移動)をする関数が無いようです。
実際に使っていて、原点を(0,0)の位置から(95,63)に変更して180°回転したいと思いました。90°回転は正方ではないのでいろいろ問題はあるのでしょうが、、
Invertは出来ます。OLCDは明るいので照明ライクで反転させるのも在処と思います。


戯言(nonsense)に戻る


免責事項

本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。

本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。

商標・登録商標

Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。