HOME >> 鉄道模型工作室 >  ポイントのスローアクション駆動 ステップモータを動かそう

鉄道模型工作室 ポイントのスローアクション駆動 ステップモータを動かそう

 Nゲージのポイントを、実際のポイントの様にスローアクションで駆動させようと挑戦しています。 まず、ステップモータを使った場合の駆動方法をテストしました。

 

■ 電気系の構成

 ステップモータの実験用駆動部が出来たので、このステップモータを駆動させる電気回路を工作しました。 電気回路を次に示す。

 ステップモータ 28BYJ-48 は、5ボルト電源で駆動する必要があり、この電源をArduino から頂くにはArduino の負担が大きくなるので別電源とした。 このために定電圧電源として、以前に入手していた aitendo の5V定電圧出力電源キット(K-5V34063)を使用する。 このキットへの入力は、9VのACアダプタを使い、この入力と通電しているターミナルから9Vを取出して、Arduinoの電源とした。 モータへはこの定電圧電源から供給するので、Arduino には負担が掛からないはずである。

 制御用マイコンは、手持ちのArduino UNO を使用する。 そして、モータドライバンは、モータと一緒に秋月から入手した TC78H653FTGモータドライバモジュールを使用した。  下の写真。

 配線はブレッドボードを使って実施した。 移動と保管の容易さをねらって下の写真のように菓子箱に収めた。

 

■ 制御プログラムの検討

 次に、スケッチの記述に取り掛かった。 参考にしたサイトは、「電子工作を始めよう」さんの「Stepperライブラリでモータを動かす その1 1個だけ」である。 内容をそっくり真似して記述し、ステップモータだけの状態にして走らせてみた。 でも、右回転ばかりで、レバーは左右に振ってくれなかった。

 あちこちいじって、2番と3番の配線を逆にすると、やっと正常にレバーを左右に振ってくれるようになりました。 セットになっていた専用のモータドライバと、自分が使用したドライバの配線が違っていたようでした。

 ステップモータが正常に動くようになったので、リンクをセットして作動させました。 こちらも問題なく作動していました。 その様子を動画で紹介します。

// ステップモータを使う その2

#include <Stepper.h>

#define PIN1 2
#define PIN2 3
#define PIN3 4
#define PIN4 5
#define STEP 300

Stepper stepper1(STEP,PIN1,PIN3,PIN2,PIN4);

void setup() {
  stepper1.setSpeed(30);

  pinMode(PIN1,OUTPUT);
  pinMode(PIN2,OUTPUT);
  pinMode(PIN3,OUTPUT);
  pinMode(PIN4,OUTPUT);
  Serial.begin(9600);
}

void loop() {
  Serial.println("clockwise");
  stepper1.step(STEP);
  digitalWrite(PIN1,LOW);
  digitalWrite(PIN2,LOW);
  digitalWrite(PIN3,LOW);
  digitalWrite(PIN4,LOW);  
  delay(1000);

  Serial.println("counterclockwise");
  stepper1.step(-STEP);
  digitalWrite(PIN1,LOW);
  digitalWrite(PIN2,LOW);
  digitalWrite(PIN3,LOW);
  digitalWrite(PIN4,LOW);  
  delay(1000);
}

 これでOKと思ったのですが、作動終了後、モータを触ってみると熱くなっている事に気が付きました。 そこで温度計を持ち出して測定しました。

 実験後、しばらく経ってからの測定でしたがそれでも30℃を超えていました。 モータの発熱は思った以上に大きいようです。 そして、これはヤバイと考え他のサイトを見てみると、発熱対策として、休止時には通電を止める処理を実施している例が紹介されていましたので、これを参考にしてスケッチの記述を変更しました。 参考にさせていただいたサイトは、「ぶらりweb走り書き」さんの「Arduino入門(25)ステッピングモータを動かしその基礎を理解する」です。 そして修正したスケッチの内容を右に示します。

 ここでは、ピン番号の指定も、2番と3番を逆にしておき、配線は図面通りのようにもどしました。 また、モータのレバー軸が板と干渉していたかも知れないと思って、穴も拡大しました。 スピードなども落とすなどの変更も実施しました。

 再度、作動させしばらく様子を見ていましたが、モータの発熱はほとんどありませんでしたので、まず、ひとつの対策が出来たようです。

    ******************************************************

 次は、ボリュームから回転角の情報を得て、指定角度にまで揺動させるサーボ運動のテストを実施してみる事にしましょう。

 

● 余談
  今回のレポートを作成している時、スケッチの内容を記述するため、Arduino IDE からHTMLファイルを取出そうとしたのですが・・・・・・・・。 あちこち探してもそのような項目がありませんでした。 今回インストールしたのは、バージョンが2.0.0 でした。 ネットでも調べたのですが対処方法が見つかりませんでした。 もしやと考えて、ひとつ古いバージョンをインストールしました。 こちらは、1.8.19 でした。 そして、「編集」の項目には、チャンと「HTML形式でコピーする」というサブ項目がありましたね。 新しいバージョンでは、このサービスを削ってしまったようですね。 そこで今回は古いバージョンを使って取出してきました。

 

ページトップへ戻る  .


 2022/9/25