前回の記事ではユニポーラ型のステッピングモーターの動作原理の説明、および実際にやってみて動くことまでを確認した。
ユニポーラは4つの電流の出口さえあればいいので、仮に手持ちのモータードライバーICが無かったとしても、トランジスタ4つ使って自ら制御回路を組み上げることはできそうだ。
ただ、今回のバイポーラステッピングモーターはコイルに流す電流を逆向きにできるような制御回路が必要なため必要なトランジスタの数も多く、自分で組むよりモータードライバーICを買ってきて使うほうが圧倒的に楽である。
モータードライバーIC, TA7774FG
今回使うモータードライバICは、TA7774FGである。秋月電子で安いモータードライバICを探して見つけたやつ。2個入りで100円なので1個50円(2023年2月時点)。ただし、在庫限りで取り扱い終了品のため、今後継続的に購入して使い続けるドライバICが欲しい場合はおすすめできない。
こいつのデータシートから、タイミングチャートを見てみる。

IN A、IN Bが入力電圧で、出力はΦAとかΦBとか、Φの頭に線が引かれているやつ(ブログ上で文字再現できない……)などの4つが出力であるということが、読み解く上での前提知識として必要。
なお、このデータシートでは出力の名前にΦが入っているが、単にAとかBとかAバー(Aの頭に線をつけて表記)といった名前を付けているもののほうが一般的……な気がする。以降この記事では、これら4つの出力は「A」「Aバー」「B」「Bバー」と呼ぶことにする。
さあ、このタイミングチャートを見て注目すべきことは、
・IN Aがハイになると、Aがハイになる。(Bについても同様)
・AとAバーのハイ、ロー状態は必ず逆になっている。Aがハイのとき、Aバーはロー。(Bについても同様)
これだけわかればとりあえずOK!パルスが立ち上がったり下がったりするタイミングに僅かにずれが発生するというのが現実的なICの性質であり、実際に図もそのようになっているが、モーターを動かす原理を理解する上ではこのわずかなずれは無視して良い。PSもパワーセーブモードにするための入力なので、ひとまず今は気にしなくて良い。
さて、このタイミングチャートのとおりにIN AとIN Bをハイにしたりローにしたり切り替えていくと、バイポーラステッピングモーターに何がおきるんだろう?
バイポーラステッピングモーターの制御
バイポーラステッピングモーターは、下の図のように磁石と2つのコイルからなる。

この2つのコイルに流す電流を、先ほどのタイミングチャートから辿って考えてみる。考えるスタート地点は、IN Aの立ち上がりの瞬間からだ。
フェイズ1:IN Aをハイにする。
このとき、Aはハイになり、Aバーはローなので、電流はA → Aバーの方向に流れる。このとき、B側コイルの制御信号IN Bはローなので、A側コイルとは逆にBがロー、Bバーがハイであり、Bバー → B方向に電流が流れる。
このとき、A側コイルを流れる電流によってコイルがN極になったとする。B側コイルはA側コイルとは逆向きの電流と言えるので、S極となる。
すると、内部の磁石はそれぞれのコイルに引き寄せられて、下の図のような状態になる。

磁石のS極はA側コイルに引かれて反時計回りに回転したがり、磁石のN極はB側コイルに引かれて時計回りに回転したがる。その結果両者釣り合って、こんな感じで安定する。
フェイズ2:IN Bをハイにする。
タイミングチャートによると、次に来るのはIN Bがハイになる信号である。
このとき、Bがハイ、Bバーがローになるので、B側コイルの電流の向きは反転してB → Bバー方向に電流が流れて、A側コイルと同様にN極になる。
タイミングチャートを見ても分かる通り、このときまだA側コイルにも電流は流れたままなので、A側コイルはN極のままである。そのため、内部磁石はA側コイルにもB側コイルにも引き寄せられて、反時計回りに90度回転して中間の位置で安定する。

フェイズ3:IN Aをローにする。
IN AがローになることによってA側コイルの極性は反転し、Aがロー、Aバーがハイになる。電流はAバー → A方向に流れ、A側コイルはS極になる。
すると、内部磁石のS極はA側コイルに反発しつつB側コイルに引き寄せられて、反時計回りに動き出す。それだけでなく、内部磁石のN極がA側コイルに近づこうとして、反時計回りに回転する。
その結果、それぞれの極がそれぞれのコイルに引かれ合うので、フェイズ1のときと同様に中途半端な位置で釣り合って停止する。

フェイズ4:IN Bをローにする。
これにより、A側コイルの電流の向きは変わらず、B側コイルの電流の向きが反転する。Bバーがハイになるので、B側コイルはS極になる。
すると、磁石のS極はB側コイルに反発して反時計回りに回転する。そして磁石のN極がA側コイルとB側コイルの両方に引かれるので、中間の位置で停止する。

これで内部磁石は1回転した。あとはフェイズ1と同様に、再びIN AをハイにするとA側コイルがN極になり、内部磁石のS極がA側コイルに引かれて反時計回りに回転し、以降フェイズ2, 3, 4……と繰り返すことで、モーターをぐるぐる回すことができる。
これが、バイポーラステッピングモーターを回転させる制御である。
中国製小型モーターを使ってみる。
中国製の電子部品をAliexpressでよく買うのだが、今回使うモーターもAliexpressで購入した小型バイポーラステッピングモーターである。

とにかく小さくてかわいい。本当に動くんだろうか?
僕が持っているモーターは、買ったのが数ヶ月前なので現在の商品ページに掲載されている上の写真とフレキ部の色が違うけど、おそらくピン配置は同じだと思われる。ということで、上の写真だと右からAバー、A、Bバー、B、という並びのようだ。
次に、これを接続するドライバIC,TA7774FGのピン配置をデータシートからチェックしてみる。

カッコの中の番号が今回見るべき番号なので、繋ぎ方はこうなる。
・ICのための電源として5Vを3ピンに接続
・フィン(IC中央部の幅が広い金属端子)をGNDに接続
・IN AとしてマイコンのGPIOピンを4ピンに接続
・IN BとしてマイコンのGPIOピンを5ピンに接続
・モーター電源として、5Vを9ピンと16ピンに接続
・今回パワーセーブ機能は使わないので、誤動作防止のためPS入力(6ピン)をGNDに接続
・V S2BをハイにしないとICが動作してくれないらしいので、8ピンを5Vに接続
これで動くはずである。
おわび&次回予告
いや、上記のとおりに動作確認実験をやって、無事に動かすところまでいけたんだけど……少し問題発生しちゃって……
今回使ったTA7774FGは表面実装タイプのICなんだけど、ちょっと特殊な形をしていること、表面実装IC用の変換基板が手元になかったことから無理やりはんだづけして使っていた。

ICの足へはんだ付けする際や、付けた線をモーター側のフレキ基板にはんだ付けする際に線を引っ張っちゃったりして無理な力がかかったためか、一度動作確認した瞬間にICの足が根本から折れてしまったよ……
本来の計画では、無事に動いている動画を載せて「動いたよ~~!」ってやりたかったんだけどちょっと続行不可能なので、この記事は一旦ここで終わりです。

そして速攻でTA7774FGを使ったモータードライバ基板を設計し、Elecrowに製造発注までやりました!
数週間経ってこれが届いたら動作確認してみて、実際の動作の様子はその時記事にしようと思う。
(急いで作ったので配線ミスやらあって動きませんでした、というオチが一番悲しいのでそうならないことを祈る……)
中途半端だけど、今回はここまで。
電子工作に関するつぶやき用ツイッターアカウントを作りました。よかったらフォローお願いします。
おわり