HOME > CNC関連

ステッピングモータードライバを自作してみる(改)

今回の工作は、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のすずメッキ線を半田付け


ブレボに挿入


▲ページトップに戻る