HOME >> 鉄道模型実験室 > パルスが出ない・・・

鉄道模型実験室  パルスが出ない・・・

■ はじめに

 走行中の動力車のモータ端子電圧やモータ回転数を計測しようとする無謀な取り組みに足を突っ込んでしまった。 机上の検討では「行けそうと」と判断してしまったのでので、実験をはじめてしまったのである。 なにぶんにも小生にとっては未知の領域になるので、各要素を確認しながら進めることにする。

 今回は、モータ端子間電圧とモータ回転数のパルスの取り込み方法を確認することにした。

 

■モータ端子間電圧の取り込み方法

  .

 まず、無線通信のXBeeでは、アナログ入力の制限は 1.2 ボルトまでであるので、電圧値を縮小させる必要がある。 この方法は既にオペアンプを使用する方法を習得済みであるので対応可能である。 しかし、モータ端子のマイナス側とレールのマイナス側では電圧差があり、一致しないので工夫する必要がある。 +側だけを測定しては駄目であるので、差圧を測定出来ないかオペアンプの回路図を探してみた。 やはり、ピッタリの説明図を見つけたのでこれを応用する事にした。

 この「差動増幅器」の計算式に従って、モータ端子間電圧 Max 10 Volt をアナログ入力限界 Max 1.2 Volt に増幅(縮小)するためには、

    R1 = R3 = 27KΩ、 R2 = R4 = 3.3KΩ

とすると、

    Vout = 10 ×3.3K/27K = 1.22 Volt

となり、手持ちの抵抗値でピッタリの増幅率にする事が出来る。

 レール電圧も、この抵抗の組合せを使うとすると、右上の回路図のように、出力電圧は、

    Vout = 10 ×3.3K/(27K+3.3K) = 1.09 Volt

となる。 この回路を右上に示すような状態で確認することにする。 モータの両側には電圧降下用の抵抗を挿入し、出力端は10KΩの抵抗でGNDに接続させている。 オペアンプは2回路入汎用オペアンプ LM358N を使用している。 実験状態を下の写真に示す。

 モータを適当な電圧で回転させた状態で、端子間の電圧をテスターで測定した。 回路電源は単4電池 2本を使用する。

 測定結果を下のグラフに示す。

   

 入出力の関係は見事に線形であり、殆ど計算通りの値を示している。 グラフでは近似線とプロット点がずれているように見えるが、これはEXCELの表示上の癖であり、拡大して表示すれば、ピッタリとしている事が判る。

  .

 出力されたアナログ電圧をXBee モジュールの送れば、無線通信で送信出来るであろう。 予備実験の第1歩は難なくクリアー出来た。

 

■モータの回転数を検知しよう

 次に、モータの回転数を計測するために、回転パルスを検知する方法を実験する。

 センサーとして磁気を検知するホールIC を用いてモータの回転をパルスとして捕えんとするものである。 以前に、歯車の回転数を検知するセンサーとして利用していたと聞いた事があるからである。 モータの磁石は固定側にあるが、回転子の鉄心から磁力が漏れてくるのではと期待したのである。

 #include <FreqCounter.h>

 void setup() {
   Serial.begin(9600);   
   Serial.println("Frequency Counter"); } long int frq; void loop() {    FreqCounter::f_comp = 8;     FreqCounter::start(100);     while (FreqCounter::f_ready == 0);    frq = FreqCounter::f_freq;      Serial.println(frq);    delay(500); }

 出力されたパルスを確認するためには、何らかの検知器が必要である。 そこでArduino の、「Freq Counter」という周波数カウンタライブラリが公開されている方法を使ってみることにする。 これは、デジタル5ピンを使用して16 ビットハードウェアカウンタを使用するとの事である。 そのスケッチの内容を左に示す。 start(100) の部分はパルスをカウントする時間をミリ秒で指定するので、任意の時間が設定できるとあるが、実際は2のn 乗の数値しか使えないらしい。 また、測定結果はArduino のシリアルモニタ上で観察する。

  .

 Arduino を使うため、ついでにセンサーの電源もここから頂く事にして、センサは左の写真のように加工した。 ウレタン線を使い、保護として熱収縮チューブを短く切っておき、自由に曲げられるようにしている。 回路は上のような簡単な回路で実験した。

 

 

 

 

 しかし、簡単な実験であるため、スイスイと行くと思ったが、そうは簡単では無かった。 パルスが出ないのである。

   パルスが出ない?

ホールIC の向きや位置を色々変えたが、ウンともスンとも言わない。

 そこで、小型の磁石を持ち出してきて、センサの周りで動かして見ると、確かにカウントしている事が確認でき、センサーも Arduino もスケッチも正常と判断されるが、モータの回転数を検知してくれないのである。

 また、磁石を色々動かしている時に、気が付いたのであるが、センサの上から一度近づけると反応するが、次からは反応しない。 そして、今度は裏から近づける反応するのまたホールドされてしまう。 裏と表から交互に近づけなければならないのである。 そこで、ネットで調べてみると、使用したUS1881形式のホールIC ではラッチ式で、信号のON/OFFにはNとSが必要であるとのことである。

          タハー・・・・・知らなかったね。 素人は怖いもの知らずですね。

  .

 そこで、以前に回転計のセンサとして使用していた、他のタイプのホールIC が有ったのでこちらでも試してみた。  形式はDN6851で交番磁界で作動するとのこと。

 しかし、こちらのタイプでも回転数パルスは出なかった。 右の写真はモータの周りにセンサーをあちこち置いて、チェックしている状態で、下の写真は実験装置の全体と、センサーおよびチェック用の磁石である。

 このチェック用の磁石をセンサの周りでいろいろ動かした時のシリアルモニタに表示された値を左に示す。 (メモ帳にコピーした状態である) 測定時間は 1000ms に設定して測定している。  不規則にカウントされていいるのが判るであろう。

 

 しつこくトライしたが、ホールICではモータの回転子の回転を捕える事は出来ないと諦めることにした。 外部への漏れ磁束は殆ど無いと考えるべきなのだろうか? 素人考えの甘さを反省しつつ、それならば反射式センサーがあるとばかりに、さっさと方針を変更することにした。

 次回は、その反射式回転センサーの実験を報告する。