[ブログ一覧]
 ● ブログトップページ
[ホームページリンク]
 ● ホームレコーディング 楽曲集/宅録/DTM
 ● 自作ギターエフェクター/ツール/パーツ
 ● A3サイズのNゲージ箱庭鉄道模型
[イチオシ記事]
 🚃 A3サイズ鉄道模型:タッチパネルTFT液晶による自動運転システムが完成!

今日も夜な夜な... 鉄道模型PWMパワーパック自作モータードライバIC

2024/05/24


今日も夜な夜な... 鉄道模型PWMパワーパック自作モータードライバIC

昔はサイリスタ、今はマイコン制御のPWM

Nゲージのレイアウトで自動運転をするために、パワーパックをArduinoで制御することを考えています。私が中学生の頃は、「サイリスタ」という、電流制御ができるダイオードみたいな素子があり、鉄道模型の低速運転をスムーズに行うには、この方法しかありませんでした。


あれから40年以上が経ち、今はPWM制御が主流となり、さらにDCモータドライバ専用のICもたくさんあります。パワーパックの自作は、めちゃめちゃ簡単になっています。

DCモータードライバIC

今回、たくさんのWEBページに載っている「TB6643KQ」を使ってみました。秋月で、350円で買えます。


ArdionoのPWM機能で発生させた20kHzの2線のPWM信号をこのICに与えるだけで、DCモーターをドライブしてくれます。PWMパルスの組み合わせを制御すれば、モーターへの電圧極性(+ー)を変えることができ、電車の進行方向もこのICだけで制御できます。簡単すぎるぐらい簡単です。

今日も夜な夜な... 鉄道模型PWMパワーパック自作モータードライバIC
上図が接続例です。「TB6643KQ」は、マイコンからの3.3VのPWMパルスを入力すると、模型のモーターを駆動できる電力の信号(DC 12V)を作ってくれます。メチャメチャ簡単です。

M1/M2のパルスの与え方で、出力のOUT1/OUT2のプラスマイナスの極性が切り替わります。M1にパルスを入れると正転方向、M2にパルスを入れると逆転方向にモーターが回ります。下がこのICの入出力の論理表です。

TB6643KQ入出力ファンクション

Arduinoでのプログラミング

PWM(Pulse Width Modulation)のセットアップやデューティー比の変更は、ライブラリ関数を使えば意外と簡単に扱えます。とはいえ、PWMはマイコンのペリフェラル(ハードウェア機能)に依存しているため、使うマイコンによってAPIが異なるのがポイントです。

今回のターゲットである ESP32 では、「ledc***()」 系の関数群がPWM制御用に用意されています。基本的な流れは「チャネルのセットアップ → デューティー比の指定」とシンプルで、以下のようなコードになります

ESP32 PWM生成コード

例えば、このコード中の trainSpeed に 40 をセットすると、デューティー比は 40 : 256 ≒ 1 : 6 となり、次のような波形が得られます。

青い波形が OUT1 です。ここで与えている条件は、12V・20kHz のPWM波形です。時間軸のスケールは 1目盛=20µsec なので、パルス1周期は 50µsec となります。

Arduinoで生成したPWM波形の様子

上記のプログラムで生成したPWM波形の様子をビデオにしました。


PWM動作のおさらい

蛇足かもしれませんが、PWMの動作をもう少し整理すると:
  • パルスの高さ(電圧)は常に 12V
  • パルスの幅(デューティー比)を広げるほど、平均的に流れる電力が増える
  • その結果、レールに伝わる駆動力が大きくなり、電車モーターの回転数が上がる
つまり、「12Vをオンオフして平均電圧を作る」仕組みがPWMの本質で、これを自在に操ることで電車のスピードを滑らかにコントロールできるわけです。 


(2024/8/24 追記)

今回制作した自動運転レイアウトの、最初の計画(このページ)から完成までの制作過程が載っています。下から古い順に並んでいます。

マイコンによる自動運転の詳細は↓のWEBページに掲載しています。






「鉄道模型」に関連するブログ


2024/05/24 21:58 | ブログ一覧

© 2025 Toshi Software