【 아두이노 기초 】 #32 스텝(Step Motor)모터 정회전 역회전
지난시간 스텝모터에 대한 이해를 위한 설명을 간단한 예제와 함께 자세히 설명을 하였으니, 먼저 참고하면 좋을 것이다.( ☞ 스텝모터의 이해 ) 이어서 스텝모터를 가지고 본격적으로 동작실험을 진행해 보도록 하겠다.
▶ 실험에 사용되는 스텝 모터 자료 ( 모터 뱅크, NK243-01AT )
▶ 스텝모터 구동 원리
▶ 실습 목표 :
스텝모터를 정확히 360도 정회전 후 90도로 역회전 시켜보자. 이 동작을 계속 반복(loop 문으로 자동 반복 되도록) 한다. ( L293 모터 제어용 IC를 이용)
▶ 실습 회로도면 :
(이미지 클릭하면 확대 가능)
L293D 모터드라이버 IC의 연결을 위해 아래 이미지를 참고 하라.
▶ 부대품 목록 : 아두이노 보드, 브레드 보드
▶ 부품 목록 : 스텝 모터(NK243-01AT, 모터뱅크, 1.8˚) , 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);
void setup() {
pinMode(in1Pin, OUTPUT); // [A] 상을 출력으로 지정한다
pinMode(in2Pin, OUTPUT); // [B] 상을 출력으로 지정한다
pinMode(in3Pin, OUTPUT); // [/A] 상을 출력으로 지정한다
pinMode(in4Pin, OUTPUT); // [/B] 상을 출력으로 지정한다
motor.setSpeed(30); // 스텝모터의 스피드 설정 함수 (RPM)
}
void loop() {
// 정회전 구간
int steps = 200; // 스텝 수 지정(200X1.8도=360도)
motor.step(steps); // 지정된 스텝만큼 모터를 구동한다
delay(1000);
// 역회전 구간
int steps = 50; // 스텝 수 지정(50X1.8도=90도)
motor.step(-steps); // 스텝수 앞에 '-' 기호를 붙이면 역회전 동작
delay(1000);
}
▶ 실행 영상 :
▶ 아두이노 소스 코드 다운로드 :
'아두이노 > 1. 아두이노기초' 카테고리의 다른 글
【 아두이노 기초 】 #34 스텝(Step Motor)모터 제어3 (VR 속도제어) (0) | 2018.11.23 |
---|---|
【 아두이노 기초 】 #33 스텝(Step Motor)모터 제어2 (시리얼통신제어) (0) | 2018.11.21 |
【 아두이노 기초 】 #31 스텝(Step Motor)모터의 이해 (9) | 2018.11.14 |
【 아두이노 기초 】 #30 서보(Servo) 모터 제어 하기 응용 (0) | 2018.11.12 |
【 아두이노 기초 】 #29 서보(Servo) 모터 제어 하기 2 (0) | 2018.11.07 |