#【目的】3DプリンタやCNC自作キットでステッピングモーターによる1軸制御を行う
3Dプリンタ・自作CNC用に安価なステッピングモーターによる1軸制御(ロボシリンダとか短軸ロボ)をArduinoで制御してみたい
#購入品
##ボールねじ リニアCNCスライドストローク 100mmロングステージアクチュエーターステッパーモーター
https://www.amazon.co.jp/gp/product/B078S47HGK/ref=oh_aui_detailpage_o07_s00?ie=UTF8&psc=1&fbclid=IwAR0edN91hdomvQHZuwBX-p1VqNVQ-DvI9wpSIJjILyVF1jZE9YuPi2eZuMw
結構大きい。指挟んだら間違い無く怪我する
##Quimat 4A ステッピング モーター ドライバー コントローラー 9V-40V CNC単軸 2位相4位相(4/6/8線) QD07
https://www.amazon.co.jp/gp/product/B077VNWBQX/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1&fbclid=IwAR0f25dWO2wVuyJ1Sd5_10MRQ77kM5qHacdyHpOCp8LJJfP1KnKSBsyzoZc
ステッピングモーターを動かすためのドライバー
あとは手持ちのArduino unoと9~40Vまでの外部電源(DCコンバーター)
#配線とプログラム
以下を参照しました。
https://www.dfrobot.com/wiki/index.php/TB6600_Stepper_Motor_Driver_SKU:_DRI0043?fbclid=IwAR3Cv9nZvCh9VQTgtCymWM_IMSKoCboDplFvofytSut0wMGn5rzab3tUSm4
【配線】
MicrospDriverのPUL+,DIR+,ENA+には全てArduinoの5Vを繋ぎます。
DIR-に0V,5Vのどっちを入れるかで、ステッピングモーターの回転の向きが変わります。
ENA-に5Vを与えれば、ステッピングモーターが動き、0Vを与えれば動きません。
PUL-に0V,5Vと一定間隔でポートをON/OFFしてパルスを入れることでステッピングモーターが動きます。
Microstep Driverの「High voltage」と書かれた端子はステッピングモーター駆動用です。
GNDとVCCにはステッピングモーターを駆動するためのAudinoとは別電源をつないでください。
GND(-:グランド)には0V,VCC(+:コレクタ電圧)にはDC(直流)9-40Vまで接続可能です。
使用するステッピングモーターの仕様に合わせてください。
※GNDはArduinoのGNDとつながない方が吉です。デジタル系の電源とリレー・モーター駆動系の電源を完全に切り離す(アイソレーションする)のはノイズ対策の初歩です。
【プログラム】
int PUL=7; //define Pulse pin
int DIR=6; //define Direction pin
int ENA=5; //define Enable Pin
void setup() {
pinMode (PUL, OUTPUT);
pinMode (DIR, OUTPUT);
pinMode (ENA, OUTPUT);
}
void loop() {
for (int i=0; i<6400; i++) //Forward 5000 steps
{
digitalWrite(DIR,LOW);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
for (int i=0; i<6400; i++) //Backward 5000 steps
{
digitalWrite(DIR,HIGH);
digitalWrite(ENA,HIGH);
digitalWrite(PUL,HIGH);
delayMicroseconds(50);
digitalWrite(PUL,LOW);
delayMicroseconds(50);
}
}
「Microstep Driver」のDip SWをS1=S2=S3=OFF,S4=S5=S6=ONにしたら動きました。使ってる電源がありあわせの物で電流を供給しきれなかったのかも知れません。
「TB6600 Stepper Motor Driver 」を動かすための資料が日本語だとあまり見つからなかったので、Qiitaに書いてみました。