본문 바로가기
C++

[C++] 아두이노로 스텝모터 사용하기

by teamnova 2024. 5. 2.

안녕하세요.

이번 시간에는 아두이노로 스텝모터를 사용해보겠습니다.

 

아두이노에 대해 기본적인 내용을 알고 싶다면 아래 게시글을 참고해주세요. 

https://stickode.tistory.com/1044

 

[C++] 아두이노로 서보 모터 사용하기

이번 시간에는 아두이노로 서보 모터 사용하는 예제를 진행하겠습니다. 1. 아두이노란? 아두이노(Arduino)는 사용하기 쉬운 하드웨어와 소프트웨어를 기반으로 한 오픈 소스 전자 플랫폼입니다.

stickode.tistory.com

 

 

1. 스텝모터란?

모터의 회전을 잘게 쪼갠 조각(스텝)을 이용해서 스텝단위로 제어하는 모터입니다.

이 예제에서는 한바퀴가 64스텝으로 나누어진  28BYJ-48 스텝모터를 사용하겠습니다.

 

 

2. 준비물

아두이노 우노, 스텝모터, 스텝모터 드라이버

 

 

3. 회로도

 

 

4. 소스 코드

시계방향, 시계반대방향으로 각각 반바퀴씩 회전하도록 만든 코드입니다.

#include <Stepper.h> // Stepper 라이브러리 포함.

// 한 바퀴당 스텝 수를 64로 설정.
const int stepsPerRevolution = 64;

// 스텝 펄스를 생성하기 위한 Stepper 객체 생성.
// 11, 9, 10, 8 은 스텝 펄스를 생성하는 핀 번호.
Stepper myStepper(stepsPerRevolution, 11,9,10,8);

void setup() {
  // 스텝 펄스 속도를 300 으로 설정.
  myStepper.setSpeed(300);
}
void loop() {
  // 시계 반대 방향으로 한바퀴 회전
  for(int i=0; i<32; i++) {  // 64 * 32 = 2048 한바퀴
    myStepper.step(stepsPerRevolution);
  }
  delay(500); // 0.5초 대기

  // 시계 방향으로 한바퀴 회전
  for(int i=0; i<32; i++) {
    myStepper.step(-stepsPerRevolution);
  }
  delay(500); // 0.5초 대기
}

 

 

5. 실행 결과