본문 바로가기

개발자/Arduino

아두이노 메가 2560에서 스텝모터 회전 실습




스텝모터 회전 - 연결도 그렇고, 이상 작동으로 고생하다 제대로 연결하고 해봤더니 잘되었다. 분당 회전수도 15로 낮추고 정방향 역방향 회전 변환시 딜레이도 약간 길게 주었더니 잘 된다.  


소스코드 하고 실습 사진 첨부한다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <Stepper.h>                         // Stepper.h 라이브러리 불러오기 (기본 라이브러리)
Stepper step1(204814161517);       // 모터드라이버 8, 9, 10, 11번에 연결
int lap = 2048;                                   // 2048당 한바퀴(360도) 회전
 
void setup() {
  step1.setSpeed(15);                         // 회전속도 (분당 18회 회전)
}
 
void loop() {
  step1.step(lap);                               // 오른쪽으로 한바퀴 회전
  delay(1000);                                     // 0.5초 대기
  step1.step(-lap);                             // 왼쪽으로 한바퀴 회전
  delay(1000);                                    // 0.5초 대기
}
cs


아래는 스텝모터를 2개 사용할 경우 소스코드를 나타낸다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 스텝모터 2개 사용시
 
#include <Stepper.h>                         // Stepper.h 라이브러리 불러오기 (기본 라이브러리)
 
Stepper step1(2048810911);       // 모터드라이버1을 8, 9, 10, 11번에 연결
Stepper step2(20483465);       // 모터드라이버2를 3, 4, 5, 6번에 연결
 
int lap = 2048;                                   // 2048당 한바퀴(360도) 회전
 
void setup() {
  step1.setSpeed(18);                         // 스텝모터1 회전속도 (분당 18회 회전)
  step2.setSpeed(18);                         // 스텝모터2 회전속도 (분당 18회 회전)
}
 
void loop() {
  step1.step(lap);                               // 스텝모터1 오른쪽으로 한바퀴 회전
  step2.step(lap);                               // 스텝모터2 오른쪽으로 한바퀴 회전
  delay(500);                                     // 0.5초 대기
  step1.step(-lap);                             // 스텝모터1 왼쪽으로 한바퀴 회전
  step2.step(-lap);                             // 스텝모터2 왼쪽으로 한바퀴 회전 
  delay(500);                                    // 0.5초 대기
 
}
cs