車載用デコーダ(One Coin Decoder 2)
部品代500円で作る簡易DCCデコーダの改良版をご紹介します。
最新版のワンコインデコーダ3はこちらです。
旧Verはこちらです。
トピックス
2009.11.03 CV7(デコーダバージョン番号)サポート、アナログ判定時間修正
2009.09.07 PageモードによるCV読み出し機能をサポートしました。112~128アドレス選択時の不具合を修正しました。
2009.08.10 部品の詳細紹介ページ、および、製作方法の詳細についてページを追加しました。(4ページ構成に変更)
2009.08.08 回路図に電流制限抵抗を追記しました。DCS50Kでのアドレス設定について追記しました。
2009.05.23 従来の「ワンコインデコーダ」を改良した、「ワンコインデコーダ2」を公開しました。Pageモードをサポートしたことから市販のデコーダと同じくプログラム線路でCVを変更することが可能となりました。その他機能UPを行いました。是非作ってみてください。
はじめに...
鉄道模型をDCCシステムで楽しんでいる方が増えてまいりました。私も昨年導入してからというもの高価なデコーダを買っては所有車両に搭載工事を行ってきました。
ある日ふと、購入したデコーダを眺めているとPICマイコンが搭載されていました。電子工作でよく使われているPICマイコンなら、デコーダを自作できるかもと思い、研究をはじめました。
どうせ作るなら多くの人がDCCを導入しやすくするために、ワンコイン(500円程度)で製作できることを目指し開発を進め、完成したのが「ワンコインデコーダ」です。
さらに、このたび「ワンコインデコーダ」を改良し、アナログ運転、プログラム線路におけるPageモードでのCV設定、入換動力車標識モード、両極性FX専用デコーダモード等の新機能を搭載した「ワンコインデコーダ2」を作成しました。
「ワンコインデコーダ2」ではNゲージでも搭載できるように回路の簡素化による部品点数の削減を行い小型化しやすくしました。回路の簡素化で高い成功率で作成できると思います。
また専用プリント基板を作成し、面実装部品を採用することで、さらに小型に!製作することができましたので、別のページでご紹介したいと思います。
ご注意: ・本サイトの情報を元にした製作等に関わる破損、傷害等につきましてはご自身の責任のもとでお願いします。 ・ご紹介している方法は一例です。最善の方法とは限りませんので、ご自身でもご検討いただければ幸いです。 ・使用する部品の規格を確認のうえ必要であれば定数の変更等をお願いいたします。 |
概要
NMRA規格のコマンドを受信し動作するDCCのデコーダです。ただしNMRAが規定するすべての内容を盛り込んではいませんので、準拠とは申しません。ご注意をお願いします。
マイクロコントローラーには電子工作で人気のあるマイクロチップテクノロジー社のPICマイコンを用います。ワンコインデコーダでは8ピンのPIC12F683を使用していましたが、部品点数削減のため、74HC08を無くす方針とし、ECCPを搭載した14ピンのPIC16F684を使用することにしました。プログラムは、アセンブラソースとHEXファイルを公開いたします。
電源にはDCC信号電流を整流しDC12Vを生成しています。また、マイコン回路自体は5Vで稼動させるので、78L05を搭載し、5Vを生成しています。PICマイコンで直接Hブリッジ回路を制御できる信号を生成します。HブリッジにはFETによるHブリッジ回路はやめPICマイコンと同じマイクロチップ製のMCP1403を使用しワンチップで簡素化を行いました。
ヘッドライト等の制御に使用するFL専用デコーダはこちらのページを参照してください。
特徴
スピードノッチ数は128ステップのみならず、古典的な14,28ステップもサポート。
ライト(FO)は前後進自動切換え。電流は最大100mA程度。
最低速度、最高速の設定が可能。(CV2、CV5)
モータ用電流は連続1Aで、最大1.5A程度までOK。
アナログ運転もサポート(性能は仕組み上、補償できません)
2桁アドレス(001~128)、4桁アドレス(0128~9983)サポート。
CV値の書き込みはOPSモードに加え、Pageモードもサポートしました。
PageモードによるCV値の読み出しもサポートしました。
CV29の設定により、前後進の入れ替えが可能。(ライトも同時に入れ替えできます)
14、28ステップモータはCV33~CV64でスピードテーブルの設定が可能。
ファンクション制御は通常モードのほかに入換動力車標識モード、両極性FX専用デコーダモードをサポート(CV30)
製作事例
製作事例1 ・・・ こちらをメインに製作解説します。
モータ制御とF0の正方向、逆方向をサポートしています。サイズは全然大きいですが、機能的にはDZ123のイメージです。縦長に製作したので、なんとかNゲージでも搭載できると思います。16番なら余裕です。
製作事例2
専用プリント基板を製作し面実装部品で小型に製作した事例です。モータ制御をメインにファンクション制御はPICから直接LEDをドライブすることを想定しています。当方ではNゲージ モデモの江ノ電シリーズに搭載できるように約10×20mmのサイズで作成しました。このサイズなら一般的なNゲージに十分搭載可能と思います。(写真撮影後R4,R5を実装しています。)
表 裏
回路図
回路図(pdf)はこちら
回路図です。BSch3Vで作成しました。
回路の説明
レールからの電力をブリッジダイオードを介して整流します。電流容量は1.0~1.5Aあれば十分でしょう。 10μFのチップ積層コンデンサで平滑し直流12Vを得ます。12VはHブリッジを介してモータに電流を供給する電源になります。3端子レギュレータIC(78L05)を用いてPICマイコンの電源となる5Vを得ます。
レールからのDCC信号は33kΩの抵抗を介してPICマイコン(PIC16F684)のRA3端子に入力します。マイコンでソフト処理された速度信号は方向信号、PWM信号としてRC2~RC5端子に出力されます。
モータ制御を行うためのHブリッジ回路はMCP1403を使います。
各端子の使用方法は次のとおりです。(入れ替える場合はASMソースを直してください。RA3が入力専用なことに注意)
RA3 ; DCC信号入力(推奨)
RC0 ; F0出力(逆方向)
RC1 ; F0出力(正方向)
RA1 ; F1出力(拡張用)
RA2 ; F2出力(拡張用)
RA4 ; F3出力(拡張用)
RA5 ; F4出力(拡張用)
RA0 ; F5出力(拡張用)
RC2 ; 正方向PWM出力(変更不可)
RC3 ; 逆方向制御出力(変更不可)
RC4 ; 逆方向PWM出力(変更不可)
RC5 ; 正方向制御出力(変更不可)
ファンクション制御信号は2CS1815によるドライブ回路をつけてライトに供給する電流を制御できるようにしています。
輝度の高いLEDで電流を抑えればPICで直接ドライブすることも可能です。その場合電源の極性に注意してください。
ここら辺りは皆さん工夫してみてください。
前述の製作事例2では、ファンクション機能は小型化のため直接ドライブ式で製作しました。
集電が安定しない車両に搭載すると電源電圧が不安定になりPICマイコンがリセット繰り返し、走行がギクシャクする場合があります。この場合、5V回路のコンデンサの容量をUPさせると改善できる場合があります。(ただし、集電不良は根本解決することが賢明です。)
部品リスト
特に通販で特定のお店を利用しなければ入手できないパーツは「PIC16F684」と「MCP1403」だと思います。マイクロチップダイレクトやDigikey等でインターネットで簡単に入手できますので心配はありません。電解コンデンサは使用せずチップ積層コンデンサに置き換えて小型化を図っています。パーツ点数は少ないと思いますので頑張って集めて下さい。
表中の金額は当方で利用したお店を参考に見積しています。部品の纏め売りで単価が安くなっている部品を私が良く利用するので少量の部品を調達すると割高になる場合があります。まとめ買い欄に「@」印があるものはまとめ買いした際の単価を示しています。
ワンコインデコーダと比較し安価(500円以内!)にすることができました。部品点数の削減効果が大きいと思います。
また、リスト以外に「ハンダとこて等の工具」、「電線」、「ユニバーサル基板(場合によっては専用プリント基板)」「(必要に応じて)ICソケット」等の用意が必要です。
ワンコインデコーダ2部品表 (製作事例1)
種類 | 品名、規格 | 数量 | 単価 | 小計 | 備考 | 主な入手先 | まとめ買い |
IC | PIC16F684-I/P | 1 | 138 | 138 | DIP14 | digikey ※1 | @ |
MCP1403-E/P | 1 | 190.8 | 190.8 | DIP8 | digikey ※2 | @ | |
78L05 | 1 | 20 | 20 | 秋月 | @ | ||
トランジスタ | 2SC1815 | 2 | 5 | 10 | 秋月 | @ | |
ブリッジダイオード 700V 1.5A | DI1510 | 1 | 19 | 19 | 相当品可 | 秋月 | @ |
抵抗器 1/6W | 1KΩ | 4 | 1 | 4 | 秋月 | @ | |
33KΩ | 1 | 1 | 1 | 秋月 | @ | ||
電解コンデンサ(高さ5mm品) | 10μF 25V | 1 | 15 | 15 | 千石 | ||
100μF 6.3V | 1 | 20 | 20 | 千石 | |||
合計 | 417.8 |
ワンコインデコーダ2(面実装版)部品表 (製作事例2)
種類 | 品名、規格 | 数量 | 単価 | 小計 | 備考 | 主な入手先 | まとめ買い |
IC | PIC16F684-I/SL | 1 | 125 | 125 | SOP14 | digikey | @ |
MCP1403-E/SN | 1 | 156.32 | 156.32 | SOP8 | digikey ※2 | @ | |
78L05F | 1 | 30 | 30 | 秋月 | @ | ||
トランジスタ | 2SC3325 | 2 | 10 | 20 | 秋月 | @ | |
ブリッジダイオード 80V 1.0A | D1UBA80 | 1 | 60 | 60 | 相当品可 | LEDパラダイス | @ |
チップ抵抗器 3216サイズ | 1KΩ | 4 | 8.4 | 33.6 | サトー電気 | @ | |
33KΩ | 1 | 8.4 | 8.4 | サトー電気 | @ | ||
チップ積層セラミックコンデンサ | 10μF 25V | 1 | 12.5 | 12.5 | 秋月 | @ | |
100μF 6.3V | 1 | 30 | 30 | 秋月 | @ | ||
合計 | 475.82 |
※1 国内だと、マイクロファン で取扱あり(ちょっと高価)
※2 国内だと、チップワンストップ で取扱あり(ちょっと高価)
入手先のお店の情報はリンクのページからたどって見てください。
とくに通信販売で入手される場合は、単価、員数、送料で条件が変わってきますので、よく勘案してから注文しましょう。
部品の概要
ワンコインデコーダで使用する部品を紹介します。
ワンチップマイクロコンピューター:PIC16F684
PICとはマイクロチップテクノロジー社のワンチップマイコンのことで、電子工作ではよく利用されているマイコンです。
14ピンのPIC16F684は国内で扱っている店が少なく、扱っていても高価です。マイクロチップダイレクトやDigikeyを利用しまとめ買いすると単価が下がります。
PIC16F684はECCPと呼ばれるモジュールを内蔵しており、直接Hブリッジを制御できます。
プログラムの書き込みには、Pickit2等のマイクロチップテクノロジー社純正プログラマを使用します。
面実装(SOP版)の書き込みには秋月のアダプタを利用します。もちろん自作アダプタでもOKです。
PICなどマイクロコントローラーは目的の動作をするようにプログラムを書き込んで使う部品です。 プログラムを書き込まないで製作した場合は動作しません。 書き込み方法はこのページを参照してください。 以下はPickit2を用いた書き込みの様子です。 |
3端子レギュレータ:78L05
3端子レギュレータとは電源ICの仲間です。
変動する電源から、安定した決まった電圧の電源を生成する目的に用いられます。
外形は2SC1815等を同じTO92パッケージです。面実装タイプはSOT-89パッケージです。
ブリッジダイオード:DI1510、D1UBA80
(写真はDI1510)
DCC信号を整流し、直流電力を得るためにブリッジダイオードを用います。DI1510は秋月電子で入手できるブリッジダイオードから700V 1.5Aのものを選びました。交流の入力側と直流の出力側が隣同士にならんでいるため実装に便利です。DIPタイプですが、スペースの関係上、縦に搭載することが多いです。面実装タイプのダイオードブリッジは選定に苦労しましたが、新電元のD1UBA80を使用しました。LEDパラダイスというお店で入手しました。
Power MOS-FET:MCP1403
モータ電流を制御するためのHブリッジ回路がワンチップに入っています。国内のお店での取扱いはなかなか探せませんでした。マイクロチップダイレクトやDigikeyでPIC16F684等と一緒に購入しました。MOS-FETは静電気に対して弱い部品ですから注意しましょう。外観とリード線の名称はデータシートを参照してください。
トランジスタ: 2SC1815
FETドライブ用のトランジスタです。電子工作では安価に入手できることで有名な2SC1815を使用しています。秋月でまとめ買いしました。
外観とリード線の名称はデータシートを参照してください。
1/6w炭素皮膜抵抗、チップ抵抗3216サイズ
(写真は1/6w炭素皮膜抵抗)
1/4W品では大きくて製作しにくくなりますので、1/6W品の小さな炭素皮膜抵抗を用いてます。
小さくてカラー表示が判別できない場合はルーペでの確認や、テスターで抵抗値を確認しましょう。
面実装の場合はちょっと大きめな3216サイズを使用しました。千石等で入手できる2016サイズよりはんだ付けしやすいからです。
3216サイズのチップ抵抗は鈴商やサトー電気で入手しました。
1/6W、チップともに極性はありません。
電解コンデンサ、 チップ積層セラミックコンデンサ
線路に流れるDCC信号から、走行用電源、マイコン動作用電源を作るために用いています。
千石電商で入手できる小型品(高さ5mm)から10μF/25V、および100μF/6.3V品を使用しました。
どちらも+-極性があります注意しましょう。
製作事例2(面実装)で小型化する場合は電解コンデンサは使用せずチップ積層セラミックコンデンサを使います。サイズは容量が稼げ比較的ハンダ付けがしやすい3216サイズを使用しました。電圧は12Vと5Vなので耐圧25V品と6.3V品を使用しました。極性はありません。
ICソケット:DIP8ピン、DIP14ピン
PIC16F684のプログラムを更新する際に基板から取り外せるようにしたい場合、およびFETドライバMCP1403がショート等で焼損した際に容易に交換できるようにする場合は用います。製作事例2(面実装)で製作する場合は使用しません。
製作方法
「ワンコインデコーダ」の製作方法を紹介します。
部品配置図
表面から見た、部品配置図です。部品番号は回路図の番号と一致しています。
配線図(表側)
表側からみた配線イメージです。
青線は実際は裏面に配線されます。
赤線は表側でジャンパーする線です。すずメッキ線やリード線の余り等で配線します。
(後で指定する段階で必ず取り付けします。)
各段階でこの図を確認しながら作業をします。
配線配線図(裏側)
裏側からみた配線図です。青線は裏面ですずメッキ線やリード線の余り等で配線します。
(表側の図と左右が反転しています。注意願います。)
各段階でこの図を確認しながら作業をします。
(1)ユニバーサル基板の切断(その1)
ユニバーサル基板を切断します。
定規をあててカッターナイフで切りこみをいれます。表、裏、両方ともにスジをつけます。
縦4穴、横22穴残るように切断します。
(2)ユニバーサル基板の切断(その2)
表裏とも、スジをつけたら、机の角を利用して力をいれるとキレイに折れます。
同様に、4面ともに同じ作業を繰り返します。
(3)ユニバーサル基板の切断(その3)
縦4穴、横22穴残るように切断した様子を示します。
(4)JP1~JP4の接続
JP1~JP4を0.5φ程度のスズメッキ線であらかじめ接続しておきます。
このとき、穴位置を事前にケガいてから作業すると間違わずに行えます。
JP1~JP4の接続はかならこの段階で行います。(5)以降の段階で作業を行おうとすると非常に作業しづらくなります。
(5)IC2、IC3用のICソケットの取り付け
IC2およびIC3用のICソケットを取り付けます。
PICマイコン用の14ピンソケット と FETドライバ用の8ピンソケットの向きは互いに反対ですので、向きに注意して半田づけします。
(6)R4、R5の取り付け
R4とR5を取り付けます。
ここで注意点があります。写真のように、R4の片方のリードとR5の片方のリードは同じ穴にいれて、GNDに接続します。
抵抗器自体は部品の向きはありません。
(7)R4,R5の取付状態
(6)の注意通りに取り付けした様子です。
(7)R2,R3の取付
R2,R3を取り付けます。R3は基板の端部に取付になり、作業しづらいので、マスキングテープ等で仮固定しての半田づけを勧めます。
部品の向きはありません。
(8)Q1,Q2の取付
Q1,Q2を取り付けます。部品の取り付ける向きが決まっていますので、注意して取り付けます。
(9)ブリッジダイオードの取付
D1の取付を行います。
部品の取り付ける向きが決まっていますので、注意して取り付けます。
~、~表示がDCCレール側、+,-表示が3端子レギュレータ側です。
(10)3端子レギュレータの取付
5V生成用の3端子レギュレータ(IC1)を取り付けます。
部品の取り付ける向きが決まっていますので、注意して取り付けます。
ICソケットとぶつかりますので、写真のように少々逃げ気味に取り付けます。
(この後の電解コンデンサの取付に支障がない程度にします)
(11)電解コンデンサの取付
C1、C2の電解コンデンサを取り付けます。
部品の取り付ける向きが決まっていますので、注意して取り付けます。
足の長いリード線が「+」です。足の短いリード線が「-」です。
「-」側は外形フィルムに「-」の表示があります。
(12)R1の取付
R1を取り付けます。部品の向きはありません。
配線が基板端部になる部分があります。仮固定しながらの作業をお勧めします。
(13)IC、ICソケット、3端子レギュレータ、電解コンデンサの位置関係
このような感じでなじませながら取り付けるとうまくいきます。
(14)ハンダ面の様子
部品の取り付けが終わったハンダ面の様子です。
このような下手くそなはんだ付けでもちゃんと動作します(^^;
(15)リード線の半田づけ
各色のリード線をはんだ付けします。
はんだ付けする個所は以下の写真を参考にしてください。
図で示すと以下の通りです。
ご自身でも回路図と見比べて確認してみてください。
青線は基板端部の12V部分への接続です。灰色はMCP1403の8番ピンです。
(細い灰色は基板の端部を表しています。)
(16)IC2、IC3を取り付け、完成です。
PICマイコンへのソフトの書込みを行い、ソケットにさします。詳細の書込み、ソフトは次ページを参照ください。
同様にFETドライバ(MCP1403)をソケットに差し込みます。
いづれも、部品の差し込み方向に向きがありますので、注意してください。
(写真の上下が逆になって、すみません)
PICマイコンは画面の左側が凹み、FETドライバ(MCP1403)は右側に凹みがきます。
ソフトウェア
「ワンコインデコーダ2」のソフトです。
通常はHEXファイルをPickit2等でマイコンに書き込んでください。書込み方法はこちらのページを参考にしてください。
参考までに、ソースファイルも置いておきます。動作方式の解析、改良等に活用ください。MPLABでアセンブルしてください。
動作しない場合の調整方法は下述いたしますが、自己責任でのご利用をお願いします。当方でのサポートも致しかねます。
すべてのDCC環境で、動作保証するものではありません。
なお、著作権は主張します。無断転載は禁止します。また、商業目的の利用も禁止とします。
尚、ファイルは右クリックし対象を保存を選択して下さい。そのままクリックして保存すると拡張子がtxtになる場合があります。
(最新版Ver1.01) HEXファイルはこちら 2009.11.03 CV7追加、アナログ判定時間の見直し
(最新版Ver1.01) ASMソースファイルはこちら 2009.11.03 CV7追加、アナログ判定時間の見直し
(DCC信号の0/1判定部はしみずさんのページのDCCデコーダを参考にしています。)
注意:アナログ対応について
アナログ対応はレールの電圧極性を読み取り、モータドライバの方向制御をおこなっているだけで速度制御は供給電圧がそのままモータに加わるようになっています。PICマイコンが正常に動作するのには約8V程度(3端子レギュレータのドロップ含む)の電圧が必要であり、特にNゲージ等のモータ容量の小さい模型は低速運転が効きない場合があります。DCC運転がメイン機能で、アナログ対応は、あくまで簡易機能とお考え下さい。
注意:CVの読み込みについて
CVの読み込みにはコマンドステーションから読み込みするときの応答として、消費電流の増加で応答しています。
モータおよびライトを短い時間だけONの制御をおこない、消費電流を増やしています。
モータ接続せずにデコーダを使用している場合や、ライトがLED等で消費電流が低い場合、応答が正常に認識されず、コマンドステーション側でCVの読み込み処理に失敗する場合があります。(電流値の目安はDCCの規格上60mA以上となっています。)
成功への手引き
まずは車両に搭載できないような大きなユニバーサル基板で、自分で回路図を見ながら、部品の役割を理解しながら、試作することをオススメします。
確実に動作するものを作ってから小型化するのが結果的に早道ですし、小型化したときどこが悪いのか比較しながら探求がしやすくなります。
(小さく作るには、はんだ付けも難しい)
試作に成功したら、車両搭載用に小さく作ってみます。
ご紹介している部品の実装方法以外にも、部品を立てて搭載したり、空中配線をして小型化を図ることもできます。ご自身でチャレンジしてみてください。
調整手順
車両に搭載するまえに、デコーダが正常に動作するかを確認します。、まずソケットにPICを挿さない状態で、電源ピンに5Vが出ているかを確認します。それから、プログラムを書き込んだPICマイコンを準備しソケットに挿入してから動作確認をします。
動作確認の手順としてはDCC信号を正常に読み込めているかの検証を行います。スロットルや進行方向に応じてモータへの出力の電圧や極性が変化するか、ファンクション制御でライトが点灯するかを確認してください。
私は、車両に搭載しなくてもデコーダの動作確認ができるような基板を作成しています。市販のデコーダでも活用できますので、皆さんもぜひ作って見てください。
どうしても、DCC信号の読み込みがうまくいかないようなら、プログラムのソースファイルにある、読み込みタイミングの調整値を変更し、HEXファイルを作成しPICに書き込んでみてください。初期値は16進数で10です。ソースでは0x10と表記しています。これを0x0fとか0x11等にしてみて試してください。大抵は初期値のままでOKのはずです。
DCC信号の読み込み及び、モータ電圧の制御に問題がないようであれば、アドレス等、必要なCV値をこの段階で予め行っても良いでしょう。
DCS50Kで「AD4」と表示され4桁アドレスを設定するモードでは、一部DirectモードによるCV設定が行われる場合があります。このため、CV29が正常に書込みされない場合があります。この場合、CV29を新たに設定(CV設定値38)することで、使用可能になります。
本デコーダでの4桁アドレス設定は、CV17,CV18,CV29を個別に設定することをお勧めします。詳細はCV設定ページを参照してください。
車両への搭載
動作確認が終了したら、車両に搭載します。ショート保護回路は搭載していませんので、各部の絶縁には十分に注意しましょう。(最悪、部品が焼損します。)
当方では、16番のキハ182に搭載し走行試験を継続中です。Digitraxのデコーダではスロットルを最大にしても12V近くは出ず、運転会等の線路が長く繋がったところでは電圧降下の影響で超スロー運転となってしまっていましたが、自作デコーダでは12V近くまで出力でき、速度が向上しました。
最後に...
意外に簡単に自作DCCデコーダが作れると思いませんか?
基板の形をサイズを工夫し小型化もできると思いますから、Nケージへの搭載もなんとか可能かと思います。
配線ミスさえしなければ短時間で仕上がってしまいますから、時間をかけて丁寧に作りましょう。
自分で作ったDCCデコーダで運転を思い存分に楽しみましょう!