61.ポイントスイッチ スイッチ状態表示ユニットの作成
記載を最新の状態に合わせ、内容を一部変更しました(2022/05/01)
28.ロコネットを利用したポイントスイッチの作成と40.ロコネット マルチ表示ユニットの作成を合わせてマイコンATmega328Pに変更したものです。
以前の記事では基板頒布がありませんでしたが、今回は基板頒布できるようにして見直しをしました。
DCCのポイントを都度アドレス設定して切り替えるのが面倒だと感じたことありませんか?
レイアウトのコントロールパネルでスイッチにより切り替えたいと思ったことありませんか?
ポイントの開通方向を表示させたいと思ったことありませんか?
そんな思いを解決してくれるのが、このPointSwitcherです。
以前、PICマイコンで実現していましたが今回ATMega328Pで基板化しました。
Arduino IDEからプログラムが書き込みできるのと、ライブラリを使用することでプログラムも
シンプルで分かりやすくなっています。
またI2Cのインターフェースも備えているので別途I/Oエキスパンダなど接続することで、扱える
I/Oのポート数も増やすことができます。
出来る機能は
スイッチでポイントの切り替えコマンドをロコネットに送るポイントスイッチ
ポイントスイッチはこんなイメージ
ロコネットからポイントのスイッチコマンドを受信してポイントの切替表示ができる表示ユニット
表示ユニットの作例はこんな感じ(現時点ではポイントの方向現示のみです)
これらの機能がスケッチを変えるだけで実現できる基板です。
回路図
回路図(PDF)はこちら 最新版R04に変更しました(2022/05/01)
パーツリスト
必要な部品は以下の通りです。
No | カテゴリ | 名称 | 部品名 | 個数 | 通販コード |
C1 | 共通 | 電解コンデンサー | 22uF 16v 16MH722MEFC5X7 | 1 | 秋月 P-10592 |
C2 | 共通 | 電解コンデンサー | 47uF 25v 25MH747MEFC6.3X7 |
1 | 秋月 P-10596 |
C3 | 共通 | 積層セラミックコンデンサー | 0.1μF | 1 | 秋月 P-13582(10本入) |
U1 | 共通 | ATmega328P-PU | ATmega328P-PU | 1 | 秋月 I-03142 |
共通 | IC ソケット28P | 2227MC-28-03 | 1 |
秋月 P-01339 | |
U3 | 共通 | 5vレギュレータ | 7805 L7805CV-DG | 1 | 秋月 I-07903 |
X1 | 共通 | セラロック 16MHZ | CSTLS16M0X53-B0 | 1 | 秋月 P-09576 |
D1 | 共通 | LED 3mm | 任意 | 1 | 秋月 I-11637(緑) |
D2 | 共通 | 整流用ダイオード | UF2010 | 1 | 秋月 I-00124 |
J3 J9 | 共通 | ピンヘッダ 1x2 | 2.54mm 1x2 PH-1X2SG |
2 | 秋月 C-08593 |
J5 | 共通 | 電源ジャック 2.1mm | MJ-179PH | 1 | 秋月 C-06568 |
J6 | 共通 | I2C Groveコネクタ L型面実装 | 114020164 | 1 | 秋月 C-15514(20個入) |
J7 | 共通 | ピンヘッダ 2x3 | 2.54mm 2x3 PH-2x3SG |
1 | 秋月 C-16883(10個入) |
J8 | 共通 | ピンヘッダ 1x6 | 2.54mm 1x6 PH-1x6SG/RH |
1 | 秋月 C-01669 |
J15 | BIDI | I2C Groveコネクタ L型面実装 | 114020164 | 1 | 秋月 C-15514(20個入) |
J1 J2 | NET | 6極6芯モジュラージャック | 7002-6P6C(15mm) | 2 | 秋月 C-00954 |
U2 | NET | コンパレータ DIP | NJM311D | 1 | 秋月 P-10082 |
Q1 | NET | トランジスタ | 2SC1815 2SC1815L-Y-T92-K |
1 | 秋月 I-06475(20個入) |
J14 |
NET | ピンヘッダ 1x2 | 2.54mm 1x2 PH-1X2SG |
1 | 秋月 C-08593 |
R1 | NET | カーボン抵抗 | 47KΩ 1/4w | 1 | せんごくネット |
R2 | NET | カーボン抵抗 | 150KΩ 1/4w | 1 | せんごくネット |
R3 | NET | カーボン抵抗 | 10KΩ 1/4w | 3 | せんごくネット |
R4 | NET | カーボン抵抗 | 22KΩ 1/4w | 1 | せんごくネット |
R5 | NET | カーボン抵抗 | 4.7KΩ 1/4w | 1 | せんごくネット |
R6 | NET | カーボン抵抗 | 220KΩ 1/4w | 1 | せんごくネット |
R7 | 共通 | カーボン抵抗 | 680Ω 1/4w | 1 | せんごくネット |
R8 R9 | 共通 | カーボン抵抗 | 10KΩ 1/4w | 3 | せんごくネット |
R10〜R25 | DISP | カーボン抵抗 | 1KΩ 1/4w | 16 | せんごくネット |
J11 J4 | DISP | ピンヘッダまたはピンソケット 2x8 | 2 | ||
J10 | SWITCH | ピンヘッダまたはピンソケット 1x10 | 1 | ||
U1 | 共通 | ATmega328P-PU | ATmega328P-PU | 1 | 秋月 I-03142 |
共通 | IC ソケット28P | 2227MC-28-03 | 1 |
秋月 P-01339 | |
U3 | 共通 | 5vレギュレータ | 7805 L7805CV-DG | 1 | 秋月 I-07903 |
X1 | 共通 | セラロック 16MHZ | CSTLS16M0X53-B0 | 1 | 秋月 P-09576 |
コンパレータは入手性を考え汎用品のDIPタイプに変更しました。
*NETと記載部分はロコネットの機能で使用します。
基板の作成
基板については、在庫が亡くなり次第頒布終了とします。
【お知らせ】2022/05/01
基板については、諸事情により頒布は行わないことになりました。
よって、基板データは、ガーバファイルで公開します。
必要な方はこのデータを使用してElecrowへ基板発注してください。
基板ガーバデータは こちら にあります。
スケッチについては、サンプルという形式で公開します。
これらの機能に関しては、一切サポートいたしませんのであらかじめご承知おきください。
アートワーク
実装
必要なパーツは以下のものです
背の低いものから基板にハンダ付けします。
実装イメージです。
スケッチの書き込み
1.ArduinoUNOへのライブラリの登録(すでに登録済みであればこの項はスキップしてください)
この基板にはArduino のロコネットライブラリが必要になります。
ライブラリマネージ管理を選択してライブラリマネージャを開きます。
下記のように入力して検索し、ライブラリをインストールしてください。
2.ArduinoUNOへのスケッチ書き込み
対応するサンプルスケッチを書き込んでください。
スケッチは こちら にあります。
スケッチに関しては、個人で使用するに限り、自己責任において自由に改変して使用していただいてかまいません。
ポイントスイッチとして使用する場合は Pointsw を使用してください。
スイッチ表示機として使用する場合は SwitchDisp を使用してください。
BIDIセンサとして使用の場合は Sensor を使用してください
書き込み機との接続
書き込みはSmileWriterCombo-Aで行います。
Comboに付属の2X3のケーブルを使用して基板のJ7(ICSP)に以下の様に接続します。
Arduino IDEでの設定
Arduino IDEで
・ボードはArduinoNano
・プロセッサは ATmega328P(old Bootloader)
・シリアルポートはArduinoUNOが接続されているシリアルポート
に設定します。
ブートローダの書き込み
初めに新品のマイコンの場合はブートローダーを書き込みます。
メニューで「ツール」→「ブートローダを書き込む」を選択して書き込みます。
スケッチの書き込み
ブートローダが書き込めたら対象のスケッチをロード(読み込み)して
スケッチを「書込装置を使って書き込む」を選択して書き込みます。
使い方
ポイントスイッチとして使用する場合
ポイントスイッチとして使用する場合はJ10の端子を使用します。
J10のGND端子と1〜8の端子の間でスイッチを設ければこのスイッチの
ON/OFFで切り替えのコマンドが出力されます。
J4,J11も片側だけですがスイッチの端子として使用可能です。
赤枠で囲った部分にスイッチを接続しても使用可能です。
スイッチDISPLAYとして使用する場合
J4とJ11の端子を使用します。
マイコンピンの吐き出しと吸い込みの機能を使ってLEDを点灯させるので負荷のかかる
物は接続できません。
上記写真では右から1〜8の順で、1つの番号で t と c で2列を使います。
基板端(写真では写真下)のところに極性をダイオードの記号で記載しているので
この向きに合わせてLEDをセットしてください。
LEDだけでなくフォトカプラも使用可能です。
デフォルトはポートがすべてLowになるので、すべて t 側になります。
ポイントなどの物理的状態ではなく、あくまでもコマンドステーションが認識している
スイッチの向きになります。
アドレス設定(ポイントスイッチ・Display共通設定)
スケッチでは、指定したアドレスから連続した8個分のアドレスを操作・表示できます。
例えばアドレスを51として設定した場合、アドレスが51〜58までが使用できます。
基板へ電源投入前にJ3のジャンパーをショートピンでショートします。
そしてロコネットケーブルで基板とコマンドステーションを繋ぎます。
電源投入するとLEDが点滅します
コマンドステーションまたはスロットルでスイッチの選択状態にして、対象となる先頭のアドレス
51番から開始するなら51と設定して ”c”を押します。
コマンドが受信されるとLEDの点滅が消えますのでショートピンを外して、
電源再投入でアドレスに設定は完了です。
※写真では点滅から消灯とありますが点灯のままになる場合もあります。
点滅状態が終了するだけなので不具合ではありません。
BIDIセンサとして使用の場合
BIDIセンサーの場合は写真のようにBIDIDetectorを付属のケーブルで基板のJ15のコネクタに接続します。
接続については以下のイメージです。
アドレス検知・在線検知の構成は、さらにGroveの7セグLEDも接続できます。
サンプルスケッチでの設定に関する留意事項
Loconetの機能を使用する場合は、BDL168相当のコマンドでやり取りします。
BDL168を使用した事がない場合で、下記にある設定値の意味が判らない場合は使用しないでください。
AddrDispとSensorのサンプルスケッチ内にある以下の定数値を必ず設定して使用してください
送信側と受信側で一致しないと情報を受け取ることができません。
//Address Disp const ボードの設定値は以下の3つを設定変更する
#define BOARDID 3 //BoardID
#define SECTIONID 9 //SectionID
#define ZONEID 5
BoardID:仮想のBDL168のボードIDと認識してください
ZONEID:BDL168でのゾーンに相当します(アドレス表示で使用)
SECTIONID:16個あるセクションのどのセクションかを指定します。(センサで使用)
参考動画
ご注意:掲載内容に基づき、作成または改造を行い、万一損害が生じても当方では責任を持ちませんのでご自身の責任の範囲でお願いします。