かみやんの技術者ブログ

主にプログラムの話です

ノイズ対策2

まずは、モータの電力線とモータドライバのGNDの間の電圧をオシロスコープで計った。

なんだ、この細かいパルスは?大きい方の方形波の周波数は30kHzぐらい。これは、モーターをPWM制御する場合としては、やや高い気もする(自分でモータドライバを作ったときは10kHzで作った)が、3倍ならまぁOKだろう。問題は、細かいパルス。周波数は1MHzぐらい。こんなパルス出るはずないのにな。
さらにもう一度、波形をとったら

↑なんだこれは、もっとひどい。。

とりあえず、フレームグランドを作ろう。ということで、アルミ板をホームセンターで買ってきた。300x200x1.5tで1850円ぐらい。高いな。以前、とくきんで買ったときは250x400x1.5tを2枚で1600円だった。
何倍も高いな。
と思って作業場に来たら以前とくきんで買ったアルミがまだ残っていた。。

1.5mmのアルミを切るとなると電動糸鋸だな。ということで久しぶりに出した(買って一回カットして、失敗して以来全く使っていなかった、そしてMODELAでカットするようになってしまった)。300x200のアルミ板はMODELAでは大きすぎてカットできないし、真っ直ぐ1本カットするためだけにMODELAを使うのは効率が悪い。

上の写真、左がすごく安かった電動糸ノコ RYOBI TF-3、右がカットする前のアルミ板、その上のは金切りばさみ。

カットして、基板を配置して、電源を入れては、配線の位置を変えというのを繰り返して、基板の固定位置を決めた。

いちばん左が、ベース基板+H8-3069、真中が電源回路(3端子レギュレータで7.2V→5V、1A)、右がモータードライバSabertooth。

とりあえず、基板をアルミ板に固定して配線をなんども調整したら、だいぶん手を近づけても、ヒートシンク等に触れても暴走しなくなった。が、やはり時々暴走する。

・一昨日のPDFに、回路のGNDをフレームグランドにつなぎましょう。とあったので、電源回路のGNDをアルミ板につないだ。


ばばーーん。波形が奇麗になりました!
手を近づけても、ヒートシンク等に触れても暴走しなくなりました。
PDFでは、各回路をフレームグランドにつなぎましょう。と書いてあったが、今のところマイコン基板とモータドライバ基板のGNDはフレームグランドにつないでいない。
上記、波形、矩形の最初の角がとがっているけど、ノイズでしょうか?本で見たリンギングノイズとはちょっと形が違うな。なんか指数関数的に綺麗な減衰をしているな。ま、問題ないけど。

<分かったこと>

  • 回路は、ポイポイ、プラスチックの上に置いたままではダメ、導電性のフレームに固定して、配線も固定して、GNDはフレームグランドにつなぐこと。
  • モータードライバ(他のFETを使ったものもだと思うが)は、ちょっと動くのを確認してOKではダメ、手をかざしたり、触ったりすると暴走するときがある。
  • 動いたらOKではなく、オシロスコープでOKの証拠を取る(NGならNGの証拠を取る)
  • オシロスコープは、回路につないでいないと50HzとかのACの波形が出る(これが出ていたら、オープンになっているかも)
  • オシロスコープのプローブのx10 - x1の切り替えスイッチに合わせて、オシロスコープ(EasyScopeII)側もx10 - x1のスイッチを切り替えること。

<次の問題>

  • 左右の旋回は綺麗にモータが回るようになったが、前進後退になるとモータが暴れる。マイコン側のソフトも旋回と前進後退でロジックが違うのでソフトウェア的な問題か、もしくは、モータドライバの使い方が悪いのか、信号にノイズがあるのか?
  • ロータリーエンコーダに乗っているノイズでカウントミスが多々ある。

や〜丸一日かかったけど、よかった〜、直って。