PD10
ステッピングモータ・ドライバ



1.概要
 ステッピングモータは、サーボモータのように複雑なフィードバック制御をしなくても、回転速度、停止位置など思い通りに制御できる便利なモータです。とは言っても、DCモータのように電源を接続しただけでは回ってはくれません。 ステッピングモータをちょこっと回せるものがあれば便利だと思い、ステッピングモータのドライバ回路製作してみました。回転させるための2つのボタン(CWとCCW)と回転速度を設定するボリューム1つだけの簡単操作です。



2.仕様
・モータ : 2相ステッピングモータ用
・巻線形式 : バイポーラ/ユニポーラ両用(自動判別)
・駆動方式 : 2−2励磁(フルステップ)
・回転速度  : 60〜500pps
・制御方式 : 定電圧駆動
・重量 : 51g
・動作電圧 : 5〜24V
・最大電流 : 1.5A/相
・ケース外形 : 75*50*20(縦*横*高さ)


3.回路図




4.部品表

品名 品番 仕様 メーカー
IC1 3端子レギュレータ TA78L005AP 5V/150mA 東芝
IC2 マイコン ATtiny26L . ATMEL
Q1 抵抗内臓トランジスタ RN1202 . 東芝
Q2 抵抗内臓トランジスタ RN1202 . 東芝
Q3 抵抗内臓トランジスタ RN1202 . 東芝
Q4 抵抗内臓トランジスタ RN1202 . 東芝
Q5 抵抗内臓トランジスタ RN1202 . 東芝
Q6 抵抗内臓トランジスタ RN1202 . 東芝
Q7 抵抗内臓トランジスタ RN1202 . 東芝
Q8 抵抗内臓トランジスタ RN1202 . 東芝
Q9 抵抗内臓トランジスタ RN1202 . 東芝
Q10 FET 2SJ377 . 東芝
Q11 FET 2SJ377 . 東芝
Q12 FET 2SJ377 . 東芝
Q13 FET 2SJ377 . 東芝
Q14 FET 2SK974L . 日立
Q15 FET 2SK974L . 日立
Q16 FET 2SK974L . 日立
Q17 FET 2SK974L . 日立
ZD1 ツェナーダイオード HZ18-3-E 18V ルネサステクノロジ
ZD2 ツェナーダイオード HZ18-3-E 18V ルネサステクノロジ
ZD3 ツェナーダイオード HZ18-3-E 18V ルネサステクノロジ
ZD4 ツェナーダイオード HZ18-3-E 18V ルネサステクノロジ
C1 セラミックコンデンサ . 0.1uF .
C2 セラミックコンデンサ . 0.1uF .
C3 セラミックコンデンサ . 0.1uF .
C4 セラミックコンデンサ . 0.1uF .
C5 セラミックコンデンサ . 0.1uF .
C6 セラミックコンデンサ . 0.1uF .
C7 アルミ電解コンデンサ . 100uF/35V .
C8 アルミ電解コンデンサ . 100uF/10V .
R1 抵抗 . 47kΩ .
R2 抵抗 . 10kΩ .
R3 抵抗 . 10kΩ .
R4 抵抗 . 10kΩ .
R5 抵抗 . 10kΩ .
R6 抵抗 . 10kΩ .
R7 抵抗 . 1kΩ .
R8 抵抗 . 1kΩ .
R9 抵抗 . 1kΩ .
R10 抵抗 . 1kΩ .
R11 抵抗 . 1kΩ .
R12 抵抗 . 1kΩ .
R13 抵抗 . 1kΩ .
R14 抵抗 . 1kΩ .
R15 抵抗 . 100Ω .
R16 抵抗 . 100Ω .
R17 抵抗 . 100Ω .
R18 抵抗 . 100Ω .
VR1 可変抵抗 . 10kΩB .
PS1 ポリスイッチ REUF300 3A レイケム
端子台 . . 7端子 .




5.回路の説明
 簡易的にステッピングモータをドライブするための回路です。
モータの回転数は、VR1で設定します。モータのパルスレートは、約60〜500ppsの間で設定可能です。
スイッチCW、又はCCWを押すと押している間だけ、CW、又はCCW方向にモータが回転します。
ステッピングモータには、巻き線の違いでバイポーラとユニポーラがあり、通常はドライブ回路が異なるのですが、どちらのタイプでもドライブできるようにしました。電源投入時にR1,R2を介して電源電圧を検出し、COMが接続されているかを判断することで、バイポーラ/ユニポーラを自動的に判断します。
駆動方式は、回路が簡単な定電圧駆動方式としました。定電圧駆動方式では、モータが停止している時、電流が多く流れるため、モータが発熱します。これを防ぐために、モータ停止時には、モータに流れる電流をデューティ50%でチョッピングするようにしてあります。
市販のステッピングモータは、ほとんどPMタイプかHBタイプですが、駆動に関してはどちらも同じです。



6.マイコンプログラム
自作する方は、マイコンにプログラムを書き込む必要があります。
下記ファイルをダウンロードして、解凍後にできるpd1000.hexというファイルをマイコンに書き込んで下さい。
書き込みを行う際に、プログラムメモリの最終番地(0x1FC)のローバイトに1MHzのOSCキャリブレーションデータを書き込んで下さい。

pd1000.zip

設定
・FUSE bit high (11100110B)
・FUSE bit low (11100001B)
RSTDISBL:0
SPIEN:0
EESAVE:1
BODLEVEL:1
BODEN:0
PLLCK:1
CKOPT:1
SUT1:1
SUT0:0
CKSEL3:0
CKSEL2:0
CKSEL1:0
CKSEL0:1

・LOCK bit (11111111B)
LB1:1
LB2:1



7.使い方
 ステッピングモータのA相、B相、COM(ユニポーラの場合)、電源を接続します。ユニポーラでCOMが2本出ているモータは2本とものCOMに接続します。
制御回路の電源は、モータ電源から供給されます。電源電圧は、通常はモータの定格電圧とします。
 ボリューム(VR1)で回転速度を設定したら、CW(時計回り)、又はCCW(反時計回り)のスイッチを押すとモータが設定された回転数で回ります。



8.ステッピングモータの配線について
 ステッピングモータは、普通のDCモータと違い、1つのモータから多くの電線が出ているので、仕様書がないと、いったいどれが何の線なのかわかりません。
そこで、手元に仕様書が無い場合の配線の見分け方について説明します。
普通に使っているステッピングモータは、2相モータがほとんどですので、2相モータであることを前提とします。
2相ステッピングモータを巻き線の違いで、バイポーラとユニポーラに分けられます。
見分けるには、まず電線の数に注目します。
モータから出ている電線が4本であればバイポーラ、電線の本数が5本の場合はユニポーラ(タイプU)、6本の場合はユニポーラ(タイプT)です。(図1参照)

@バイポーラの場合
テスターを使って巻き線抵抗を測定すると、A相とB相の間は導通がありませんから、導通がある2本をそれぞれA相、B相と仮決めします。(図1参照)
巻き線のA相、B相とは、便宜上決めているだけなので、仮に本来のA相とB相が反対であっても構いません。
あとは、Aと(Aバー)、Bと(Bバー)を調べるのですが、これを調べるには、とりあえず仮決めしてドライバ回路に接続して、モータを回してみます。必ずモータは回る筈です。ただ、思っていたのと回転方向が反対の場合があります。この場合、Aと(Aバー)の線を入れ替えれば回転方向は反転します。つまり、仮決めしたAと(Aバー)が反対だったわけです。

Aユニポーラ(タイプT)の場合
6本の電線をA相の3本、B相の3本に分けます。A相、B相間は導通がありませんから、テスターで導通を調べればすぐに分かります。次にこの3本のうちどれがCOMかを調べればよい訳です。今度はテスターを使って巻き線の抵抗値を測定します。COMは、それぞれの巻き線の中点から出ていますので、抵抗値を測定すれば、どれがCOMか推測できます。あとは、@のバイポーラの時と同じやり方で、配線を決定することが出来ます。

Bユニポーラ(タイプU)の場合
モータから5本の電線が出ている場合はユニポーラですが、このケースが一番厄介です。
まず、COMがどれかを決めます。COMを仮決めし、テスターを抵抗測定レンジにして、COMと他の線間の抵抗値を測定します。他の線は4本ありますから、4回測定することになります。測定した4つの抵抗値がすべて同程度の値であれば、仮決めしたCOMが正しかったことになります。違っていれば、COMを違う線にしてみます。最悪でもこの操作を5回繰り返せば、COMを特定できるわけです。COMが決まったら、あとは残りの4本ですが、これは、各相の中点がつながっているので、テスターで抵抗値を測定してもわかりません。そこで、4本の電線をAと(Aバー)、Bと(Bバー)と仮決めしドライバ回路に接続して、モータを回してみます。モータが回ればしめたものです。A相とB相は合っていたのです。不幸にして、ガタガタと振動するだけでモータが回らなかった場合は、仮決めしたA相とB相が間違っていたのです。そこで、仮決めしたAとBを入れ替えてみます。今度はモータが回る筈です。あとは、回転方向を合わせれば、OKです。回転方向の合わせ方は、@のバイポーラで説明したのと同じです。


図1