小さい!240×240の1.3インチ液晶

Twitterで、@tokyo_ff さんに1.3インチの240×240小型液晶の存在を教えてもらいました。SPI接続でRaspberryPi や Arduinoで使えそうです。

こういう小型サイズの液晶だと、解像度128×128止まりが多いのですが、これは240×240!高解像度!お値段1000円弱!
買うしかない!
(ぜいたくを言えば、もうちょい横長で320×240あれば…なのですが。それは今後の商品展開に期待です!) 

ということで、到着しました。小さいー!


接続はSPI。端子を確認してみます。


GND/VCC/SDA/SCL/RES/DC/BLK

液晶部品扱うの初めてなので、何が何やら…?

ここの通販サイトに載ってる情報が一番詳しかったです。
https://www.banggood.com/1_3-Inch-IPS-TFT-LCD-Display-240240-Color-HD-LCD-Screen-3_3V-ST7789-Driver-Module-p-1383404.html

SDAやSCLってI2Cだけの用語ではなかったんですね。

具体的な使用事例を探してみたのですが「こう接続すれば動作するよ~」みたいなズバリは見つかりませんでした。


コントローラはST7789を使っているそうなので、検索してみるとArduino用のAdaFruitのライブラリがありました。

AdaFruit ST7735 and ST7790 Library
https://github.com/adafruit/Adafruit-ST7735-Library

初期化するには、Adafruit_ST7789(int8_t cs, int8_t dc, int8_t mosi, int8_t sclk, int8_t rst = -1); を行うとのこと。接続したピン番号を指定します。

ということで、
dc = DC
mosi = SDA
sckl = SLC
rst = RES
…ってことでしょうかね。

csは… あれ?無いぞ。液晶パーツだと、たいていCS(Chip Select)が付いているみたいなのですが…。


こんなふうに。


残念ながら、このパーツには付いてないです。

とするとBLKがそれ?違うよなあ…。ためしに、csにBLKつないで動かしてみましたが、動作しませんでした。


どこかに使用事例は無いものかと「SPI 1.3 240 Arduino ST7789 CS」で検索してみたところ、こんな投稿が!

New Arduino library for china’s 1.3″ IPS SPI 240x240px display. This displays don’t have CS pin, but work very well with new library.
https://plus.google.com/+%D0%98%D0%BB%D1%8C%D1%8F%D0%90%D0%BD%D0%B0%D0%BD%D1%8C%D0%B5%D0%B2/posts/bXLUrTUNp7r

まさにこれですね!CSピン無いけど、このライブラリで動くよ!とのこと。

ananevilya/Arduino-ST7789-Library
https://github.com/ananevilya/Arduino-ST7789-Library

初期化関数を確認してみたところ、Arduino_ST7789(int8_t DC, int8_t RST, int8_t SID, int8_t SCLK, int8_t CS = -1);
たしかに、CSピン無しでもいけそう!

ちなみに、SID / SCLK を省略して、Arduino_ST7789(int8_t DC, int8_t RST, int8_t CS = -1);
と書くと、ハードウェア制御の SDA/SCLを使ってくれます。こっちの方が高速とのこと。

SIDとかmosiとかSDAとか、同じものを表しているのに違う言い方がいっぱいあって混乱しますね…。

ということで、ライブラリ付属のサンプル使って表示。

うーん?表示はされているようだけどなんか変だぞ。

リセットボタンを押すとクッキリ表示される。謎。

このあと、設定値を変更してみたり、コードを入れ替えてみたりしましたが、状況は改善せず。


なんか変なところあるかなー、と見直していて、気が付きました。

SDA/SCL/DC/RES に繋いでる電圧が 5V のままだった!

電源だけは3.3Vを接続したけど、残りの信号線については何もしてなかった!これらも3.3Vじゃなきゃダメですね。

電圧は、簡易的に抵抗を使って調整できるとのこと。

Make.:5Vから3.3Vに変換する
http://make.bcde.jp/circuit/5v%E3%81%8B%E3%82%893-3v%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B/

電圧調整してみると…

キレイに出た!


こちらのパックマンも、ほぼ描画部分だけ差し替えて動きました。

Arduino MEGA2560で動かしてるので、メモリに載りきらず、配列のデータをPROGMEM にしたりしました。このせいもあってかなり重くて、遊べるレベルにはならなかったです。あと表示がチョット変ですが…何となくいいかんじで動作したので、ひとまず満足です!



コメントを残す

メールアドレスが公開されることはありません。