鉄道模型工作実験室

Nゲージ鉄道模型に関する工作や実験を行っています。

コアレスモータ搭載車にも対応したマイコン式運転操作台1

パルス制御方式のパワーユニットとコアレスモータとは、相性が悪いと言われています。
しかし、今まで自分が実験してきた結果、これはパワーユニットがコアレスモータを考慮したパルス制御を実施していないと判断するに至りました。
電流回生を考慮したモータドライバを使用すると、PWM制御のデューティ比と車速の関係は、電圧制御方式のパワーユニットのように線形の関係となり、低速走行でも容易に制御できることが分かりました。
 詳しくは、「モータドライバとPWM制御 まとめ」(2021/5/28)を参照ください。


■ マイコン式運転操作台の構想
この知見を応用して、Arduino マイコンとモータドライバを使って、コアレスモータ搭載車でも充分に低速制御が出来る運転操作台を自作しました。Arduino UNO を使って20KHz のPWM信号を作り、電流回生を考慮したモータドライバと組合せて工作しました。
回路図を下に示す。

どうせ作るならと、ポイント駆動回路や駅の出発信号の制御回路も組み込み、操作状況を表示するディスプレイも欲張りました。
操作スイッチは、マスコンとブレーキ操作用のロータリスイッチに加え、動力車の特性に合わせて車速を設定できるレンジ選択スイッチ、走行方向指定スイッチは、リバース線を想定して駅構内と周回路用の給電制御も盛り込んでいます。
Arduino、モータドライバ、およびポイント駆動には+12volt を供給しますが、制御機器類の電源として、5V定電圧ユニットを使って+5volt を供給しています。


■ 工作内容
工作した状態を紹介します。操作盤の表です。

操作盤の蓋を置けてみると

そして、その機器類の配置を紹介します。

制御機器のメインは Arduino UNO です。

そして、もう一つの重要部品であるモータドライバを中央の制御部に配置しています。また、周辺機器への制御用電源である+5Vの給電のために、ピンホルダを並べた5V配電部を設けています。

ポイント駆動部はコンデンサ方式で6連を設置し、ロータリスイッチは信号入力線を少なくするためにコード化させる基板を工作しています。

 

ホードの工作が完了したので、次にスケッチを記述して

Arduino Uno のPWMキャリア周波数を20kHzにする

【 古いブログで掲載した記事(2020/4/4)を一部修正して再掲載します。】
Nゲージ鉄道模型で自動運転を楽しんでいます。


自動運転は、マイコンとして Arduino の Uno や Nano Every を使ってPWM制御を使って速度を調整しています。今回は Uno の場合を紹介します。
PWMキャリア周波数を 20kHz にアップする方法について、皆さんの情報をもとに自分でも調査しました。その結果、次のような実験にて確認しました。 まず実験方法はパソコンと Arduino Uno とオシロを使いました。

接続状態は下のようにオシロ用の端子を出力ポートに接続しただけの状態です。

そしてオシロで確認した波形を下に示します。

CH1はD10ポートで、CH2はD3ポートです。

CH1はD5ポートで、CH2はD3ポートです。

CH1はD9ポートで、CH2はD910ポートです。

CH1はD6ポートで、CH2はD5ポートです。


D3、D5、D10ポートでは、キャリア周波数は 20.0kHz となり、狙いどうりです。しかし、D6、D9、D11ポートではその半分の周波数で、かつ、デューティ比が50%の波形となっています。
また、正常に出力している D3、D5、D10ポート間の波形を観察すると、波形ごとにタイミングがズレている事が分かります。そして、リセットを掛けてもその状態が変わらなかったので、このタイミングのズレは内部的な必然と思われます。


実験にで使用したスケッチは、次の通りです。


// Uno 20KHzPWM test
//  2020.4.3


#include <avr/io.h>
void setup() {
 pinMode(3,OUTPUT);
 pinMode(5,OUTPUT);
 pinMode(6,OUTPUT);
 pinMode(9,OUTPUT);
 pinMode(10,OUTPUT);
 pinMode(11,OUTPUT);
 TCCR0A = 0b01100011;  TCCR0B = 0b00001010;  OCR0A = 99;
 TCCR1A = 0b01100011;  TCCR1B = 0b00011010;  OCR1A = 99;
 TCCR2A = 0b01100011;  TCCR2B = 0b00001010;  OCR2A = 99;    
}
void loop() {
 int vol=20;
//  OCR0B = vol;
//  OCR1B = vol;
//  OCR2B = vol;
 analogWrite(5,vol);
 analogWrite(10,70);
 analogWrite(3,40);  
}


setup 部分で関係するレジスタの設定を行い、loop の部分でデューティ比を設定してPWMを出力しています。最初は、//の部分のようにレジスタに直接アクセスして設定しましたが、その後、analogWrite( ) のコマンドを使ってみると、正常に出力されることを確認しました。
  このコマンドが使用出来るのです!
上記に示した波形は、この状態で出力した時のオシロ波形なのです。


この方法では、デューティ比を設定できるPWM出力は、D3、D5、D10ポートのみです。
D6、D9、D11ポートはデューティ比が50%の半分の周波数しか出力していませんし、これ以外に使用出来ないのです。即ち、この方法では、このポートを他の用途として使用出来ない事を示しています。これもチャンとした理由があります。
また、D3、D5、D10ポートのタイミングも一致していませんが、これもチャンとした理由があります。 その理由を下記のサイトで説明しいますので参照してください。


 鉄道模型工作実験室 Arduino Uno のPWMキャリア周波数を20kHzにする


ただし、注意が必要です
今回の処理は、ノコギリ波のトップの値を 255 から 99 に変更して20kHz 化を実施しています。従ってデューティ比の指定は0~99までしか指定できません。このため、スケッチでのanalogWritr( ) のコマンドは使用できるものの、その指定値には注意が必要です。99以上の値は無効なので、結果的にはデューティ比100%の状態になるものと推定します(未確認ですが・・・・・)。
しかし幸いなことに、0~99までで 0~100%を指定することになるので、デューティ比のパーセント表示そのままの値を使用すれば良い事になります。

チラツキを防止したLED式室内灯

 【 古いブログで掲載した記事(2020/12/7)を再掲載します。】


テープ式LEDを使った室内灯ユニットを工作してきたが、走行中のチラツキが激しく、レールや車輪のメンテナンスを実施するも充分ではなかった。 そこで、チラツキの原因を探るうちに、色々な知見を得ることが出来、その対策を図った室内灯を完成する事ができた。そこで、得られた知見を整理して要点をまとめておくことにした。


■テープLED式室内灯ユニットの構成
テープLEDを使用するにはDC12volt のPWM制御によるコントローラが必須である。そして、チラツキを防止するにはコンデンサの設置が必要であるが、このコンデンサとPWM
制御の関係が問題なのである。この問題を解決してチラツキを防止した室内灯ユニッチの構成を下に示す。

   

この様な構成にした場合の重要なポイントは、

  1. ブリッジダイオードは、ショットキーバリアダイオードを使用すること。
  2. コンデンサは電解コンデンサとし、その容量は 100μF 程度とする。セラミックコンデンサを使用するとその効果は1/5 程度に低下する。
  3. 室内灯の明るさは電流制限抵抗を用いて電流を抑えること。標準は 1KΩにて3~5mA 程度とする。
  4. コンデンサはブリッジダイードと電流制限抵抗の間に設置すること。

このなかで、1項目のねらいは、コンデンサに貯めた電気を電源側に逆流しないようにし、電源側のPWM制御波形への影響を防止するためである。特にコンデンサはコアレスモータを搭載した動力車への影響が大きいため、この選択は重要である。
2~4の項目は、コンデンサに貯めた電気を有効に使用するための方策である。また、電解コンデンサの容量や電流制限抵抗の値は、使用するLEDの特性に合わせて、適切な値の物を使用する必要があります。消費電流の多いLEDの場合には、大きな容量のコンデンサが必要となります。
なお、このモデルの最大の欠点は、電解コンデンサを使用するため、そのサイズが大きくなることですので、何らかの妥協と工夫が必要です。


■ 実際に工作して室内灯ユニットの例
装着しようとする車両に合わせて、いろいろな形状のユニットを工作して来た。 特に、電解コンデンサのサイズが少し大きいので、どこに収めるかが工夫のしどころである。 下に示すユニットは、表面実装用ショットキーバリアブリッジダイオードを使用してコンパクトに収めたものです。

 

  • テープLED: LEDテープライト 5m 300灯 12V 両端子 1チップ 薄型 非防水 単体 電球色、海渡電子製、Amazonにて¥475.-
  • ブリッジダイオード: 表面実装用ショットキーバリアダイオードブリッジ 60V2A TS260S(5個入)、秋月にて1パック ¥100.-
  • コンデンサ: アルミ電解コンデンサー100μF16V105℃ ルビコンMH5、秋月にて@20.-
  • 抵抗: カーボン抵抗(炭素皮膜抵抗) 1/6W1kΩ (100本入)、秋月にて1袋¥100.-
  • 基板: 16ホールユニバーサル基板(2.54mm) Picotec International製、秋月にて@15.-

この他に、ポリウレタン線やハンダ等が必要となりますが、送料抜きで計算すると、1セット70 円弱で工作出来ます。 嬉しいですね!


なお、詳細な内容につては、「鉄道模型工作実験室」の「チラツキを防止したLED式室内灯 まとめ」をご覧ください。