SL鉄道模型転車台電動化(ARDUINOプログラム編)
2013年2月19日


 前回はNATOCを転車台を動かしましたが、今回はARDUINOを使って転車台のプログラムを作ってみます。
 スイッチ操作で転車台を動かすのにARDUINOを使っています。

 この時はスイッチの状態を読み取ってサーボに命令を送信するのに使っています。
 今回はARDUINOでプログラムを動かして直接サーボを制御します。
 また転車台に載った車両もARDUINOで制御してみます。

 ARDUINOにはDIGITAL出力とANALOG出力の2種類があります。
 DIGITAL出力は5Vか0Vのどちらかの出力ができ、ANALOG出力はPWMを使ってパルス幅で出力を調整する事ができます。
 今回は車両の速度は調整する必要がないのでDIGITAL出力を使います。
 なおどちらの出力も±の極性は切り替えられないので片方向しか電流を流す事はできません。
 また最大で5Vなので大きい車両は動かす事はできせん。
 なおモータードライバを使ったARDUINOのPWM出力のインタフェイスについてはこちらで紹介しています



 ハードウェアの構成はスイッチ操作版とほぼ同じですが転車台の電源に接続する配線が増えています。
 ARDUINOのDIGITALピンの4番とを下のGRD(サーボを接続するGNDのとなり)を転車台の電源に接続します。
 なお車両の進行方向によりピンの接続が逆にしないいけないので差し替えられるようにしておいてください。



 ちなみに私はジャンパー線で直接電源コネクタとADRUINOを接続しました。

 なおオリジナルの転車台は本線の2本と接続した時は本線と転車電源が通電してしまいます。
 そのため今回のプログラムを動かすにはこちらの改造が必要となります。

 本線への電源供給は通常のコントローラで行います。
 この電源は制御しないので電源は入れっぱなしで構いません。
 なお車両は転車台側の引込線だけ使いますのでポイントを引込線側に切り替えておいてください。
 スイッチを押す時は車両を転車台に載せた状態にしておいてください。


 今回のプログラムは転車台回転させて本線と接続する1番線と5番線を交互に切り替えます。
 切替えている間列車は走り続けます。
 そのため列車の速度調整して列車が到着する前に転車台が接続し終えるよう速度を調整する必要があります。
 転車台の電源を切った後、転車台を回転させて5番線から1番線に切り替えます。

 スイッチ2は5番線に接続する時に主桁の後側と接続します。
 このため列車の向きを常に同じ方向にする事ができます。

 スイッチ3は車両の進行方向が反時計回りに対応しています。
 そのためこのモードを動作させる時は主電源の進行方向を反時計回りにして転車台電源の接続の極性を反転させてから行ってください。



 arduinoに今回のプログラムを転送します。
 プログラムに関しては前回の記事を参照してください。
 今回のスケッチはこちらになります。
 今回転車台が接続するのは本線の2本(1番と5番)のみです。
 レイアウトに合わせてそれぞれの値を調整する今回転車台が接続するのは本線の2本(1番と5番)のみです。

int line1_position = 450; //前停止位置1(正転)の位置設定
int line5_position = 1350; //前停止位置5(正転)の位置設定
int line1_reverse = 450; //前停止位置1(逆転)の位置設定
int line5_reverse = 1350; //前停止位置5(逆転)の位置設定/TD>
int back1_position = -1350; //後停止位置1(正転)の位置設定
int back5_position = -450; //後停止位置5(正転)の位置設定
int back1_reverse = -1350; //後停止位置1(逆転)の位置設定
int back5_reverse = -450; //後停止位置5(逆転)の位置設定/TD>

 これらの値は手動操作用のスケッチの値が既に調整済ならその値を参考にしてください。
 調整は実際にボタンを押して行います。
 1番のボタンでline1_reverseとline5_positionを調整します。
 2番のボタンではline1_positionとback5_reverseを調整します。
 その他の値は今回のプログラムでは使っていませんので調整する必要はありません。

 一回のボタン操作で周回する回数を指定する事ができます。
 loop_countにセットする値が周回数です。
 調整のため最初は1回に設定していますが何回か繰り返した方がデモ効果があると思います。

 転車台の回転速度が列車が戻ってくるのに追いつかない場合は主電源のコントローラーなるべく列車の速度を落としてください。
 どうしても間に合わない場合は時はrotate_speedを変更して転車台の回転速度を調整してください。
 この値を小さくすると転車台の回転速度が速くなります。



 実際に動作させた動画です。

     

 昨日送られてきた読者プレゼントのB1001形機関車で行いました。
 この車両は低速で良く走るので今回の転車台のプログラムにぴったりです。
 ただピタッと止まるので転車台に電源を入れていない時(特にバックで侵入した時)は主桁の端で止まってしまいます。(転車台の回転に支障はありませんが)

 なお反時計回りで車両の向きを変えないように転車台を回転させるにほぼ一周近く転車台を回転させる必要があります。
 このため列車の到着まで転車台の回転が追い付きませんのでこのプログラムでは割愛しました。
 転車台の回転速度を上げるなどすれば対応ができると思います。
 興味のある方は是非チャレンジしてみてください。
 なお今回のような改造を行うと転車台を破損してしまったり動作不良になる場合がありますのであくまでも自己責任という事でお願いします。

目次に戻る