HOME >> 鉄道模型自動運転システム >  新登山鉄道 点灯制御のスケッチ

新登山鉄道 点灯制御のスケッチ

 制御盤と表示パネルの工作を実施しています。 表示パネルの場内信号と出発信号の緑/赤の点灯制御を検討しました。 この部分は、ポイントと進行方向選択スイッチの状態からマイコンによる判断で点灯しようとするものです。

 

■ 場内信号と出発信号の緑/赤の点灯制御のねらい

 この信号機は、実際のレイアウト上にも2灯式の信号機を設置するつもりですが、制御盤の表示パネルにも表示させます。 その目的は、自動運転の場合でも、そのシーケンスの状態を表示させようとしているのです。 このため、スイッチから直接点灯制御でなく、マイコンを通しての制御が必要なのです。 勿論、手動操作の場合も同様に表示させることが出来るようにしておく必要があります。

 このために、スイッチの操作状態をマイコンに読み込んでから、状況を判断させ、必要なLEDを点灯させようと目論んでいるのです。 手動操作の場合は、スイッチの状態から判断し、自動運転の場合は、その運行モードの状態から判断するロジックを作る事にしました。

 

■ Arduino のピン番号の整理

 最初に、各信号情報とピン番号などの関連を一覧表にまとめておきます。 そのI/Oピンが入力端子七日、出力端子なのか、また、アナログがデジタルなのか、そして、その情報をしめす記号などを決めておきます。

 その一覧表を下にしめします。 このPDFファイルは、⇒ fig-136-1pdf

 ここで、場内や出発の信号は、赤か緑かのどちらか一方をONさせるもとします。 このため、S1G と S1R は対として記号をふってあります。

 

■ 信号制御のロジックの検討

 最初に、信号制御の方法を考えました。 ポイントスイッチで選択された経路と、進行方向選択スイッチの情報をもとに、どこのホームの出発信号を進行、即ち緑に指示し、どこのホームの場内信号を緑にするかを指定します。 その組合せは多くの場合があるため、フローチャートを使って整理する必要がありました。

 さらに、スイッチが操作された時に反応してアクションを起こすようにすると、割り込み処理などの手法が必要になりそうです。 そこで、常時一定の監視ループを回しておき、その時に引っかかった状態変化に対応した指示を出す方法とすることにしました。

 そして、下記のようなフローチャートにまとめました。 その考え方は、

  1. 最初に全ての信号を赤にする。
  2. スイッチ状態をチェックする。
  3. その情報を基に、該当する経路だけを緑にする。
  4. 少し時間を稼ぐ。

とし、このサイクル(ループ)を常時回しておく。 LEDは赤と緑の点灯を繰り返すが、1から3までを素早く実施すれば、緑が連続して点灯しているように見えるはずでる。 この方法は、変更前の状態を覚えておいてクリヤさせるという操作が必要ないので、ロジックを簡単にすることができるのだ。 即ち、新旧の状態を比較して処理を実行するというややこしい処理を必要としないのである。 眼の残像機能を応用したLED点灯制御ならでの方法である。

         このPDFファイルは、⇒ fig-136-2pdf

 ポイントスイッチの状態によって分岐させたフローは、何もしないか、あるいはどれか一つの操作を実施するようにする。 その操作は、指示された経路の出発ホームと到着ホームの場内と出発信号を緑に点灯させ、対となっている赤色を消灯させるのである。 経路の判断の順番はどれでもよいのであるが、ここでは最初に進行方向を選択し、その後に各ポイントの状態を判断させている。

 

■ スケッチの記述

 このパネル表示だけの命令を書き込んでみた。 初期設定として必要な部分は忘れないように全て記述して於いた。 PWMキャリヤ周波数も可聴域外の31KHzに設定しているし、ピン番号と入力/出力の指定も全て記入した。

 スイッチの状態を示す変数として、上記のフローチャートでは大文字を使った文字を使用しているが、自動運転の場合の記述を配慮して、小文字の変数として設定し、自動運転の場合は、この小文字の変数を使うことによって、同じプログラムが使用出来ると考えている。 そして、必要ならサブルーチン(現在では関数と言うらしい)にしておくことも考えている。

 また、フローの選択においては、 if 〜 文と、else if 〜文を使って分岐させ、ループ内では、LED点灯コマンドは一度だけしか通過しない ように記述していった。 このIF文の記述方法について、「if 文の違いについて」(2021/1/17)にて、自分なりに理解し納得しているつもりです。

   記述したスケッチ文 ⇒ Sin-Tozan-Unit-02.html

 

■ 点灯テストによる確認

 まず、Arduino 等の配線を実施しておきます。 

 配線が完了すると、パソコンとArduinoをUSBケーブルでつなぎ、スケッチを書込みました。 そして、電源をONさせました。 下左が電源投入前の状態で、下右の写真が投入後の状態です。 

 ポイントと進行方向スイッチを操作して、LEDの点灯状態を確認しました。

 確認操作の状態を動画で紹介します。

 予定していた機能どうりの作動で、まず一つの関門をクリアーしました。

  .

 

■ チップLEDと抵抗の仕様

 説明が前後しますが、表示パネルに使用したチップ部品を説明します。

 使用したLEDは、「新ATSに挑戦 信号機の制作」(2018/10/1)で使ったものと同じ部品です。 OptoSupply 社の表面実装用 LED で、発光部が R0.8mm の半球形になっているものである。 この時は、それぞれの明るさの違いを気にしていなかったが、緑がやけに明るいなとは思っていた。 今回は同じパネル上で同時に点灯させるので、明るさを同じ様にしようと考えた。 そこで、各LEDの仕様を比較してみた。

品番 VF IV
赤色 OSR5120641E 1.8 - 2.4V 650 - 850mcd
青色 OSB5120641E 2.8 - 3.4V 650 - 850mcd
黄色 OSY5120641E 1.8 - 2.4V 300 - 500mcd
緑色 OSG5120641E 2.8 - 3.4V 2000 - 2500mcd

 いずれの部品も 2016年に、秋月から購入したもので、明るさは IF = 20mA の時である。 やはり、緑色がずば抜けて明るい事が分かる。

 そこで、赤色LEDに3mAを流すように抵抗を 1KΩと定め、Vf値の高い青色と明るさの劣る黄色のLEDは、510Ωとし、明るい緑色は2KΩの抵抗を挿入して、明るさが揃うことを目論んだ。 チップLEDなので、ブレッドボードでのテストが出来ず、一発勝負でユニバーサルボードにハンダ付けした。

 5volt電圧を掛けて点灯してみると、思惑どうりに明るさはほぼ同じようであったが、でも眩しいくらいに光輝いていた。 表示パネルとしてはこれでは見難いのでもっと暗くする必要があった。

 そこで、一括調整が出来ないかと、信号用はGND側に、センサ用は+5電源側に2KΩの抵抗を入れてみた。 これは暗すぎたし、緑色LEDが点灯しなくなた。 そこで1KΩに下げてみたが、緑がかすかに点灯する状態なのでNGであった。 各色別に個別に調整する必要があるのだが、やり直すのは大変なので、信号用は元に戻して、スリガラス対応、否、0.3mmの半透明プラ板を上に被せて対応した次第である。 このため、点灯状態がすこしボケた状態となってしまい、表示パネルとして 50点の出来栄えと不合格を付けたのだが・・・・・・・、仕方なくこのまま使うことにしました。

 いろいろ苦労しました・・・・・・・・・・・・。

 

ページトップへ戻る .


 2021/11/16 作成