Arduino

스테핑 모터(Stepping Motor) L298 드라이버 사용하기

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

첨부파일

<* 스테핑 모터(Stepping Motor) L298 드라이버 사용 *>
◆ 스텝모터는 펄스를 주어 신호에 따라 모터가 회전한다.
    ▶ 한번의 신호(1과0 , 한번 주게 되는 짧은 신호)를 흘리면 모터는  일반적으로1.8도 회전한다.
    ▶ 100번의 신호를 (1과0을) 반복해서 주게 되면 모터는 1.8도가 100번이므로 180도(반바퀴) 회전할 수 있다.
    ▶ 360도를 회전 시키려면 그럼 모터에 신호를 몇 번 주면, 360/1.8 = 200 으로 200번의 신호를 주면된다.

------ < 스텝모터 L293D 드라이버 소스 코드 > -----------------------------
#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);
int steps=0;

void setup() {
  pinMode(in1Pin, OUTPUT);  // [A] 상을 출력으로 지정한다
  pinMode(in2Pin, OUTPUT);  // [B] 상을 출력으로 지정한다
  pinMode(in3Pin, OUTPUT);  // [/A] 상을 출력으로 지정한다
  pinMode(in4Pin, OUTPUT);  // [/B] 상을 출력으로 지정한다
  motor.setSpeed(30);  // 스텝모터의 스피드 설정 함수 (RPM)
}

void loop() {
  /* 정회전 구간 */
  steps = 200;          // 스텝 수 지정(200X1.8도=360도)
  motor.step(steps);        // 지정된 스텝만큼 모터를 구동한다
  delay(1000);

  /* 역회전 구간 */
  steps = 50;          // 스텝 수 지정(50X1.8도=90도)
  motor.step(-steps);      // 스텝수 앞에 '-' 기호를 붙이면 역회전 동작
  delay(1000);
}