Nゲージ工作 踏切の自作18

さて,今回は久しぶりの投稿となってしまいました踏切シリーズです.今回のテーマはずばり!

遮断機ユニット組み立て

です.

今回やることは以下の3つの予定です.

  1. モータから伸びているケーブルにコネクタ代わりのICソケットをはんだづけ
    arduino側にもコネクタをつなげ,1で作ったコネクタ(ICソケット)と繋げられるようにする
  2. プログラムを書き込み,テスト
  3. 遮断機の取り付け

モータ側にコネクタを取り付ける

下準備

踏切シリーズ第7回で紹介したときは,踏切のベースにモータを取り付けました.その時,モータからの配線に
「1A」とか「2B」のような印をつけたと思います.詳しくはコチラ↓

あわせて読みたい
踏切シリーズ第7回

以下の画像を参考にして,モータからのケーブルをモータドライバモジュールやコネクタに接続します.

モータドライバユニットにはこのように配線します.灰色の丸で囲ってあるケーブルはこの段階ではいじらなくて大丈夫です.以下はモータドライバユニットへの詳しいはんだづけ方法です.

かなり複雑ですが,赤い線以外は前回までに完成していますので,モータからの配線についている1A,1B,2A,2Bと対応するようにモータ出力端子にはんだづけするだけです.

ここでポイントがあります.モータからきているポリウレタン線の先端を各モータ出力端子とはんだづけするのではなく,ポリウレタン線を一度折り返します.その折り返したところと各モータ出力端子をはんだづけしていきます.

少しわかりにくいと思いますので画像をのせておきます.

 

上の画像で矢印が付いているところとTB6608FNGの各出力端子とをはんだづけします.
余りの部分はあとでコネクタをつける時に使いますので切らないで残しておいてください.

余りの部分を切断してしまうと,のちの作業が非常にやりにくくなりますのでご注意ください.

遮断機を片側2基ずつ,合計4基設置予定の場合のみ必要です.片側1基ずつの計2基のみの小型踏切にする場合は余りの部分は不必要ですのでカットして大丈夫です.

コネクタ代わりのICソケットの取り付け

今回は手ごろなソケットがなかったので,ケーブルが切れるリスクや抜き差ししにくかったりとデメリットも多いのですがやむなしということで,ICソケットを利用しました.

丸ピンのこういうタイプです.

まずはポリウレタン線の被覆をはがしてはんだめっきします.ポリウレタン線の予備はんだについてはこちら↓

予備はんだが終わったポリウレタン線の先端をICソケットにはんだづけします.ICソケットを4ブロック分切り出します.これを4組作ります.
まずは,先ほど灰色の丸で囲った「何もいじらなくていい」といったほうのケーブル先端をICソケットの足側にはんだづけ.この時,ICソケットの足にポリウレタン線を巻きつけてしまってからはんだづけすると楽です.

こんな感じで巻き付けてしまいましょう.

この時,予備はんだを施してある範囲の根本から巻き付けないと,隣のピンと接触するなどしてショートの原因になります.きっちりポリウレタン線の予備はんだ部分の根本から巻き付けましょう.

完成図です.

それが踏切ベース2個分両方できたら,次に折り曲げてモータドライバモジュールにはんだづけしたほうの「余り」の部分を使います.こちらはICソケットの穴側にはんだづけしていきます.

 

ブレッドボードなどにICソケットを刺して固定し,穴に予備はんだを盛ります.盛った予備はんだにはんだごてを当てながら,予備はんだ済みのポリウレタン線をぶっ刺します.

完成するとこのようになります.

これも両踏切ベースのモータ配線に施します.

この図の「arduinoへ」と書いてある配線も済ませるとこんな感じになります.

これでようやくコネクタの取り付けが終わりました.

arduino側の加工

ここにきてやっとarduinoに手を付けることができます.

 

VccとGND用のケーブルはそのままVccとGNDピンへ.

resetピンだけは両踏切ベース共通ですので,両方とも4番ピンにはんだづけ.

clock,cw/ccwピンについては,踏切ベースのそれぞれで別々の動作をさせたいので別々ではんだ付けします.

片方のベースからのclock,cw/ccwピンをarduinoの2,5番ピンに

もう片方からのclock,cw/ccwピンをarduinoの3,6番ピンにそれぞれはんだづけします.

プラグラムを書き込む

以下今回テストに使用したプログラムです.

int i=0;
int waittime=0;
void setup() {
// put your setup code here, to run once:

pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(12,OUTPUT);

#define clockpin1 2
#define clockpin2 3
#define resetpin 4
#define cwccwpin1 5
#define cwccwpin2 6

#define INreadpin 8
#define OUTreadpin 7
#define warninglightpin 12

waittime=24;

digitalWrite(resetpin,HIGH);
digitalWrite(resetpin,LOW);
delay(100);
digitalWrite(resetpin,HIGH);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(cwccwpin1,LOW);
digitalWrite(cwccwpin2,HIGH);

digitalWrite(resetpin,LOW);
delay(10);
digitalWrite(resetpin,HIGH);

for(i=0;i<40;i++){
digitalWrite(clockpin1,HIGH);
delay(waittime);
digitalWrite(clockpin1,LOW);
delay(waittime);
}
delay(1000);

for(i=0;i<40;i++){
digitalWrite(clockpin2,HIGH);
delay(waittime);
digitalWrite(clockpin2,LOW);
delay(waittime);
}

delay(5000);

digitalWrite(cwccwpin1,HIGH);
digitalWrite(cwccwpin2,LOW);

for(i=0;i<39;i++){
digitalWrite(clockpin1,LOW);
digitalWrite(clockpin2,LOW);
delay(waittime);
digitalWrite(clockpin1,HIGH);
digitalWrite(clockpin2,HIGH);
delay(waittime);
}

delay(5000);
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です