0.95″ 96×64 SPI Color OLED in ESP32
9.5″ 96×64 SPI SSD1331 Color OLED を ESP32 で使用しました。 2017.06.14
Color OLED の価格は 800円です。
総費用は 1996円:Color OLED + WEMOS LOLIN32 。
又は 2176円:Color OLED + Pocket32。( 画像 )
配線7本 と スケッチを1行変更 のみで 23個のサンプルが 直ぐ動作します。
同時に表示:左:0.96″ I2C mono OLED。 右:0.95″ SPI Color OLED
Color OLED 仕様:
_ 0.95″ Inch SPI OLED SSD1331 65K Full Color Display Module:800円。
_ Resolution:96×64、Color:65K、Drive:SSD1331、外形:27.3 x 30.7 mm
_ 端子仕様:
_ [GND]:GND。[VCC]:2.8 – 5.6V ( U2 LDO 662K 3.3V)。[SCL] : Clock。
_ [SDA]:MOSI。[RES]:Reset。[DC]:data/command。[CS]:chip-select
max mc costa の sumotoy氏による SSD_13XX のサンプルです。
SSD_13XX の examples順に 並べてあります |
準備:費用総計:1996円 又は 2176円。 価格は 円レート等で変わります。
No | Nomen | Link | Price | Memo |
1 | Pocket32 (Travis Lin Storeのコピー) | Aliexpress:Lily GO | 1136円 | 輸送 9日 |
1 | Pocket32 ( $15 + ship $5 ):本家 | tindle:Travis Lin Store | 2315円 | 輸送 15日 |
1 | WEMOS LOLIN32 V1.0.0($8.66) | Aliexpress:WEMOS CC | 956円 | 輸送 9日 |
2 | 9.5″ 96×64 SPI Color OLED Module | ebay:chivazhu | 800円 | 輸送 7日 |
2 | 9.5″ 96×64 SPI Color OLED Module | ebay:erizh-51 | 800円 | 輸送 7日 |
2 | 9.5″ 96×64 SPI Color OLED Module | アマゾン:HiLetgo | 1050円 | 高い |
3 | シングルピンソケット(低メス)1×20P | 秋月電子通商:C-03138 | 60円 | 2個 |
3 | ピンソケット(メス) 1x10P | 秋月電子通商:C-03786 | 60円 | 2個 |
3 | 0.3mm ユニバーサル基板(72x47mm) | 秋月電子通商:P-09725 | 120円 | 1個 |
4 | SPI Library:sumotoy / SSD_13XX | SSD_13XX | – | 1行変更 |
.
本家 Travis Lin Store の Pocket 32 — ESP32 + 18650 。
配線:ESP32 と SPI OLED に7本の配線をします。
_ VSPI は #include <SPI.h> を使用し以下の図面の配線になります。
1. VSPI 配線の定義:デフォルトの場合。
_ SPI.begin(); (未記入でも動作します)
_ GPIO は SCK( GPIO 18 ), MOSI ( GPIO 23 ) を使用し固定です。(変更可)
2. OLED の配線:CS, DC, RS(RES) :空いているGPIO を使用します。
_ SSD_13XX tft = SSD_13XX(15, 16, 4); // CS, DC, RS(RES)
_ カッコ内の変数は CS, DC, RS(RES) を示します。
_ 詳細は sumotoy / SSD_13XX に書かれています。
3. VSPI 配線の定義:MOSI と SCK を 他の GPIO で使用する場合。
_ 例:SPI.begin(14, 12, 13); // sck, miso, mosi, ss // miso(12) は未使用。
_ SCK( GPIO 14 ), MOSI ( GPIO 13 ) で 任意のGPIO を使用できます。
_ 注:全ての端子を確認した訳でなく 出来ない端子もあるかと思います。
スケッチ:1行変更します。
_ ライブラリー SSD_13XX にある exsample の変更内容。
_ SSD_13XX tft = SSD_13XX(__CS_TFT, __DC_TFT); を
_ SSD_13XX tft = SSD_13XX(15, 16, 4); に変更します。
_ カッコ内は CS = GPIO 15。DC = GPIO 16。RS = GPIO 4 としました。
_ この3つは 他の GPIO でも動作可能です。
_ SSD1331 OLED の名前は tft のままとします。
#include <SPI.h> #include <SSD_13XX.h> // MOSI=23, SCK=18, CS, DC, RS SSD_13XX tft = SSD_13XX(15, 16, 4);
ESP32 SPI と SPI Color OLED のピンアサイン:
_ SPI : Serial Peripheral Interface
_ MISO : Master In, Slave Out – Sending data to the master from the slave
_ MOSI : Master Out, Slave In – Sending data to the slave from the master
_ SCK (SCLK) : Serial Clock – Synchronizes data from the master/slave relationship
_ SS (CSN (Chip Select NOT), NSS) : Slave Select – SS low means slave is the active slave.
_ VSPI : 通常 5,18,19,23 を使用しますが 任意のピンも使用できます。
_ HSPI : 通常 12,13,14,15 を使用しますが 任意のピンも使用できます。
WeMos d1 mini Pro (ESP8266) と 0.95″ SPI Color OLED の実例:
macsbug:0.95″ 96×64 Color OLED in ESP8266
複数のディスプレーと複数のライブラリー:
_ 冒頭にある I2C mono OLED と SPI Color OLED は 2つのライブラリーを
_ 使用しています。 sqix78の「esp8266-oled-ssd1306-master」と 今回の
_ 「ssd_13XX」ライブラリーです。スケッチを記述するとエラーがでます。
_ 原因は ライブラリーで定義している BLACK と WHITE の文字が競合して
_ いる為です。対策は sqix78 の OLEDDisplay.cpp とOLEDDisplay.h にある
_ BLACK と WHITE を BLACK1 と WHITE1 に変更し 動く様になります。
_ ただし この方法はライブラリーの管理が面倒になりますね。
感想:
1. VSPI, HSPI の信号の違いと 確認方法を理解できていません。
_ ESP32 の SPI は VSPI, HSPI, FSPI と多彩になりました。
_ 今回の動作は VSPI (デフォルトの使用) と判断しています。
_ VSPI, HSPI は Display Driver との関係があり合致しないと動きません。
_ どういうわけか解りませんが HSPI の命令は動きませんでした。
_ SPIClass SPI(SPI);, SPIClass SPI(VSPI); は 反応しますが
_ SPIClass SPI(HSPI); は 反応しませんでした。
_ 使用ピンを任意で変えられる事も含み、現在 VSPI か HSPI で動いているかの
_ 確認の方法が解りません。
2. 価格:0.95 inch 96×64 Color OLED は ebay で 約 800円 です。
_ 他の販売:
_ 日本アマゾンの HiLetgo は 1050円で高く。他に2千円台の高い物もあります。
_ SSの1.5インチ 16ビット色のOLEDディスプレイは 5755円と超高く論外です。
_ ebayに 1.8″ Serial:UART/I2C/SPI True Color OLED 160×128 Display Module
_ 160×128 は 3187円($28.99) と高く論外です。
3. 表示速度:ESP32 の VSPI機能 と相まって 速度は速いです。
4. 画像データー:ファイルや SD から読み込む方法がありライブラリーの中に
_ 構成されていますので読むと参考になるかと思います。画像データの作り
_ 方は CD-Image-Converter で作る様ですが詳細は調べていません。
_ フォントも LCD_Font_Converter があるようです。
5. SSD1331 ライブラリー:mgo-tec氏は SSD1331 ライブラリーを作成しました。
_ mgo-tec電子工作:「有機EL(OLED)SSD1331 ライブラリを作成しました(ESP32用)」
_ オシロも使用し多大な努力と完成度、丁寧な解説を何度も読み返し感謝致します。
6. 他の SSD1331 のライブラリー:幾つか試しましが動きませんでした。
7. ドライバーとピクセル:SSD1331 は 96×64、SSD1351 は 128×128 (高価)です。
8. ライブラリー;max mc costa の sumotoy氏に感謝致します。TFTにも感謝。
_ ESP8266のフォルダーだけでなく他のスケッチも動きました。
_ 1つだけ「image_eyeAnimation」はエラーで動きませんでした。
9. 電源:このOLEDは 電源に シビアーなモジュールです。容量の少ない
_ 外部電源や不安定な電源を使用すると表示が乱れる時があります。
_ 注意:電源を入れたまま OLED を抜き差ししない事。動かなくなります。
_ ただし、何度か電源を入れ直すとなんとか戻ります。
OLEDについて:
_ OLED(有機発光ダイオード)は、バックライトを必要としません。
_ 高輝度で軽量で薄く、広視野角、低動作電圧と低消費電力です。
_ 図の破線部は TFT の場合に必要な構成で OLED では不要になりました。
[…] https://macsbug.wordpress.com/2017/06/14/0-95%E2%80%B3-96×64-spi-color-oled-in-esp32/ […]
Blynk と ESP32 で カラー OLED SSD1331を2つ同時 リアルタイムコントロールしてみる | mgo-tec電子工作
6月 27, 2017 at 5:25 pm