PWMで非常に小さいDCモーターを制御しますか?


8

ウォークマン製の非常に小さなDCモーターを持っているので、マイクロコントローラーから速度を制御したいと思います。そのため、モーターの速度を変更するために、MOSFETを直列に接続し、そのゲートにPWM信号を適用します。

モーターのL&R = 4.7mH、11.5Ohm(Tao 0.41msec)を測定しました。

ベンチ電源を使用してモーターでいくつかの実験を実行したところ、0.2Vの電圧から約0.4Vのどこかまで、それが十分に動作していることがわかります。

私が持っている電源は1.8V(回路のデジタル部分に使用)に設定されているため、ゲート飽和に必要な電圧を供給できないため、標準のMOSFETを使用するのが少し難しくなります。このようなPチャネルMOSFETをいくつか購入しました。

したがって、このセットアップが機能すると考えていたとしても(Vcc->モーター-> FET-> GND)、制御に対して適切な解像度を得ることができず、モーターから使用したほどのトルクを得ることができませんDC電源から実行したときに取得します。

何の周波数かわかりません。私は使用しているはずですが、これを意図したとおりに動作させるために他にどのパラメータをチェックする必要があるのか​​わかりません。これに関するどんな助けでもありがたいです。

* UPDATE * Olinの回答に従って、私は彼が提案した回路を構築しました。私は2N3904トランジスタ、4.7nFのコンデンサと並列に接続された180Ωの抵抗を使用しました。添付されているのは、PWMコード100(256のうち)から実行する場合のコレクター電圧です。Vccは1.8Vです。

ここに画像の説明を入力してください


1
代わりにBJTを使用しないでください。これは小さなモーターであり、0.6Vの信号で簡単にオンにすることができます。
ジムダーデン、2015年

@JImDearden周りにある2N5088を試してみましたが、トランジスタの両端の電圧降下が大きすぎて、モーターにほとんど電圧がかかっていないため、ぶんぶん動いて動かなくなりました。
user34920

1
1Nのベース抵抗を備えた2N3904のようなスイッチングトランジスタを試してください。また、そのようなインダクタンスと過電圧を持つモーターにフライバックダイオードが必要です。PWMには1kHzで十分です。
2015年

回答:


8

最も簡単な解決策は、ローサイドNPNスイッチを使用することです。

モーターのDC抵抗は11.5Ωなので、消費できる最大電流は1.8 V / 11.5Ω= 160 mAです。実際には、トランジスタは数百mV消費し、最大可能電流が低下するため、これは設計上安全な最大値です。トランジスタは最小50のゲインに適しているため、少なくとも160 mA / 50 = 3.2 mAのベース電流が必要です。5 mAは、オンのときにトランジスタが確実に飽和するようにするための適切な目標です。BE降下が700 mVになるようにして、オンのときに抵抗の両端に1.1 Vが残るようにします。1.1 V / 5 mA = 220Ω。

C1は、ターンオンとターンオフを高速化するためにあります。(220Ω)(4.7 nF)= 1 µs、これはC1-R1時定数です。

PWM周波数は、モーターを流れる電流がオンとオフの各フェーズでほとんど変化しないように十分に高速でなければなりません。PWMによって引き起こされるリップルは、平均DC電圧に重畳されたAC電圧です。DC電圧だけがモーターを動かします。ACコンポーネントはトルクを発生させず、熱のみを発生させるため、DCと比較してそれを低く保つ必要があります。一般に、モーターは人間の聴覚限界を少し超えて実行します。これは、通常、ACコンポーネントを小さく保つのに十分な速さです。たとえば、25 kHzでは、PWM周期は40 µsであり、マイクロコントローラー内の妥当なPWM周辺機器から十分な分解能が得られます。

コレクタースコープトレースへの応答として追加

波形の基本的な形がよく見えるので、トランジスタが適切にスイッチングしており、電圧がモーターに適切に印加されているようです。

ターンオフ時のスパイクが気になります。それらはスコープのアーチファクトである可能性がありますが、スコープのトレースが正確である場合、ダイオードが機能していないか、正しく接続されていません。スパイクは、電源電圧よりも1ボルト以上高くてはいけません。

D1はトランジスタの焼き付きを防ぐだけでなく、オフ時間中のモーター電流の多くを保持します。前者は必要であり、後者は効率を高めます。

追加2

スコープトレースをさらに詳しく見ると、モーターがオフのときのコレクター電圧は2.48 Vであることがわかります。電源が1.8 Vであるとすると、オフ電圧は電源より680 mV高くなります。つまり、私が言ったように回路を構築しなかったということです。あなたは明らかに通常のシリコンダイオードを使用しました、おそらく1N400xのような遅いものです。ダイオードの遅いターンオン時間は電圧スパイクを説明し、特定のPWMデューティサイクルで全体的なドライブレベルを少し低下させます。また、ダイオードがまだ導通しているため、トランジスタが再びオンになったときにシュートスルーが発生します。この回路では、ショットキーダイオードの順方向電圧降下が低く、効果的に瞬時に逆回復します。

システムは通常は機能するはずですが、指定したショットキーダイオードで試してください。


今この回路を実際に組み立てました。PWM周波数 約31KHzです。ベースには180オームの抵抗と4.7nFのスピードアップキャップを備えた2N3904トランジスタを使用しました。MCUからの8ビットPWM解像度があります。約コード100(256のうち)で、モーターが回転し始めるのがわかります。解像度を上げる方法について何か考えはありますか?おそらくベースにDCオフセットを追加していますか?また、モーターはコード100で動作しますが、最小速度よりも少し速く動作することを指摘しておきます。私が必要とする速度。停止するのでPWMコードを下げることができません。
user34920

良い答えをしてくれたOlinに感謝します。C1の選択について詳しく教えてください。時定数といえば、スイッチング周期の約1/10であると理解していますが、「瞬時」の充電を行うため、ターンオン/オフ時間にはC1サイズだけで問題になると思います。
Vladimir Cravero、2015年

1
@vlad:電源投入時に追加料金をベースに投入すること、および電源オフ時にいくつかのフリーキャリアを吸い出すことは、どちらも短期的なイベントです。それらはおそらく、各エッジの後に数百ナノ秒しか続かない。時定数はそれよりも少し長くしたいが、次のエッジの前にキャップが「リセット」されるように十分に短くしたい。1 usは適切な妥協案のように見えましたが、予測するのが難しい多くの要因が問題になる可能性があります。表示されている値から始めて、次に波形を見て、必要に応じて調整します。
Olin Lathrop

@user:コレクターの波形を見てみましょう。たぶん、意図したとおりに起こっていないのかもしれません。モーターは変動するDC電圧で何をしますか?それが開始する電圧がありますが、一度行くとあまり速くなりませんか?
Olin Lathrop

@OlinLathropコレクター波形の写真を追加しました(この測定はトランジスターのCE全体で行われます)。DC電源を使用する場合、モーターは0.2Vで回転を開始し、その速度は最低限必要な速度です(約50〜60 RPM)。
user34920

0

マイクロコントローラの基本的な経験があり、回路を構築できると仮定します。

モーターを駆動する最も簡単な方法は、Hブリッジ、電流検出抵抗、およびPWMを使用することです。基本的に、Hブリッジは3.3Vまたは5Vを使用できます。

実際には、アプリケーションによっては、現在の制御をスキップすることさえできます。モーターが停止しても、おそらく損傷は生じません。

ところで、速度や位置の制御は必要ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.