티스토리 뷰

 

 

드라이버 모드 특징 비고
Step/Dir 모드 (모드 1) STEP 핀을 통해 한 스텝씩 이동, DIR 핀으로 방향 결정 가장 일반적인 모드, 간단한 제어
Phase/Enable 모드 (모드 2) 2개의 입력을 사용하여 직접 모터의 코일을 제어 외부 마이크로컨트롤러 없이 간단한 하드웨어 제어 가능
Indexer 모드 (모드 3) 내장 인덱서를 사용하여 자동으로 스텝 신호 생성 MCU의 부하를 줄이고 일정한 속도로 회전 가능
PWM 속도 제어 모드 PWM 입력을 사용하여 속도를 조절 부드러운 속도 조절 및 전력 소비 최적화

 

[핀 연결 방법 : 모드 2]

* (스위치 등을 이용한) 단순/연속 제어 가능

DRV8825 아두이노 비고
PHASE 8 방향 제어 (HIGH: 정방향, LOW: 역방향)
ENABLE 9 모터 활성화 (LOW: 동작, HIGH: 비활성)
VMOT 외부 전원 (12~24V) 모터 전원 공급
GND GND 공통 접지
A1, A2, B1, B2 스텝 모터 연결 코일 연결
M0, M1, M2 HIGH/LOW 설정 마이크로스텝 모드 설정

[예제 코드 : 모드 3]

* 모드 1과 동일한 연결

* 'STEP'핀을 GPIO에 연결하고 PWM 출력

#define STEP_PIN 9   // STEP 핀
#define DIR_PIN 8    // DIR 핀

void setup() {
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);

  digitalWrite(DIR_PIN, HIGH); // 시계 방향 회전
}

void loop() {
  analogWrite(STEP_PIN, 128); // 50% 듀티 사이클의 PWM 신호 입력
  delay(5000); // 5초 동안 회전
  
  digitalWrite(DIR_PIN, LOW); // 방향 변경
  delay(5000);
}

 

[예제 코드 : 모드 4]

* 모드 1과 연결방식 동일함.

* 'STEP' 핀에 PWM 출력

#define STEP_PIN 9   // STEP 핀 (PWM 출력)
#define DIR_PIN 8    // DIR 핀

void setup() {
  pinMode(STEP_PIN, OUTPUT);
  pinMode(DIR_PIN, OUTPUT);
  
  digitalWrite(DIR_PIN, HIGH); // 시계 방향 회전
}

void loop() {
  for (int speed = 50; speed <= 255; speed += 5) { // 점진적으로 속도 증가
    analogWrite(STEP_PIN, speed); 
    delay(500);
  }
  
  delay(2000); // 2초 정지
  
  digitalWrite(DIR_PIN, LOW); // 방향 변경
  
  for (int speed = 255; speed >= 50; speed -= 5) { // 점진적으로 속도 감소
    analogWrite(STEP_PIN, speed);
    delay(500);
  }
  
  delay(2000); // 2초 정지
}

 

반응형

'HWDesk > HardwareControl' 카테고리의 다른 글

스테핑 모터 제어 방법 비교  (0) 2025.04.26
AM2302 온습도 센서 제어 코드  (2) 2025.04.19
스텝 모터(NEMA 17) 제어 예제  (0) 2025.04.12
스텝 모터 제어 예제  (1) 2025.04.06
OLED 디스플레이 예제  (1) 2025.04.05
반응형
250x250
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함