« KATOサウンドBOXをDSairで操作する | Main | KATOサウンドBOXをDSairで操作する(続) »

DCCコントローラーをつくっています(続々)

DCCコントローラーはハードは組み上がりましたが、やはりファンクションがうまく動かず、もう一度もとの初代ミント缶のスケッチからプログラムを改造しなおそうと思います。

20180909_10_49_1920180909_10_51_19


9/13追記
DCCコントローラーは、TM1637のLED表示ドライバーの処理に時間がとられるようで、DCC出力が一旦途切れて瞬断状態となる不具合が出ます。ファンクションの表示しなければ問題ないのですが、それではつまらないのでもう少しプログラム捻る必要がありそうです。

9/16追記
Yaasanさんとtwaydccさんにいただいたコメントを参考にして
SparkFunの7-Segment Serial Displayが手もとにあったので、これをI2cハードウェア接続で使ってみると、走行中にファンクション番号をLED表示させても走行電流瞬断現象はおきなくなりました。


|

« KATOサウンドBOXをDSairで操作する | Main | KATOサウンドBOXをDSairで操作する(続) »

Comments

TM1637はArduino向けのフリーのライブラリを使用されていますでしょうか?
TM1637は、疑似I2Cのため、ハードのI2C機能で動かさないので、CPUパワーを消費するソフトウェアI2Cもどきで制御する必要があります。

TM1637でミント缶に使おうと思いましたが、この大問題で解決策が見つからず、採用を断念しました。

無理矢理使う場合には、更新頻度を低くして、必要なときだけ書き換えるような仕組みにする方が良いと思います。

Posted by: Yaasan | September 14, 2018 07:42 AM

Yaasanさま
いつもアドバイスありがとうございます。
TM1637は、純正のI2cハードドライバーではなくソフトのドライバー動かすので処理速度が遅いのですね。ライブラリーは、GitHubのものを使っています。

正規のハードウェアI2cで制御できる?Adafruitの4-Digit 7-Segment Display(HT16K33使用)やSparkFunの 7-Segment Serial Displayもあるようなので、こんどはこちらで試してみます。
https://www.switch-science.com/catalog/1639/
https://www.switch-science.com/catalog/1128/
Arduinoで周辺機器を制御する場合は、ハードで制御するかソフトで制御するかで、こんなに差が出るのですね。
シリアル通信でもおそらく同じことがおきるのでしょうね。
良い勉強になりました。

Posted by: ゆうえん・こうじ | September 14, 2018 09:44 AM

ゆうえんさん、こんにちは。
私はforum.arduino.ccにアップされていたTM1637keyライブラリを使いました。
http://twaydcc.cocolog-nifty.com/top/2017/10/7led-e667.html
DCC瞬断状態の現象ですが、processModeDial()関数内で
gLocAddressが0でない時、毎回 analogWrite( ,0)を実行していませんか。Mint缶IVではgLocAddress>0に変わった時にフラグを立てて1度だけ実行しています。

Posted by: twaydcc | September 14, 2018 12:16 PM

twaydccさん、コメントありがとうございます。

ご指摘のように
processModeDial()関数内でgLocAddressが0でない時、毎回 analogWrite( ,0)を実行していましたので、gLocAddress>0に変わった時にのみ実行するように書き直してみました。
TM1637のライブライー使ってファンクション押したときに、7セグLEDにファンクション番号と状態を表示すると、瞬断時間は短くなるようですが、やはりモーターの一時的な回転数変化がはっきりわかります。

やはりTM1637では走行中にファンクション番号と状態表示するのは無理みたいです。
今回はアドレス表示のみで止めておきます。

Posted by: ゆうえん・こうじ | September 14, 2018 10:47 PM

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



« KATOサウンドBOXをDSairで操作する | Main | KATOサウンドBOXをDSairで操作する(続) »