ブログパーツUL5

シリアル制御LCD表示が動作

 先日購入したシリアル制御LCD表示がどうも相性があり、正常動作していませんでしたが、やっと正常動作できるようになりました。原因は2つあり、1つは通信速度の自動設定機能がうまく機能しないこと、もう1つはLCDの初期設定のエスケープコードが邪魔していたことでした。購入したLCD表示には、起動時のスペース(" ")のパルス幅で通信速度を検出して自動的に設定できるという優れた機能があります。このことが相性の問題を生じさせていることがわかりました。

(写真はリモコン以外のAD値を表示)

問題点1
 ETX端子(プリント基板にはTXと印刷されている)では、9600bps以上では表示していたが、4800bps以下で表示できなかった。
問題点2
 LCD端子では、通信速度の自動設定機能がうまく機能せずLCD端子の通信速度の4800bpsにならない。

対策1
 ETX端子での設定は、タイミングを少し調整したら動作するようになりました。LCD初期設定の時に、下記のような設定をしてあげれば問題なく動作しました。
====================
FOR i=0 TO 1
A = " "
ETX 4800,A
DELAY 50 'これでタイミングをとる
NEXT i
====================

対策2
 LCD端子での設定は、ちょっと苦戦しましたが、LCDINITコマンドをLCDの通信速度の設定後に行うことで動作するようになりました。
====================
DIM A AS BYTE
DIM i AS BYTE
' LCD表示の通信速度設定
FOR i=0 TO 1
 PRINT " "
 DELAY 50
NEXT i
' roboBASICのLCD初期設定
LCDINIT
PRINT 12 'CLS
' アナログポートのAD値を表示
FOR i=0 TO 6
 A = AD(i)
 PRINT FORMAT(A,DEC,3)
 PRINT " "
NEXT i
END
=======================

 このLCD表示は、高い純正品ではないので、LOCATEコマンドなどには対応していません。LCD制御はroboBASICのコマンドでなく、print文でアスキーコードを送るなどの表示方法にはプログラムで工夫する必要があります。それが面倒な場合には、純正品の購入をお勧めします。でも購入したキットは2600円ですから機能的には十分です。なお、秋月でLCD表示のキットの販売が再開されれば、試してみる価値はありそうです。折角、製作したPICライターの使う場面が遠退いたのは、残念ですが別の機会に利用しましょう。
0

    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    << September 2017 >>