0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

 Aruduinoを使用してステッピングモータを操作する方法を解説します。
以下のものを使用します。モータードライバーは使用しません。

用意するもの 型番 個数
Aruduino Aruduino UNO
ステッピングモーター ST-42BYG020
抵抗 470Ω, 1kΩ 4
整流用ダイオード 1N4007 4
5V直流電源 -----
NチャネルパワーMOSFET 2SK22324 4

ステッピングモータの端子について

今回用いるステッピングモータには端子が6つあり、それぞれ赤、黄、緑、青、白、黒です。
白と黒はそれぞれ電源につなぎ、その他4色の端子を操作することでステッピングモータは回転します。
image.png
https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%86%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0%E3%83%A2%E3%83%BC%E3%82%BF%E3%83%BC

ステッピングモータは図のように4つのコイルがあり、順番に電圧が加わることによって回転します。
そのため動作するときは以下図のようにして動作させます。
スクリーンショット 2024-07-02 21.01.20.png
スクリーンショット 2024-07-02 21.01.38.png

回路図

手書きですみません。下図のように回路を組みます。
スクリーンショット 2024-07-02 21.40.06.png

データシート

データシートより、1STEPで1.8度回転すると記載されていますので、200ステップで1回転することがわかります。

プログラム

1回転後に1逆回転するプログラムは以下のようになります。

// 必要なライブラリのインクルード
#include <Stepper.h>

// モーターのステップ数
const int stepsPerRevolution = 200;  // モーターのステップ数

// Stepperライブラリのインスタンスを作成
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);

void setup() {
  // シリアル通信の開始
  Serial.begin(9600);
  // モーターのスピードを設定 (60 RPM)
  myStepper.setSpeed(60);
  // シリアルモニターにメッセージを表示
  Serial.println("Stepper motor control");
}

void loop() {
  // モーターを1回転前進
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);

  // モーターを1回転逆転
  Serial.println("counterclockwise");
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

90度回転させたい場合はmyStepper.step()の引数にstepsPerRevolution / 4とすればいいです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?