VFD(蛍光表示管ディスプレイ)は明るく見やすいディスプレイです。シリアル通信のキャラクタディスプレイで使いやすそうなのがあったので試してみました。


手に入れたのは20X2文字のキャラクタディスプレイM202MD10Bで大阪デジットの限定特価品です(^^)。

Seeeduino-XIAOとはロジックをレベル変換(BSS138)モジュールを通して接続しました。



明るくはっきりした表示で,XIAOともUARTシリアルでシンプルに接続できましたV(^^)。

分かりやすい取り扱い説明書も付いてきましたが,以下気づいたことも含めてハードとソフトのメモです。


1.ディスプレイの接続と設定
 裏面にコネクタと設定用のディップスイッチがあります。



1) ディップスイッチ
 1. キャラクタ文字選択(ON カタカナ,OFF キリル文字)

          9600 4800 2400 1200 bps
 2. ボーレート設定 OFF ON  OFF ON
 3. ボーレート設定 OFF OFF ON  ON

 4. テストモード (表示文字の確認)


2) 接続コネクタ
 PH7pinコネクタで,ジャンパ線のメスなどは入りません。手持ちのPH10Pinを切断して使いましたが,コネクタから表に突き出しているPInに直接ハンダ付しても良いかもしれません,,。

 1. VCC:5V 約650mA,MPUとは別電源が必要です。
 2. VCC

 3. _RESET:LOWでリセット。今はNCにしています。
  VCCに直接つなぐとパワーオンリセットが効きません!

 4. DATA:MPUのTxDと接続。
  ロジックが5Vなので,3.3V系とはレベル変換が必要です。

 5. BUSY:LOWでデータ受け入れOK。今は未使用。
  必要であればMPUと接続してデータ送信前にチェック。

 6. GND:グランド,電源のグランドと接続。
 7. GND MPU側のGNDとも忘れず接続する(^^;;;;;;



2.データと制御コマンドの送信


1) データ送信(8bit・1stop bit・no parity)
 ディスプレイ側のディップスイッチで設定したボーレートで,文字データは普通のアスキーコードで送ります。


2) 制御コマンド
 古い機種のディスプレイなのでデータシートが見つからず,詳しいコマンドはまだ良く分かっていません(^^;;;;;;。

一般的なアスキーコード表にある制御コードで表示に便利そうなのを試してみて以下で使ってみています。




・CR(0x0D):Carriage Return,復帰。改行せず,カーソルを行頭に復帰します。
・HT(0x09):Horizontal Tab,水平タブ。カーソルを1文字分右に移動します。
・LF(0x0A):Line Feed,改行。このディスプレイでは画面クリアに使えます。


気をつけておく事はこのディスプレイは2行のディスプレイではなく,上図のように40文字1行のディスプレイが折り返して2行に見えている,という事ですね。

LFの説明で書きましたが,このディスプレイで改行することは何も無い次行にいく事になり,1行目のつもりでArduinoで改行を含むコマンドである"Serial.println()"を使うと画面は消えます(^^;;;;;;

ま,PCのシリアルモニタの1行だけのディスプレイみたいなものということですかね(^^)。


ちなみにデジットの取り扱い説明書ではCR(0x0D,行頭復帰)が唯一書かれています。ふと考えるとCRがあればこういう小さいキャラクターディスプレイなら大抵の事はできますね,,,。



最初の表示例の画像のプログラムをついでにメモしておきます。

表示場所の文字数を数えるのが面倒な時のためにvfdLocate()なる関数をでっちあげています(^^;;;,。






思ったより大きなディスプレイで,表示もきれいなのが良いですね(^^)。

このディスプレイは型番からどうもラジコン界ではおなじみのFUTABA社製のようです。

かなり古い機種のようで詳しいデータシートも無く,またデータシートのある機種の制御コードともあまり合致しないのですが,シンプルなコードで動かせて良かったですV(^^)。