<* 스테핑 모터(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);
}