無料ブログはココログ

« ミント缶Ⅳの画面デザイン その2 | トップページ | ミント缶Ⅳにオプションモードを追加 その2 »

2018年7月26日 (木)

ミント缶Ⅳにオプションモードを追加

CV書き込み

  ミント缶ⅣでもCV書き込みモードを残していますが、積極的なアナウンスは行わない事にします。理由はDesktopStationさんの記事の通りです。ミント缶Ⅳは大幅に価格がアップします。そこにCV読み出し機能を追加したら、価格面で入門者用の役割を果たせなくなります。そこで代わりと言っては何ですがOPS CV書き込み(動作モードCV)を追加しました。
  [SEL]ボタン長押しでオプションモードに入ります。対象のLocoアドレスを決めたらOPT:のオプションを選択します。[▽]ボタンを押すと、ついでに追加したコンシスト制御モードに変わります。下の画面はOPSモードです。

Ops_mode

OPS CV書き込み

  走行中にCV値の書き変えが出来ますので、分かり易いCV3(加速)とCV4(減速)をLenz Silverで実験しました。結局どちらも一旦停車しないと分かりませんが、CV値を読み出して確かめなくても書き込んだ結果を体感する事が出来ます。
  スマイルデコーダはOPS書き込みを考慮していないのでAck動作で一瞬モータスピードが上がります。これはまずいなと思ってNmraDccライブラリを眺めていたらnotifyServiceMode()と言うコールバック関数を見つけました。これをスマイルデコーダのスケッチに追加します。

boolean gSvcMode = false;

extern void notifyServiceMode(bool svc)
{
  gSvcMode = svc;
  #ifdef _DSFOX
   Serial.print("notifyServiceMode "); 
   Serial.println(gSvcMode); 
  #endif
}

void notifyCVAck(void)
{
  if(gSvcMode)
  {
    MOTOR_Ack();
  }
}

  これでOPS書き込みの時はAck応答せずに済みます。CV値はnotifyCVChange()関数内で変数を更新して直ちに動作に反映させます。

extern void notifyCVChange( uint16_t CV, uint8_t Value)
{
  if(!gSvcMode)
  {
    switch(CV) {
      case CV_ACCRATIO:
        gCV3_AccRatio = Value;
        break;
      case CV_DECCRATIO:
        gCV4_DecRatio = Value;
        break;
    }
}

  一番効果を実感出来そうなBEMFパラメータで走行中の変化を確かめたいですが、テスト環境が整っていません。DesktopStationさんからお借りしているロクハンのセットとスーパースリムで試しましたが、この程度の傾斜ではEMFオフで何の問題も無く走行して、効果を体感するには至りませんでした。

Rokuhan

 

« ミント缶Ⅳの画面デザイン その2 | トップページ | ミント缶Ⅳにオプションモードを追加 その2 »

コントローラ」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: ミント缶Ⅳにオプションモードを追加:

« ミント缶Ⅳの画面デザイン その2 | トップページ | ミント缶Ⅳにオプションモードを追加 その2 »