티스토리 뷰

 

본 게시물은 정밀 회전 제어가 가능한 스텝 모터를 제어하는 방법에 대해 다룬다.

[준비물]

  • 아두이노
  • 아두이노 IDE
  • 스텝 모터(28BYJ-48 등)
  • 스텝 모터 드라이버(ULN2003 등)
  • 케이블 등


스텝 모터 예제


스텝 모터 드라이버 예제

 

[하드웨어 연결]

아두이노 ULM2003 비고
8 IN1  
9 IN2  
10 IN3  
11 IN4  
5V VCC 전원
GND GND 전원

 

[예제 코드]

#include <Stepper.h>

#define STEPS_PER_REV 2048

Stepper StepMotor(STEPS_PER_REV, 8, 10, 9, 11);
int StepNumber = 0;
int StepMovement = 10;

void setup() {
  Serial.begin(115200);
  StepMotor.setSpeed(10); // Speed of motor, [RPM]
}

void loop() {
  Serial.println("Clock-wise direction");
  while(true){
    StepNumber += StepMovement;// 10, 20, ..., 2040
    if(StepNumber>STEPS_PER_REV) break;
    StepMotor.step(StepNumber);
    delay(200);
  }
  delay(1000);
  StepNumber = 0;

  Serial.println("Countclock-wise direction");
  while(true){
    StepNumber -= StepMovement; // -10, -20, ... -2040
    if(StepNumber<(-1*STEPS_PER_REV)) break;
    StepMotor.step(StepNumber);
    delay(200);
  }
  delay(1000);
  StepNumber = 0;
}

반응형