15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Arduinoで3Dプリンタや自作CNCで使われているステッピングモーター(TB6600 Stepper Motor Driver 使用)を動かしてみた

Last updated at Posted at 2018-12-21

#【目的】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
ダウンロード.jpg
結構大きい。指挟んだら間違い無く怪我する

##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
ステッピングモーターを動かすためのドライバー

ダウンロード (1).jpg

あとは手持ちのArduino unoと9~40Vまでの外部電源(DCコンバーター)

ダウンロード (2).jpg
61j6nOzHSkL.SL1200.jpg

#配線とプログラム

以下を参照しました。

https://www.dfrobot.com/wiki/index.php/TB6600_Stepper_Motor_Driver_SKU:_DRI0043?fbclid=IwAR3Cv9nZvCh9VQTgtCymWM_IMSKoCboDplFvofytSut0wMGn5rzab3tUSm4
【配線】
800px-DRI0043_Connection.png

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とつながない方が吉です。デジタル系の電源とリレー・モーター駆動系の電源を完全に切り離す(アイソレーションする)のはノイズ対策の初歩です。
【プログラム】

sample.c

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に書いてみました。

15
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?