ステッピングモーター
ステッピングモータードライバを自作してみる(改)
今回の工作は、2相ステッピングモータードライバです。
(回路図はページの中ほどにあります↓)
【重要】
・現在公開している回路は、動作保障しておりません。
・このコンテンツは、予告無く再編集する場合があります。
・このコンテンツで公開している回路図等は、予告無く変更する場合があります。
・このコンテンツの記事を参考に工作する場合は、自己責任でよろしくお願いします。
なんらかの損害を負っても、当サイトでは責任を負わないものとします。
・製作前は、各ICのデータシートを一読して下さい。
【注意】
・ブレッドボードでの恒久的使用は、接触不良による誤動作が発生する場合があります。
一覧
【ユニポーラ用】 定電圧型
TB6615PG + MP4211
PIC12F675 + TB6615PG + MP4211
PIC12F675 + MP4410
【ユニポーラ用】定電流型
TB6615PG + SLA7026M
PIC12F675 + SLA7026M
【バイポーラ用】 定電圧型
PIC12F675 + TA7291P
PIC12F675 + L9110S
M5 ATOM Lite + L9110S
TB6615PG + MP4211 【ユニポーラ用】
・ユニポーラ型2相ステッピングモーター専用
・定電圧型ドライバ
・1相励磁、1-2相励磁、2相励磁方式の選択可能(TB6615PGデータシート参照)
【回路図】
TB6615PG + MP4211 v10 Ver1.0 (更新2015/4/2)
【注意事項】
・ステッピングモータは、コイル抵抗10Ω以上の物を使用すること
・モーター電源は容量のあるもの使用すること
・モーターの温度上昇に注意!
PIC12F675 + TB6615PG + MP4211 【ユニポーラ用】
・ユニポーラ型2相ステッピングモーター専用
・定電圧型ドライバ
・1相励磁、1-2相励磁、2相励磁方式の選択可能(TB6615PGデータシート参照)
・一定時間Step信号の入力が無いと励磁をOFFします(モータの熱対策)
【回路図①】
PIC12F675 + TB6615PG + MP4211 v10 Ver1.0 (更新2015/4/2)
※PICへのSTEP信号取込みは、シュミットトリガ入力
【PICプログラム①】
12F675用 Ver1.0 (更新2015/4/7)
【回路図②】
PIC12F675 + TB6615PG + MP4211 v11 Ver1.1 (更新2015/4/7)
※PICへのSTEP信号取込みは、TTL入力
【PICプログラム②】
12F675用 Ver1.1 (更新2015/4/7)
【注意事項】
・ステッピングモータは、コイル抵抗10Ω以上の物を使用すること
・モーター電源は容量のあるもの使用すること
・PICプログラムに関しては動作保障無しです
PIC12F675 + MP4410 【ユニポーラ用】
・ユニポーラ型2相ステッピングモーター専用
・定電圧型ドライバ
・1相励磁、1-2相励磁、2相励磁方式の選択可能 (PICプログラム内変更必要)
【回路図①】
PIC12F675 + MP4410 v10 Ver1.0 (更新2015/4/2)
※STEP信号→シュミットトリガ入力
DIR信号→TTL入力
【PICプログラム①】
常時励磁タイプ 12F675用 Ver2.0 (更新2015/4/7)
励磁OFFタイプ 12F675用 Ver2.0 (更新2015/4/7)
【回路図②】
PIC12F675 + MP4410 v11 Ver1.1 (更新2015/4/7)
※STEP信号→TTL入力
DIR信号→TTL入力
【PICプログラム②】
常時励磁タイプ 12F675用 Ver1.0 (更新2015/4/7)
励磁OFFタイプ 12F675用 Ver1.0 (更新2015/4/7)
画像は、同じ回路を3個つなげています(3軸ドライバ)
【注意事項】
・ステッピングモータは、コイル抵抗10Ω以上の物を使用すること
・モーター電源は容量のあるもの使用すること
・PICプログラムに関しては動作保障無しです
・PICプログラム①(常時励磁タイプ)以外を使用する場合、入力パルス幅が短すぎると誤動作しますので、8μSec以上確保してください。PICプログラム①(常時励磁タイプ)は、立上がり(立下り)エッジをみているので1μSecぐらいでも動作します。
MACH3(CNCソフト)では、以下の部分に8以上の数値を入力します
TB6615PG + SLA7026M 【ユニポーラ用】
・ユニポーラ型2相ステッピングモーター専用
・定電流型ドライバ
・1相励磁、1-2相励磁、2相励磁方式の選択可能(データシート参照)
【回路図】
TB6615PG + SLA7026M v10 Ver1.0 (更新2015/4/2)
PIC12F675 + SLA7026M 【ユニポーラ用】
・ユニポーラ型2相ステッピングモーター専用
・定電流型ドライバ
・1相励磁、1-2相励磁、2相励磁方式の選択可能 (PICプログラム内変更必要)
【回路図①】
PIC12F675 + SLA7026M v10 Ver1.0 (更新2015/4/2)
※STEP信号→シュミットトリガ入力
DIR信号→TTL入力
【PICプログラム①】
常時励磁タイプ 12F675用 Ver2.0 (更新2015/4/7)
励磁OFFタイプ 12F675用 Ver2.0 (更新2015/4/7)
※PICプログラムは、PIC12F675 + MP4410用と共通です
【回路図②】
PIC12F675 + SLA7026M v11 Ver1.1 (更新2015/4/7)
※STEP信号→TTL入力
DIR信号→TTL入力
【PICプログラム②】
常時励磁タイプ 12F675用 Ver1.0 (更新2015/4/7)
励磁OFFタイプ 12F675用 Ver1.0 (更新2015/4/7)
※PICプログラムは、PIC12F675 + MP4410用と共通です
【注意事項】
・PICプログラムに関しては動作保障無しです
・PICプログラム①(常時励磁タイプ)以外を使用する場合、入力パルス幅が短すぎると誤動作しますので、8μSec以上確保してください。PICプログラム①(常時励磁タイプ)は、立上がり(立下り)エッジをみているので1μSecぐらいでも動作します
MACH3(CNCソフト)では、以下の部分に8以上の数値を入力します
PIC12F675 + TA7291P 【バイポーラ用】
※TA7291Pは製造終了品の為、入手が困難となっています。TA7291Pの代替えでL9110S使用した例を下記に追加しています。
・バイポーラ型2相ステッピングモーター専用
・定電圧型ドライバ
【回路図①】
PIC12F675 + TA7291 v10 Ver1.0 (更新2015/4/9)
※STEP信号→シュミットトリガ入力
DIR信号→TTL入力
【PICプログラム①】
常時励磁タイプ 12F675用 Ver1.0 (更新2015/4/9)
励磁OFFタイプ 12F675用 Ver1.0 (更新2015/4/9)
【回路図②】
PIC12F675 + TA7291 v11 Ver1.1 (更新2015/4/9)
※STEP信号→TTL入力
DIR信号→TTL入力
【PICプログラム②】
常時励磁タイプ 12F675用 Ver1.0 (更新2015/4/9)
励磁OFFタイプ 12F675用 Ver1.0 (更新2015/4/9)
【注意事項】
・バイポーラ型2相ステッピングモーター専用になります
・PICプログラムに関しては動作保障無しです
・PICプログラム①(常時励磁タイプ)以外を使用する場合、入力パルス幅が短すぎると誤動作しますので、8μSec以上確保してください。PICプログラム①(常時励磁タイプ)は、立上がり(立下り)エッジをみているので1μSecぐらいでも動作します
MACH3(CNCソフト)では、以下の部分に8以上の数値を入力します
PIC12F675 + L9110S 【バイポーラ用】
TA7291Pの代替えでL9110Sを使用してみる。
L9110Sとモーターの結線
PICプログラムは、PIC12F675 + TA7291Pのプログラムを流用。
画像の結線は、PIC12F675 + TA7291P(V10)
【注意事項】
・ステッピングモータは、コイル抵抗が10Ω以上の物を使用すること。
M5 ATOM Lite + L9110S 【バイポーラ用】
M5 ATOM Liteは小型で多機能。開発もしやすいので8ピンPIC代わりに使えます。
L9110Sとモーターの結線
今回のM5Atomの
スケッチ
step信号が入力されたら、割り込み処理を実行させるようにしています。
step/dir入力は、GPIOは21と25 又は 26と32のどちらでも問題ありませんでした。
モーターの結線は、
GPIO22--A
GPIO19--A
GPIO23--B
GPIO33--B
#include <M5Atom.h>
#include <Stepper.h>
#define STEPS 20
Stepper stepper(STEPS, 22, 19, 23, 33);
volatile int previous = 1;
void setup() {
//pinMode(21, INPUT_PULLUP);//step
//pinMode(25, INPUT_PULLUP);//dir
pinMode(26, INPUT_PULLUP);//step
pinMode(32, INPUT_PULLUP);//dir
//attachInterrupt(digitalPinToInterrupt(21),step_in,RISING);//Low->High
//attachInterrupt(digitalPinToInterrupt(21),step_in,FALLING);//High->Low
//attachInterrupt(digitalPinToInterrupt(26),step_in,RISING);//Low->High
attachInterrupt(digitalPinToInterrupt(26),step_in,FALLING);//High->Low
}
void loop() {
}
void step_in(){
noInterrupts();
if(digitalRead(32)==HIGH) //dir -> pin25 or pin32
{
stepper.step(previous);
}
else
{
stepper.step(-previous);
}
delay(10);
interrupts();
}
【注意事項】
・ステッピングモータは、コイル抵抗が10Ω以上の物を使用すること。
・M5 ATOMは3.3V系なのでアルディーノ(5V系)と信号を直結する場合、レベル変換(5V->3.3V)が必要になります。
インタフェース
今回は、パソコンのパラレルポート(TTL)を使用してドライバを動作させるにあたって、
念の為74HCTのバッファを挿入し動作確認を行っています
TB6615PG・PIC12F675(GP2を除く)はTTL直接入力が可能なのでバッファが無くても動作はします
※PIC12F675のGP2のみシュミットトリガ入力(他のピンはTTL入力可)
※TTL→CMOS(直接接続不可) CMOS→TTL(直接接続可)
3ステート・バッファ
74HCT540(反転出力)
74HCT541(非反転出力)
74HCTシリーズはTTL入力が可能です(画像は74HCT540)
入力側を10KΩの抵抗アレイでプルダウンし、出力側をPIC又はTB6615PGに接続
左側にドライバを接続、右側に制御機器を接続
ドライバ側をハイインピーダンス状態にすると誤動作するので注意
補足
MP4410の脚は若干太くブレボに刺さりにくいのでゲタをかましましょう
0.65mmのすずメッキ線を半田付けする手も・・
サンケンのICはリードピッチがちょっと特殊なので、ハーフピッチの基板でゲタを作ります
ICソケットを1個ずつ切断し挿入
位置決め後、半田付け
次に0.65mmのすずメッキ線を半田付け
ブレボに挿入