Un モータードライバー これは、直流モーターを非常に簡単な方法で制御できるようにする回路です。 これらのコントローラーを使用すると、回転速度を制御するために、モーターに供給される電圧と電流を管理できます。 また、循環電流を制限(チョッピング)することにより、モーターの電子機器が損傷するのを防ぐ保護方法として機能します。
したがって、DIYプロジェクトを作成する場合は XNUMXつ以上のDCモーターを含むそれらがどのタイプであっても、特にステッピングモーターの場合は、モータードライバーを使用して作業を簡単にする必要があります。 別の方法でそれを行う方法はありますが、トランジスタを使用すると、モータードライバーを備えたモジュールの方がはるかに実用的で簡単です。 実際、これらのドライバーはトランジスターに依存して仕事をしています...
なぜドライバーが必要なのですか?
El モーターコントロールにはドライバーが必要ですが、 私が前に言ったように。 また、Arduinoボードとそのマイクロコントローラーはモーターの動きに電力を供給することができないことに注意する必要があります。 それは単にデジタル信号用に設計されていますが、これらのタイプのモーターが要求するようなもう少し電力を供給する必要がある場合はうまく機能しません。 そのため、Arduinoボードとモーターの間にこの要素を配置する必要があります。
ドライバーの種類
それを知っている ドライバーにはいくつかの種類があります 対象となるエンジンのタイプによって異なります。 これは、適切なドライバーを取得するためにそれを区別する方法を知るために重要です。
- ユニポーラモーター用ドライバー:コイルを流れる電流は常に同じ方向に流れるため、制御が最も簡単です。 ドライバーの仕事は、各パルスでどのコイルをアクティブにする必要があるかを知る必要があります。 このタイプのコントローラーの例は、ULN2003Aです。
- バイポーラモーター用ドライバー:DRV8825のように、これらのモーターはより複雑で、ドライバーも複雑です。 この場合、それらは一方向または他の方向(南北および南北)の電流でアクティブ化できます。 モーター内部で発生する磁場の極性を変える方向を決めるのはドライバーです。 方向を逆にするための最もよく知られている回路はプネテHと呼ばれ、モーターを両方向に回転させることができます。 そのHブリッジは、いくつかのトランジスタで構成されています。
後者は、いくつかに含まれているため、近年さらに人気が高まっています プリンタは3D ヘッドで印刷を制御します。 3Dプリンターを取り付ける予定の場合、またはXNUMXDプリンターを既にお持ちの場合は、モーターを制御したり、損傷している場合にこの部品を交換したりするために、これらのXNUMXつが必要になる可能性があります。 また、ロボット、プロッター、従来のプリンター、スキャナー、電子車両、ロングなどにも使用されています。
DRV8825
市場にはいくつかのドライバーモデルがあります。 たとえば、彼 DRV8825は、A4988のアップグレードバージョンです。。 このドライバーは、モーターを適切に処理するために、マイクロコントローラーからのXNUMXつのデジタル出力のみを必要とします。 それだけで、これらのXNUMXつの信号でモーターの方向とステップを制御できます。 つまり、これにより、他の単純なモーターのようにすばやく回転する代わりに、ステッピングを実行したり、モーターを段階的に回転させたりすることができます。
DRV8825では、A4988で使用されている電圧よりも高い電圧での作業が可能です。 45vに達することができます A35の4988vの代わりに。 また、A2.5よりも4988アンペア多い大電流、具体的には1Aを処理できます。 これらすべてに加えて、この新しいドライバーは、ステッピングモーターシャフトをより正確に動かすことができるように、新しい32/1マイクロステッピングモード(A16の場合は4988/XNUMX)を追加します。
そうでなければ それらは非常に似ています。 たとえば、どちらも問題なく高い動作温度に達することができます。 したがって、小さなヒートシンクを一緒に使用する場合、特に1Aを超えて使用する場合は、はるかに優れています(多くのモデルにすでに組み込まれています)。
カプセル化が高温に達した場合は、予防措置として、カプセル化をオフにする必要があります。 相談するといいでしょう データシート 購入したモデルの最高温度を確認してください。 ドライバーの横に温度センサーを追加して温度を監視し、限界温度に達した場合に操作を中断する回路を使用することを強くお勧めします...
DRV8825には 問題に対する保護 過電流、短絡、過電圧および過熱の。 したがって、それらは非常に信頼性が高く、耐性のあるデバイスです。 そしてすべてのために かなり低価格 このコンポーネントを見つけることができる専門店で。
マイクロステッピング
の技術で 公称ステップよりも低いマイクロステッピングステップを実現できます あなたが使用しようとしているステッピングモーターの。 つまり、ターンをより多くの部分に分割して、よりゆっくりまたはより正確に進むことができるようにします。 これを行うために、各コイルに適用される電流は、利用可能なデジタル信号でアナログ値をエミュレートすることによって変化します。 完全な正弦波アナログ信号が達成され、互いに90度位相がずれている場合、目的の回転が達成されます。
しかしもちろん、そのアナログ信号を取得することはできません。 私たちはデジタル信号を扱います。 そのため、これらを処理して、電気信号の小さなジャンプを通じてアナログ信号をシミュレートしようとする必要があります。 モーターの解像度はこれに依存します:1 / 4、1 / 8、1 / 16、1 / 32、..。
必要な解像度を選択するには、モジュールのM0、M1、およびM2ピンを制御する必要があります。 ピンはプルアップ抵抗を介してグランドまたはGNDに接続されているため、何も接続されていない場合は常にLOWまたは0になります。この値を変更するには、1またはHIGHの値を強制する必要があります。 ザ・ M0、M1、M2の値 それぞれ、決議に従わなければならないものは次のとおりです。
- フルステップ:低、低、低
- 1/2:高、低、低
- 1/4:低、高、低
- 1/8:高、高、低
- 1/16:低、低、高
- 1/32:他のすべての可能な値
ピン配置
El DRV8825ドライバーは単純な接続スキームを持っています、十分なピンを持つことは、専門家ではない人にとっては少し複雑になる可能性があります。 上の画像で確認できますが、ピンを見るときはモジュールを正しく配置してください。間違えて逆さにすると、接続不良や損傷につながることがよくあります。
コモ ドライバーを接続するための推奨事項、デバイスを損傷しないように適切に操作するには、以下の手順に従ってデバイスを適切に調整および調整することをお勧めします。
- ドライバーを電圧に接続します モーター接続やマイクロステッピングなし。
- マルチメータで測定 緊張 GNDとポテンショメータの間に存在します。
- ポテンショメータを調整する 適切な値になるまで。
- 今、あなたはできる 電源を切る.
- 現時点では、はい、できます モーターを接続する。 そして、電源をダイバーに再接続します。
- マルチメータメジャー付き ドライバーとモーターの間の強度 ステップバイステップで、ポテンショメータの微調整を行うことができます。
- 再度電源を切り、 これでArduinoに接続できます.
使用しない場合 レギュレーターの強度を調整できるマイクロステッピング 定格モーター電流の最大100%。 しかし、それを使用する場合は、循環する値が測定値よりも高くなるため、この制限を減らす必要があります...
Arduinoとの統合
ArduinoでDRV8825ドライバーを使用するには、 接続は非常に簡単です フリッツィングのこの電子回路図の上部にあるように、次のようになります。
- VMOT:最大45vまでの電源に接続されています。
- GND:アース(モーター)
- SLP:5vで
- RST:5vで
- GND:グランドへ(ロジック)
- STP:Arduinoピン3へ
- DIR:Arduinoピン2へ
- A1、A2、B1、B2:ステッパー(モーター)へ
接続して適切に調整すると、その制御のコードも簡単になります。 たとえば、ステッピングモーターを制御するには、次を使用できます。 ArduinoIDEのコード:
const int dirPin = 2; const int stepPin = 3; const int steps = 200; int stepDelay; void setup() { // Configura los pines como salida pinMode(dirPin, OUTPUT); pinMode(stepPin, OUTPUT); } void loop() { //Se pone una dirección y velocidad digitalWrite(dirPin, HIGH); stepDelay = 250; // Se gira 200 pulsos para hacer vuelta completa del eje for (int x = 0; x < 200; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(stepDelay); digitalWrite(stepPin, LOW); delayMicroseconds(stepDelay); } delay(1000); //Ahora se cambia la dirección de giro y se aumenta la velocidad digitalWrite(dirPin, LOW); stepDelay = 150; //Se hacen dos vueltas completas for (int x = 0; x < 400; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(stepDelay); digitalWrite(stepPin, LOW); delayMicroseconds(stepDelay); } delay(1000); }
Arduino IDEに付属している例の中にあるいくつかのコード例も試してみて、値を変更してモーターにどのように影響するかを学ぶことをお勧めします。
へ もっと ステッピングモーター、その制御、Arduinoプログラミングについては、お勧めします プログラミングコースを無料でダウンロード.
こんにちは、私はdrv8825で自家製のCNCを構築しています、私の質問は、23aよりもいくらか安いのでnema 2.8 2.5aモーターを置くことができるかどうかです、私は問題がありますか? ありがとうございました
こんにちはイエス様、
私たちを読んでくれてありがとう。 あなたの質問に関しては、それらのエンジンと互換性があるように、あなたが使用しようとしているドライバーに目を光らせてください。 DRV8825のケースは最大2.5Aです。 私が正しく覚えていれば6600Aまで上がることができるTB3.5を見てください...
挨拶!
サラウドス。 モーター電源にある電解コンデンサーの値は何ですか。 ありがとう。