スッテピングモーターを動かしてみた

モーターシールドを使ってステッピングモータを動かしてみた。既存のファイルがあったため、それを使用し、シリアルモニタ上で制御できるようにした。そもそもステッピングモーターは回転速度と回転角度を制御できるものなので今回できたのは、何かしらの文字を入力するとコンパイルした回転速度と角度で動くように設定した。

聞いたところによると、モーターシールドを使わずに制御する方向になったと聞いたのだが、プログラムに慣れるという意味も込めて、今回いじってみた。

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();
// Or, create it with a different I2C address (say for stacking)
// Adafruit_MotorShield AFMS = Adafruit_MotorShield(0x61);

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);


void setup() {
  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Stepper test!");

  AFMS.begin();  // create with the default frequency 1.6KHz
  //AFMS.begin(1000);  // OR with a different frequency, say 1KHz
 
  myMotor->setSpeed(30);// 10 rpm   
}

void loop() {
  int i;
  i = Serial.read();
  if(i != -1){
    switch(i){
      case 'o':
      Serial.println("start!");
      myMotor->step(200, FORWARD, DOUBLE);
      break;
      case 'k':
      Serial.println("stop!");
      myMotor->step(100, BACKWARD, DOUBLE);
      break;
    }
  }
}