自由きままに楽しまないとね

こんなこと知ってますか?という幅広い雑記ブログ

【自動給餌機】EPS32によるモーター制御

餌を投入するためには

餌を投入するためには餌箱を一回転させて投入する方向で実装してみます。


そのためにESP32からモーターによる回転の制御を行います。


使用機材(モーター)

今回はモーターと制御基板がセットになったこちらを使用します。




1個あたり200円ちょいでリーズナブルです!




プログラム

Arduino IDEにて以下のプログラムをボードへ書き込みます。

#include <Stepper.h>

// ピン番号(モーター用)
#define PIN_MOTER_1   (32)
#define PIN_MOTER_2   (33)
#define PIN_MOTER_3   (25)
#define PIN_MOTER_4   (26)

// モーターのステップ数
#define MOTOR_STEPS (2048)

// モーターのスピード
#define MOTOR_SPEED (10)

// ライブラリが想定している配線が異なるので2番、3番を入れ替える
Stepper myStepper(MOTOR_STEPS, PIN_MOTER_1, PIN_MOTER_3, PIN_MOTER_2, PIN_MOTER_4);

void setup() {

  // シリアルの初期化
  Serial.begin(115200);

  //--------------------------
  // モーター関連の設定
  //--------------------------
  // モーターのスピードを設定
  myStepper.setSpeed(MOTOR_SPEED);
  // モータは停止しておく
  stopMotor();

}

void loop() {

  //--------------------------
  // モータの回転
  //--------------------------
  Serial.println("Spin Moter");
  // モーター起動
  startMotor();
  // 1回転
  myStepper.step(MOTOR_STEPS);
  // モーター停止
  stopMotor();

  delay(5000);
}

// モーターへの電流を流す
void startMotor() {
  digitalWrite(PIN_MOTER_1, HIGH);
  digitalWrite(PIN_MOTER_2, HIGH);
  digitalWrite(PIN_MOTER_3, HIGH);
  digitalWrite(PIN_MOTER_4, HIGH);
}

// モーターへの電流を止める
void stopMotor() {
  digitalWrite(PIN_MOTER_1, LOW);
  digitalWrite(PIN_MOTER_2, LOW);
  digitalWrite(PIN_MOTER_3, LOW);
  digitalWrite(PIN_MOTER_4, LOW);
}

動作確認

Youtubeに30秒ほどの動画を上げていますが、ひとまず問題なさそうです。



【esp32】モーター制御




次回

次はWifi制御でSmartConfigを利用していましたが、毎回毎回設定するのは自動化の意味がないのでESP32の内部メモリに保存できるか試してみます。




ご覧いただきありがとうございます♪