안녕하세요 디바이스마트 대짜이찐입니다.
이번 시간에는 L9110S 모터 드라이버 모듈을 사용해서
스테퍼 모터를 제어해 보겠습니다.
(스텝모터, 스테핑모터 스테퍼모터 다 같은말입니다.)
L9110S 모터 드라이버 모듈은 2.5~12V까지 전원을 입력 받을 수 있고,
각 모터 채널 마다 800mA의 출력을 낼 수 있습니다.
아래는 L9110S 모터 드라이버 모듈의 핀맵입니다.
L9110S 모터 드라이버 모듈도 L298N 모터 드라이버 모듈 처럼
1개의 스테퍼모터를 구동하거나, 2개의 DC모터를 구동할 수 있습니다.
A-IA핀과 A-IB핀의 신호를 아날로그 출력으로 사용하여
0~255의 범위로 PWM 제어를 할 수 있습니다.
0~255의 범위로 PWM 제어를 할 수 있습니다.
아래는 DC모터를 구동할 때의 신호 표입니다.
제가 사용할 스텝 모터 사양입니다.
2상 바이 폴라 스테퍼 모터이기 때문에 선이 4선이고,
이 4선의 A, /A, B, /B을 아래 그림과 같이 순서대로
모터 드라이버와 연결해 줍니다.
스테퍼 모터마다 핀맵이 다르기 때문에 꼭 확인해 보셔야 합니다.


2상 여자 방식 스테퍼 모터이기 때문에
A+B->B+/A->/A+/B->/B+A 순서로 동작합니다.

아래 예제는 스위치를 누르면 반대방향으로, 누르지 않으면 정방향으로
동작하는 스텝모터 제어 예제입니다.

준비물: 아두이노 우노, L9110S 모터 드라이버 모듈, 스위치 모듈, 스텝 모터
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
/*
L9110S Motor Driver + Stepper Motor Test
http://www.devicemart.co.kr/
*/
// 모터 드라이버 신호선 연결
int IN1=2; // 아두이노 D2에 A-IA연결 A
int IN2=3; // 아두이노 D3에 A-IB연결 /A
int IN3=4; // 아두이노 D4에 B-IA연결 B
int IN4=5; // 아두이노 D5에 B-IB연결 /B
int sw=7; // 스위치 아두이노 D7에 연결
int delay_time=2; // 스테퍼모터 속도 딜레이
void setup()
{
// 신호 핀들 입출력 설정
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(sw,INPUT);
}
void loop()
{
int sw_val=digitalRead(sw); // 스위치 On/off 신호를 읽음
/* 스위치가 off이면 정방향으로 동작
스위치가 on이면 역방향으로 동작 */
if(sw_val==0) forward(); // forward 함수 호출
if(sw_val==1) reverse(); // reverse 함수 호출
}
int forward() // 정방향 동작 함수
{
// 스텝1
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(delay_time);
// 스텝2
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(delay_time);
// 스텝3
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(delay_time);
// 스텝4
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(delay_time);
}
int reverse() // 역방향 동작 함수
{
// 스텝1
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(delay_time);
// 스텝2
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(delay_time);
// 스텝3
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
delay(delay_time);
// 스텝4
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
delay(delay_time);
}
|
부품은 아래 링크에서 구매하실 수 있습니다.
아두이노 우노
http://www.devicemart.co.kr/goods/catalog?code=000500010002
L9110S 모터 드라이버 모듈
http://www.devicemart.co.kr/goods/view?no=1324245
http://www.devicemart.co.kr/goods/view?no=1385145
스위치 모듈
http://www.devicemart.co.kr/goods/catalog?code=000400080002
스테퍼 모터
http://www.devicemart.co.kr/goods/catalog?code=001500010004
감사합니다.



0 댓글