目次
はじめに
ふらっと寄ったaitendoの店頭で、まったく仕様が分からない特売品の液晶ディスプレイ(TX1094A-02)を買ってきました。
- 液晶ディスプレイTX1094A-02(変換基板込み)- 400円
ググれば少しくらいは情報があるのではと思っていたのですが、まったく見つからず現物を調べました。表示させるために必要な情報は得られたので、ここにまとめます。
概要
このTX1094A-02は、表示方式がセグメント方式、駆動方式がダイナミック駆動方式の液晶ディスプレイ(LCD:Liquid Crystal Display)です。
ドライバICが付いてないので(液晶モジュールじゃない……)、別途ドライバICを用意するか、液晶ディスプレイの駆動回路を持ったマイコンを使用して表示させます。
難易度が高いですが液晶ディスプレイの駆動回路を持たないマイコンでも、プログラムにより信号を生成して制御できます。
表示パターン
全てのセグメントを表示させると、以下の写真2のような表示パターンでした。
各セグメントと電極の対応
対応表
変換基板のピン番号と、電極(セグメントとコモン)の組み合わせを表1にまとめます。
後で利用する予定のマイコンに合わせて、セグメント電極を行(縦軸)、コモン電極を列(横軸)に、コモン電極は右から左へ並べています。()括弧の中の数値は変換基板上のピン番号です。
表1 | com6 (8) | com5 (7) | com4 (6) | com3 (5) | com2 (4) | com1 (3) | com0 (2) |
seg0(1) | 7a | 6a | 5a | 4a | 3a | 2a | 1a |
seg1(9) | 7b | 6b | 5b | ※1 | 3b | 2b | ※1 |
seg2(10) | 7c | 6c | 5c | ※1 | 3c | 2c | 1c |
seg3(11) | 7d | 6d | 5d | ※1 | 3d | 2d | 1d |
seg4(12) | 7e | 6e | 5e | ※1 | 3e | 2e | 1e |
seg5(13) | 7f | 6f | 5f | ※1 | 3f | 2f | 1f |
seg6(14) | 7g | 6g | 5g | ※1 | 3g | 2g | 1g |
seg7(15) | 7h | 6h | 5h | 4h | 3h | 2h | 1h |
※1 対応する表示パターンがない組み合わせです。
対応図
表示パターンのセグメントと、表1の組み合わせは図1のように対応しています。
例として中央の大きな「℃」を表示するならば、「2a」のセグメントが対応しているので、seg1(1)とcom1(3)の電位差が高くなるように交流電圧を印加しなければなりません。
表示させるために必要なこと
液晶ディスプレイの原理などは追い追い理解することにして、ググって、表示に必要なことを調べます。
いくつか見つかったのですが、専用の駆動回路を使わずに必要な電圧や信号を生成する考え方、実際の方法まで載っていて分かりやすかったので「AVR 汎用I/Oポートで直接LCDを駆動する」を参考にします。
とりあえず次の2つが必要なことが分かります。
- 表示するセグメントの、セグメント電極とコモン電極の電圧差が高くなるように電圧を印加する。
- 直流電圧を印加し続けると劣化して壊れるので、交流電圧を印加する。
セグメント方式の液晶ディスプレイを表示させるためには、この電極に印加する電圧のパターンを考えなくてはなりません。しかし、7コモンともなるとパターンが複雑になり過ぎます。
液晶ディスプレイの駆動回路を持っているマイコンを利用することで、HIGHとLOWだけではない電圧の生成や、印加する電圧のパターンの生成を任せられます。
駆動回路を持っているマイコンを探すと、入手可能で7コモンに対応している製品として「PSoC 5LP Prototyping Kit(CPU:CY8C5888LTI-LP097)」がありました。
おまけ – 全セグメントの表示に使った回路とスケッチ
個別セグメントの表示には複雑な電圧の制御が必要ですが、セグメント電極とコモン電極が分かれば、全セグメントの表示は簡単です。1セグメント1コモンの液晶ディスプレイと考えて交流電圧を印加します。
以下が全セグメントの表示確認に使った回路の接続方法とスケッチです。
接続方法
スケッチ
/*
* セグメントとコモンのHIGHとLOWの切り替え時のタイムラグを減らしたいため
* digitalWriteではなく、直接レジスタ(PORTD)を操作しています。
*/
void setup()
{
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
/*
* digital pin 7=HIGH, 6~0=LOW
*/
PORTD = 0b10000000;
}
void loop()
{
// digital pin 6, 7の状態を反転させる
PORTD ^= 0b11000000;
delay(4);
}
まとめ
この液晶ディスプレは、表示内容から温水式の床暖房コントローラ向けのようです。特売品で表示パターンも特殊なので積極的な利用には向きませんが、LowからHighのメーターや、2桁の度数付き数値が2組、エラー表示(Fault code)、温度(Temperature)、温度設定(Temperature set)などが表示できるので、温度計やカウンターになら利用できそうです。
この液晶ディスプレイのおかげで、セグメント方式の液晶ディスプレイの仕組みや制御方法を知ることができました。最近は、駆動回路が付いている液晶モジュールが簡単に入手できるので、あまり必要な情報ではないけれど、低レイヤの知識は面白いです。
次は「PSoC 5LP Prototyping Kit」で実際に表示させる方法を調べることにします。