アクティブマトリクス蛍光表示管の実験用表示モジュールの試用 (3)
改訂版では、I2C接続用端子が新たに追加さました。
下からGND、VCC、A4(SDA)、A5(SCL)、D2が割り付けられており、
付属のRTCモジュール(DS3231利用)が直接接続出来ます。
前回に引き続き、豊四季タイニーBASIC for Arduino機能拡張版(以降豊四季Tiny BASIC拡張版と略称)にて
動作確認をしてみます。
DATEコマンドで時刻を参照すると、当然正しく無いですが参照できました。
SETDATEコマンドで正しい時刻を設定します。
次に、下記のプログラムにてVFDに時刻を表示してみます。
10 VCLS:VBRIGHT 100
20 GETTIME H,M,S
30 VMSG 0,#-2;"現在の時刻は";H;"時";M;"分";S;"秒です"
40 WAIT 1000
50 VSCROLL 256,-1
60 GOTO 20
動かして見ると、表示内容を更新する毎にノイズが乗るような感じで乱れたりします。
旧バージョンでも試してみましたが、同様の現象が発生しました。
う~ん、BASICインタプリタのバグか?
雰囲気的に「データ転送時のデータ化け」っぽく、
調査していくと、VFDふぁんさんが公開しているサンプルソースのコメントに
ヒントがありました。
どうも、輝度設定(VBRIGHTコマンド)に影響するようです。
輝度を最大輝度の設定(VBRIGHT 255)にすると正常に表示出来ました。
VFDの輝度はディスプレイイネーブル(EN)をPWMを使ってオン・オフ(表示のオンオフ)して
調整しているのですが、これがスイッチングノイズを発生させて影響を及ぼすようです。
VFDの供給元のノリタケの技術サポート公開資料の
「アクティブマトリクス型CL-VFD アプリケーションノート - インターフェースインターフェースについて」に
との記載がありました。
ということで、データ転送中は輝度設定を255(最大輝度)にしなければならないことが
分かりました。利用の際の制約事項ですね。以後気を付けることにします。
問題解決後の実際の動作の様子
プログラムの自動起動の設定
利用の都度、プログラムをRUNコマンドで実行させるのはちょっと面倒です。
電源ON後、時刻表示プログラムをロードして実行するようにしたいですね。
RTCモジュール端子のD2はRTCモジュールのSQW(割り込み通知用の入力)用ですが、
この信号はアクティブLOWなので、RTCモジュールを接続した状態で起動すると
D2は常にHIGHとなります。これは利用出来ますね。
RTCモジュールが接続されていれば、電源ON時はD2はHIGHなので自動起動出来ます。
そこで、スケッチのttconfig.hのAutoPinの設定を7から2に変更して書き込みます。
書き込み後、現在時刻表示プログラムをコピペしてSAVEコマンドで保存します。
(VBRIGHT 255の修正は忘れずに)
保存してプログラムが自動起動して、時刻を表示してくれました。
いい感じで動いてくれました。
単体で動作出来るのは良いですね。
次に、I2C接続の湿度・温度センサーもつなげて時刻・湿度・温度を表示出来るように
したいと思います。
最近のコメント