ESP32 ArduinoとAccelStepperでステッピングモーターを動作させます。

完成写真

動かすモーター

今回はオリエンタルモーターの5相ステッピングモーターPKE599ACを動かしてみたいと思います。
【公式】オリエンタルモーター 5相ステッピングモーター PKE599AC

仕様

  • 取付角寸法 85 mm
  • 励磁最大静止トルク 4.1Nm
  • 定格電流 0.75
  • 入力電流 単相200-240V 2.2

モーターのドライバー

【公式】オリエンタルモーター ドライバーRKSD507-C

  • 電源容量 単相200-240V 2.2 A以上
  • 電源入力 電圧 単相200-240 V

5V用のSTEP、DIR信号に加えて24Vの入力端子があります。便利ですね。

こんな感じで24VのMOSFET出力から普通につなげるだけで動きます。STEP,DIRの入力

MOSFET出力

AccelStepperのインストール方法

  • VSCodeを開き、PlatformIOのホームページにアクセスします。
  • PlatformIOのプロジェクトを開くか、新しいプロジェクトを作成します。
  • プロジェクトのplatformio.iniファイルを開きます。
  • lib_depsセクションにAccelStepperを追加します。例:lib_deps = AccelStepper 設定を保存して、PlatformIOがライブラリを自動的にダウンロードしてインストールするのを待ちます。

サンプルコード


#include  <Arduino.h>
#include <AccelStepper.h>

#include "openi_iot.h"

// モーター1のピン設定
#define motor1Step GA1
#define motor1Dir GA2

// モーター2のピン設定
#define motor2Step GB1
#define motor2Dir GB2

// AccelStepperオブジェクトの作成
AccelStepper stepper1(AccelStepper::DRIVER, motor1Step, motor1Dir);
// AccelStepper stepper2(AccelStepper::DRIVER, motor2Step, motor2Dir);

void setup() {
  // 最大速度と加速を設定
  stepper1.setMaxSpeed(100);
  stepper1.setAcceleration(50);
  // stepper2.setMaxSpeed(1000);
  // stepper2.setAcceleration(500);
}

void loop() {
  // モーターを特定の位置に移動
  stepper1.moveTo(1000);
  // stepper2.moveTo(500);

  // モーターが目的の位置に到達するまで動かす
  // while (stepper1.distanceToGo() != 0 || stepper2.distanceToGo() != 0) {
  while (stepper1.distanceToGo() != 0) {
    stepper1.run();
    // stepper2.run();
  }

  // 一定時間待機
  delay(1000);

  // モーターを元の位置に戻す
  stepper1.moveTo(0);
  // stepper2.moveTo(0);

  // while (stepper1.distanceToGo() != 0 || stepper2.distanceToGo() != 0) {
  while (stepper1.distanceToGo() != 0) {
    stepper1.run();
    // stepper2.run();
  }

  delay(1000);
}

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。