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個あるセクションのどのセクションかを指定します。(センサで使用)

参考動画

ご注意:掲載内容に基づき、作成または改造を行い、万一損害が生じても当方では責任を持ちませんのでご自身の責任の範囲でお願いします。


Copyright (c) 名古屋電鉄 http://nagoden.la.coocan.jp/