• 目次 -Page-
  • コンテンツ -Menu-
  • リンク -link-
  • VFDとは
  • VFDは蛍光表示管の事です。
    昔の電卓っぽいものを想像して頂ければわかるかと思います。
    そんなVFDを表示器として使おうというのが目的です。
     
    VFDを使うメリットは「綺麗」の一言かも知れません。しかも「目立つ」のは間違いありません。 また、フォントで漢字を搭載したものは左の写真のように漢字表示も可能です。 いままで使っていたキャラクタタイプの表示器よりも確実に印象に残る工作が出来るはずです。 マイコンとの通信はパラレルタイプとシリアルタイプがあります。
    入手可能なVFDのメーカーは双葉製と伊勢電子製です。他にも入手可能なものがあるかも知れませんが存じません。 今回ここで使用するのはノリタケ伊勢電子のものを使用します。
     
    ノリタケ伊勢電子株式会社 SCK-3000シリーズ SCK256X128C-3100-A
     
    メーカーサイトからインターネットで注文できます。評価キットになっているので一通りのものは揃います。 スタンドが欲しかったのでキットを購入しました。ネットでの単品購入が可能になれば有難いのですけどね。 SCK256X128C-3100-AとPIC18F452をシリアルで繋いで制御してみたいと思います。マイコンのターゲット基板との 接続ケーブルはないので自作しないといけません。自作したケーブルが右の写真です。
  • GU256X128C-3xxxシリーズのRS232インターフェース
  • Pin No.信号名機能方向
    1RXD受信データ入力
    2DTRディスプレイREADY出力
    3DSRホストREADY入力
    4TXD送信データ出力
    5TESTテスト端子入力
    6VCC電源(5v)入力
    7GNDグランド入力
    TEST端子は工場検査用なのでオープン
     
    ハードウェア仕様書に書かれているコネクタ(CN1)の信号は上記の表の通りです。確実に繋ぐ必要があるのが送受信の端子と電源の端子です。 READY信号は必要な時に繋ぐとして、今回は使用せずに行います。使用しない場合でもオープンだとVFDの動作に影響を与えるので DTRとDSRを短絡して常にREADYという事にして使用します。
  • マイコンとの接続回路
  • VFDとPICマイコンのインターフェース接続は送信・受信信号のみで制御が出来るはずです。 しかし、VFDはパソコンとのやりとりも出来るようになっている為TTLレベルではありません。 よってマイコンと接続する場合はレベル変換が必要になります。
     
    回路の途中に入ってるCP3232がレベル変換用のICです。232C用のICは他にも沢山の種類があり 各メーカーが販売しています。どこのパーツ屋さんでも手に入ると思いますのでこの品番に拘る必要はありません。 しかし、ICによって周辺の回路(コンデンサの容量)が変わるので注意が必要です。
     
    レベル変換のICを一つ通す事になりますが、それ以外は通常のシリアル通信と変わらないので接続も同じです。 VFDへの電源接続を間違えないようにする事と、パスコンを入れるのを忘れないように気をつけましょう。
  • VFDの初期化
  • VFDに関わらず、各モジュールは初期が必要な場合が多々あります。
    VFDの初期化はまず画面をクリアしてから全てのコマンドの初期化(イニシャライズ)を行います。
     
    初期化とは異なりますが、フォントサイズやモードの選択も最初に一度設定しておきます。 プログラムを考える段階で「初期化が要るんだよねぇ」程度で流しておいて下さい。
  • 製作
  • またまたブレッドボードに製作してみました。PIC18F452とSP3232をボード上に配置しています。周辺回路はスイッチ2個だけです。 このスイッチは数字のカウントアップやカウントダウン、その他のテスト用に使用する予定です。 VFDとのハーネスでの接続もブレッドボード用のワイヤーを利用して接続しています。
  • テスト用プログラム CCS−C
  • まずは動作チェックの為に「電子工作のテスト工場」と表示するだけのプログラムを製作してみました。 プログラムに注釈を入れたので意味合いはわかってもらえると思います。 VFDのコマンドは「ソフトウェア仕様書」のP19から載っています。「コマンド+設定値」を マニュアル通りに送信するだけで思ったとおりの動作をします。
     
     
    まずは画面をクリアする事により、変なデータが表示されていた場合に対処します。 そしてイニシャライズにより、残っているかも知れない設定データを初期化します。 場所の指定(どこに表示するのか)やその他の指定もありますが、今回は表示場所を 初期値(0,0)の位置で表示するので設定は行わず、文字の大きさと漢字モードだけを指定しています。 英数字はフォントサイズが最小(6x8)でも表示しますが、漢字は(8x16)からしか 表示出来ないため、フォントサイズを「02」に設定しました。また、漢字を使用する場合は 「漢字モード」を「ON」しないといけないので、漢字モード設定を「01」にしました。
     
  • アドレス指定
  • 文字を表示するにせよ、図を描くにせよ場所の指定(アドレス)をする必要があります。 VFDの中で場所を表す時に二通りあるようです。一つはカーソル。文字を表示する時に どこへ表示するかというものです。文字高がある為なのか縦が「0−F」までしか指定出来ません。 ドットで指定するのが点やライン・ボックスです。この場合は縦は「0−7F」まで指定します。 設定が16進なのでどの値でどこに表示するかをイメージするのに慣れが必要かも知れません。 やりながら微調整かけて仕上げていくのがいいのかも知れません。
     

    プログラムは上のようになりました。テスト用プログラムの漢字モードを設定した後を変更しています。 漢字で「工場」を表示するのに対して、その前にカーソルの移動をしています。コマンドの後にアドレスを送信します。 「点(ドット)」を表示するプログラムも合わせて載せました。ドットは表示するかしないかの設定があるので、 その場所の点を消すという作業もこのコマンドのdata[4]を「00」にするだけで可能となります。ボックスの指定は ラインとボックス、塗りボックスで同じコマンドです。data[4]のmodeを「00」にするとライン、「01」でボックス、「02」で塗りボックスとなります。 描画する際は「どこからどこまで」というように2点を設定する必要があります。
     
    文字を表示する場合にアドレスが範囲を超えた場合は原点(左上)に表示されますが、点や図形の場合は消えてしまいました。 「なぜ表示しないのだ?」と迷ったらアドレスが範囲内であるかどうか確認してみましょう(範囲はマニュアルを参照下さい)。
     

    ※「static char data[5]」を「static char data[20]」へ変更しないとコンパイルエラーが出ます。
  • 数値の表示
  • 表示のさせ方がわかったので今度はデータを表示してみましょう。
    PIC18F452のアナログポートに可変抵抗を繋いでA/D変換を行い、そのデータをVFDに順次表示させる事を考えました。 今回からプログラムが間延びしないようにサブルーチンを用いて少しプログラムを短くする事を心がけようと思います。
     

     
    メイン部はこの用になっています。カーソルの位置決めとフォントの大きさを決めるサブルーチンを設けて、今後はデータを渡すだけという事にしました。
     

     
    サブルーチンはこのようになりました。あまりプログラムが得意ではないので変な感じかも知れませんが、これが精一杯。 ライブラリとか作ってみたいのですが、なかなか実力が伴いません。
     
    500msの間隔でA/D変換を行いシリアルでデータを送信するだけというプログラムです。 カーソル位置を毎回設定しないと表示が後ろへ後ろへ行ってしまうのでデータを表示する前に必ずカーソル位置を決めるサブルーチンを呼び出しています。 文字の大きさは今回は最大の大きさを使用してみました。何だが小さい感じがしますがどうなんでしょうか?
     

     
    500msの間隔をあけているのと、手でボリュームを回してる下限で数値が飛んでますがきちんと表示されました。 今回わかったのはデータを表示する場合は文字を書きたい位置へカーソルを毎回設定するという事です。 キャラクタLCDでも同じ事なのですけどね。
  • バーグラフ表示
  • A/D変換の値を表示する事をしましたが、今回は値と一緒にバーグラフを表示しようと思います。 256x128のVFDなのでA/D変換の「00−FF」で端から端までグラフが伸びる予定です。 前回のプログラムからバーグラフ用のBOXを表示するプログラムとその周辺の編集を行っただけです。
     

     
    バーグラフはボックスをどこまで表示するかを決めているだけです。 今回は端から端までとA/DのMIN・MAXが同じため、細工せずにそのままの値を代入しています。 「表示する前に消す」という作業が必要な為、毎回バーグラフを全消灯してから必要な分だけ表示させています。 これだとちらつくので実際には必要のない部分だけを消灯するというプログラムに変更する必要があります。
     

     
    動かしてみまいた。やっぱりちらつきがあります。今回はテストなのでこのあたりで終了します。
    Design & Programming - 天姫 -
    Copyright (c) 2007-2009 amahime All Rights Reserved.