日別アーカイブ: 2025年9月12日

こわれた3Dプリンターからはぎ取ったステッピングモーターの動作確認

少し前に、最初に買った3DPが壊れた。(というかいじっていて壊した。)こわれたものはiUSEとかかいてある格安のやつ。(写真内から同じもののブログ記事

ステッピングモーターを一つ外したところXY42STH40-1684Aというものがついていた。(XYSLDJがブランド名?)

6pinのコネクターがついている。6ピンあるけど2番ピンと5番ピンは使用していない。

1,3番ピンと4,6番ピンがセットで使用する物。

コネクターの種類はモーター側は6ピンのJST-XHコネクター、プリンター側は4ピンのJST-XHコネクターだった。ケーブルの色は黒1番ピン、緑3番ピン、赤4番ピン、青6番ピンだった。

元々の3DPはモータードライバーがA4988だったのでアリでこちらのモジュールを購入

ステッピングモータの(コイルが内部でつながっている)1&3番ピンをモジュールのA1/B1のペア、4&6番ピンをA2/B2のペアに接続。

モーターの動作用に12Vの外部電源を接続。

モジュールの大まかな使い方イメージはこちら参考

以下のソースで動作確認。12Vの外部電源でパルスが5000マイクロセカンド未満だと、早すぎてうまく回ってくれなかった。

const int DIR  = 8;
const int STEP = 9;
const int SLEEP_PIN = 7;
const int ENABLE_PIN = 6;
const int pals = 5000;

void setup() {
  Serial.begin(115200);
  pinMode(DIR, OUTPUT);
  pinMode(STEP, OUTPUT);
  digitalWrite(DIR, LOW);
  digitalWrite(STEP, LOW);
}

void loop() {
  
  digitalWrite(DIR, HIGH);
  Serial.println("HIGH");
  for (int i=0; i<200; i++) {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(pals);
    digitalWrite(STEP, LOW);
    delayMicroseconds(pals);
  }

  delay(1000);

  digitalWrite(DIR, LOW);
  Serial.println("LOW");
  for (int i=0; i<200; i++) {
    digitalWrite(STEP, HIGH);
    delayMicroseconds(pals);
    digitalWrite(STEP, LOW);
    delayMicroseconds(pals);
  }

  delay(1000);

}