[아두이노] 28BYJ-48 스텝모터 제어하기



안녕하세요 대짜이찐입니다.
스텝(step)모터는 스테퍼(stepper), 스테핑(stepping) 모터라고도 불립니다.
스텝모터는 펄스신호에 의해 작동하는 모터이며,
입력 펄수 수와 모터의 회전 각도가 완전히 비례합니다.
이 때문에 펄스제어를 통해 모터를 정확하게 제어할 수 있습니다.

Lead Wire Color
CW Direction (1-2 Phase)
1
2
3
4
5
6
7
8
4 Orange
1
1





1
3 Yellow

1
1
1




2 Pink



1
1
1


1 Blue





1
1
1

DC모터, 스텝모터, BLDC모터등을 사용할 때는
모터드라이버를 사용해줘야 합니다.
아두이노와 같은 컨트롤러에서 모터드라이버를 제어하고,
모터드라이버가 모터를 제어합니다.
ULN2003 모터드라이버 모듈입니다.
아두이노에서 모터드라이버로 펄스를 발생시켜주면, 
모터드라이버에서 모터를 동작시켜줍니다.

ULN2003 모터 드라이버의 전원은 5~12V이며,
점퍼옆에 전원에 +,- 에 맞춰서 연결해 주면 됩니다.

전원 옆 점퍼는 연결되어 있으면, 모터드라이버 on이고,
점퍼를 빼면 모터드라이버 off가 됩니다.
준비물 :  아두이노 우노, 28BYJ-48 스텝 모터, UNL2003 스텝모터 드라이버, 점퍼선

아두이노
ULN2003
D8
IN1
D9
IN2
D10
IN3
D11
IN4
5V
VCC(+)
GND
GND(-)

/*
Step motor
스텝 모터와 드라이버는 각각 28BYJ-48과 ULN2003을 사용
www.devicemart.co.kr
*/

#include <Stepper.h> // 스텝 모터 라이브러리 사용

// 모터의 스텝 수 2048=1바퀴, 1024=반바퀴
const int steps = 2048;

// myStepper 객체 생성(스텝 수, IN4, IN3, IN2, IN1)
// IN1~4까지 각각 아두이노 D8~D11번에 연결
Stepper myStepper(steps,11,9,10,8);

void setup() 
{
 // 스텝 모터 속도설정
 // 스텝 수와 연결되어 있음
 myStepper.setSpeed(15); // 15RPM구동

 Serial.begin(9600); // 9600bps로 시리얼 통신 시작
}

void loop() 
{
 Serial.println("시계 반대 방향");
 myStepper.step(steps); // 반 시계 방향으로 스텝 수만큼 이동
 delay(800); // 모터가 이동할 시간만큼 딜레이 설정
 Serial.println("시계 방향");
 myStepper.step(-steps); // 시계 방향으로 스텝 수만큼 이동
 delay(800);
}

위 제품들은 모두 디바이스마트에서 구매하실 수 있습니다.

아두이노-https://www.devicemart.co.kr/goods/view?no=1245596
28BYJ-48 4상 스텝모터-https://www.devicemart.co.kr/goods/view?no=1287091
ULN2003 스텝모터 드라이버-https://www.devicemart.co.kr/goods/view?no=1287090

감사합니다.




댓글 쓰기

0 댓글