niszetの日記

アナログCMOS系雑用エンジニアが頑張る備忘録系日記

キャラクタLCDで文字列をスクロールするやつの解説(1回目)

Twitterに載せたやつね

先日、Twitterで動画を公開したコレ↓について簡単に解説を書こうかなという日記。仕組みが分かってる人には面白いのだけど、そうじゃないとよくわからないよねということで。

キャラクLCDとは?

呼び名は色々あるぽいですが、文字列を表示するための液晶ディスプレイです。

これは、あらかじめ登録されている文字の字形を表示することに特化した液晶ディスプレイで、いわゆる7セグみたいな物理的に表示領域の形状が決まっているようなものと、普段我々が使っているような画像の表示が出来る液晶の中間にあたるもの、といえそうです。

あらかじめ登録されていると言っても例えばJISの字形が全部登録されているというわけではなく、今回使用したものは英数字+記号+半角カナが登録されています。(内部的には0-255の文字コードを受け取り、対応する字形を表示するというもの。この辺りはキャラクタ液晶の仕様(より正確にはコントローラICの仕様)に依存します) また、字形も変更はできません。好きなフォント(の字形)に変えるというのも出来ないわけです(ROMに書かれているので)

ただし、それでは不便でしょうということなのか、字形を登録して使うことが出来ます。ただし、8種類だけ(これも機種に依存) これによって、登録されていない字形を自分で登録し、それを使用することができる、というわけです。

詳細は、また後程。

今回使用したハードウェア

今回はArduino UNO R3とPLCD1602を使っています。

Arduino Uno R3

www.switch-science.com

PLCD1602 1.8V〜5.0V対応I2C接続LCD www.switch-science.com

HWのちょっとした説明

Arduino…の説明はいいか。PLCDの方ですが、中の液晶は秋月電子通商 AQM1602Y-RN-GBWです。そのため今回はこの仕様に依存しています。

LCDモジュール 16×2行 AQM1602Y-RN-GBW

akizukidenshi.com

なので、コントローラであるST7032iの仕様ともいえます(が、液晶側が対応していない機能があるので注意。詳しくは各データシートと販売ページのFAQなどを読んでください。たとえばこの液晶はITO option(OPR1、OPR2)について固定されています(FAQのページ))

I2Cで制御できるのも良いですね。試していませんが、同じコントローラを使用していれば同様のことがプログラムの移植で簡単にできるはずです。このあたりがI2CやArduinoのプラットフォームの強みですね。

ですが、HWの違いについては設計者がちゃんと考えてその差異をどうするかなど検討することはあります。特に気を付けないといけないのは電圧レベル(後述)ですが、それ以外にも色々…。

PLCD1602を使うメリット

PLCD1602を使ってる理由は中の人が知り合いだから…というのがきっかけですが、この製品、GroveとQwiicというインタフェースでつなげられるうえ、電圧としては1.8V-5.0Vまで対応しているという点があります。

I2C制御で簡単な液晶でも、配線の接続をしないと(当たり前ですが)動きません。コネクタ形状が決まっているGroveとQwiicであれば、つなげれば動くという点が魅力です。 しかし、どちらもコネクタ形状とどの配線が電源/GND/クロック/データかを決めていますが、電源電圧については特にケアされていないので、信号の送信側と受信側で電圧レベルが異なる場合はどちらかが壊れる可能性があります

たとえば、今回の秋月の液晶はページを見ればわかりますが、 3.3Vの対応です。素のモジュールを使う場合は気を付けましょう。

それでもまだ注意… PLCD1602を使う時の注意点

その点、PLCD1602はGrove/Qwiicの接続先を間違えなければ大丈夫です(フラグ) コネクタと配線の接続についてはPLCDの製品ページに回路図があるのでそれを参照して確認しながらつなぎましょう。データがちゃんと載ってるページは良いですね。

あと、Arduinoはピンで刺したいので、こういうケーブルが必要ですね。あるいはGrove/Qwiicに変換できるArduino用のシールドを買うかなど。

www.switch-science.com

www.switch-science.com

www.switch-science.com

長くなってきたな…。分けるか。続きます。結局、文字がスクロールするところまで説明できていない…。

次の記事

niszet.hatenablog.com