ステッピングモーターを使ってみる(DRV8833、TB6612FNG)
はじめに
今回はステッピングモーターを使ってみました。ステッピングモーターのなかでもバイポーラ型のものです。ステッピングモーター用のモジュールを探していたときにDRV8833を見つけたので買いました。Adafruit製のブレットボードで使いやすくなっているものです。
▼Amazonだとかなり高くなっていたので、他で買うことをお勧めします。
買ってから使い方を調べたのですが、AdafruitのホームページでDRV8833を使ったサンプルがありました。しかも今までよく使っていたTB6612FNGでステッピングモーターを使う方法についても書かれていました。じゃあDRV8833は買わなくてもよかったですね…
ページ内に書かれていましたが、モーター用の電圧や電流をさらに増やしたい場合は他のモジュールを使うことが勧められていました。
DRV8833とTB6612FNGでは明確に違いがあって、DRV8833はどちらかというと低電圧向きです。TB6612FNGのほうが高い電圧に耐えることができますが、それでも大型のモーターを動かすのは厳しいので、その場合は他のモジュールを使ったほうが良いです。
▼Adafruitの参考になったページです。
Overview | Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board | Adafruit Learning System
- ・DRV8833は2.7V~10.8V
- this chip is better for low voltage uses (can run from 2.7V up to 10.8V motor power) and has built in current limiting capability.
- ・TB6612FNGは4.5V~13.5V
- For higher voltages, check out the TB6612.
- Good for motor voltages from 4.5V up to 13.5V!
- ・DRV8871は6.5V~45V
- For much higher voltages and currents check out the DRV8871!
- 6.5V to 45V motor power voltage
以前作った小型の二輪ロボットを電池二本で動かせなかったのは、TB6612FNGの許容電圧範囲よりも小さかったからかもしれないですね。絶対最大定格ばかり見ていて気付いていませんでした…
回路を組む
▼Adafruitのサイトを参考にしています
Overview | Adafruit DRV8833 DC/Stepper Motor Driver Breakout Board | Adafruit Learning System
マイコンにはArduino Unoを使いました。UnoのVin端子と、モータードライバのVM端子を繋いで給電していますが、パソコンからの給電では9Vになっていない気がしています。テスターで測っても5Vぐらいでしたが、一応動作は確認できました。
▼DRV8833の回路図
▼TB6612FNGの回路図
▼ステッピングモーターは部室にあったものを使いました。入力定格電圧は12Vです。
バイポーラ ステッピングモーター SM-42BYG011: パーツ一般 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)
プログラムを書く
▼Adafruitのサイトに載っていたプログラムです。
▼Arduino IDEのStepperライブラリに入っているプログラムのピンを変えたものです。こちらも動作確認をしました。
実際の動作
▼DRV8833を使った、一つ目のプログラム。プログラム通りForward方向とBackward方向に動いていますが、一回転する前に折り返しています。
▼TB6612FNGを使った、一つ目のプログラム。DRV8833での動作と特に変わりありません。
▼こちらは二つ目のプログラム。方向転換する前にdelayが入っている影響か、きれいに一回転しています。
最後に
ステッピングモーターを動かすのは、DCモータよりも複雑なICを使うのかなと思っていたのですが、意外と簡単でした。TB6612FNGを使えるなら慣れていますし、チップ部品があるので設計に組み込みたいところです。
実はジャンク品で買ったステッピングモータを動かしたかったのですが、それはうまくいきませんでした。安かったとはいえ、やはり素人がジャンク品に手を出してはいけないですね。だからと言って、どのステッピングモーターなら確実に動作させられるのかが分からないというのはあります。いろいろ使ってみようと思います。