スレッドの評価:
  • 回答数0 - 平均0
  • 1
  • 2
  • 3
  • 4
  • 5
DSシールドで自動運転プログラミング
#21
2つを組み合わせれば、確かにスケッチは多少は簡略化可能ですね。

シリアル通信のデータサイズは、小さくするのがポイントです。
DCC信号を生成する処理が裏で動くため、通信の優先度が下がってデータ落ちのリスクがあります(シリアル通信の裏バッファは1バイトしかありません・・・)
返信
#22
(07-15-2018, 06:55 AM)yaasan : ご助言、ありがとうございます。少しだけ頑張ってみます。今後ともよろしくお願いします。
返信
#23
「DSshieldAUTO」スケッチについて質問があります。

以下の様にコマンドの中に変数を入れてみたのですが、動いてしまいました。
この使い方は、正しいですか?

また、レール上の車両のアドレスを読み取って変数に入れる様なコマンドはありますか?
これは、車両が変わった場合、スケッチの書き直しになるので、毎回PCを接続する必要があります。
PCを使わないで運転したいので、スイッチを押すことをトリガーとして、車両のアドレスを読み込めれば、
車両を交換しながらの運転が出来ます。

よろしくお願いします。

void user_program(void)
{
  int a = 5;// 車両アドレス:5
  int on = 1;
  int off = 0;
  
  CMD_Power(on); // 線路電源 ON
  Serial.println("Power On");// シリアルモニタ出力
  CMD_Wait(1000);
  // 車両アドレス:5, ファンクション番号:F0 Light ON
  CMD_LocFunction(ADDR_DCC + a, 0, on);
  Serial.println("F0->ON");
  CMD_Wait(10000);
  // 車両アドレス:5, ファンクション番号:F0 Light OFF
  CMD_LocFunction(ADDR_DCC + a, 0, off);
  Serial.println("F0->OFF");
  CMD_Wait(1000);
  CMD_Power(off); // 線路電源 OFF
  Serial.println("Power Off");// シリアルモニタ出力
  CMD_Wait(10000);
}
返信


ページ移動:


このスレッドを閲覧中のユーザー: ゲスト2人