Arduino

스테핑 모터(Stepping Motor) - 시리얼 통신으로 정/역회전하기

작성자 임베디드코리아 작성일25-05-16 00:15 조회174회 댓글0건

첨부파일

<* 스테핑 모터(Stepping Motor) - 시리얼 통신으로 정/역회전 *>
- 스텝모터를 시리얼 모니터 창을 통해 숫자 '1'을 입력 하면, 360도 한 바퀴 '정회전' 시키고, 숫자 '2'를 입력하면, 360도 한 바퀴 '역회전'한다.

-----< 스테핑 모터(Stepping Motor) - 시리얼 통신으로 정/역회전 소스 코드 > --------------
#include <Stepper.h>

int in1Pin = 12;            // [A] 상을 정의 한다
int in2Pin = 11;            // [B] 상을 정의 한다
int in3Pin = 10;            // [/A] 상을 정의 한다
int in4Pin = 9;            // [/B] 상을 정의 한다
Stepper motor(200, in1Pin, in2Pin, in3Pin, in4Pin);

void setup() {
  pinMode(in1Pin, OUTPUT);  // [A] 상을 출력으로 지정한다
  pinMode(in2Pin, OUTPUT);  // [B] 상을 출력으로 지정한다
  pinMode(in3Pin, OUTPUT);  // [/A] 상을 출력으로 지정한다
  pinMode(in4Pin, OUTPUT);  // [/B] 상을 출력으로 지정한다

  motor.setSpeed(30);      // 스텝모터의 스피드 설정 함수 (RPM)
  Serial.begin(9600);      // 시리얼 통신 가능하도록 설정함
}

void loop() {
  int steps = 200;            // 스텝 수 지정(200X1.8도=360도)

  if (Serial.available()) {
  int direct = Serial.parseInt();    // 시리얼로 받은 정수문자를 정수로 반환

  if (direct ==1) {          // 입력값이 ‘1’ 이면 정회전
    Serial.print("It's Normal Direction!\n\n");
    motor.step(steps);  }  // 지정된 스텝만큼 모터 정회전
  else if (direct ==2)  {    // 입력값이 ‘2’ 이면 역회전
    Serial.print("It's Reverse Direction!\n\n");
    motor.step(-steps);  }  // 지정된 스텝만큼 모터 역회전
  else                          // 그외 입력값은 “ 아래 안내문자 출력 ”
    Serial.print("You only choose '1' or '2'\n\n"); 
  }

}