[흥프로] 아두이노 A4988 드라이버 제어하기



아두이노 A4988 
드라이버 제어하기




안녕하세요~!!

구독자 여러뷴~

디바이스마트 엔지니어 흥프로 입니다~~!!~!

오늘의 포스팅은 !!!

아두이노로 A4988 모터 드라이버를 제어하기 입니다.

A4988 모터 드라이버는 

A4988 IC를 이용해 만든 드라이버 입니다.

아래는 간단하게 저희가 판매중인 Allegro 사의 A4988 입니다.

[Allegro MicroSystems, LLC] 

A4988SETTR-T


MOTOR TYPE - STEPPERBipolar
MOTOR TYPE - AC, DC-
FUNCTIONDriver - Fully Integrated, Control and Power Stage
OUTPUT CONFIGURATIONHalf Bridge (4)
INTERFACELogic
TECHNOLOGYDMOS
STEP RESOLUTION1, 1/2, 1/4, 1/8, 1/16
APPLICATIONSGeneral Purpose
CURRENT - OUTPUT2A
VOLTAGE - SUPPLY3 V ~ 5.5 V
VOLTAGE - LOAD8 V ~ 35 V
OPERATING TEMPERATURE-20°C ~ 150°C (TJ)
MOUNTING TYPESurface Mount
PACKAGE / CASE28-VFQFN Exposed Pad
SUPPLIER DEVICE PACKAGE28-QFN (5x5)


이런 식으로 되어 있어요

생각보다 높은 전압 8V~35V 까지 로드 해주네용

최대 전류는 2A까지 

분해능은 1, 1/2, 1/4, 1/8, 1/16

이 쪼금한 친구가 성능이 괜찮네요!!

이 정도면 3D프린트 만들때 충분히 사용하겠군요!!!



1,000원 ~ 12,000원까지

디바이스마트에 등록 된 것만 9종이네요. ㄷㄷㄷ;;;

이렇게 쉽게 설계해서 사용 할 수 있다는 거죠!!

이번에 제가 사용할 제품은 
디바이스마트,기계/제어/로봇/모터 > 모터드라이버 > 스테핑모터 드라이버,SZH,A4988 스텝모터 드라이버 모듈 GREEN (방열판 포함),A4988 Stepper Motor Driver / 방열판 포함 / Voltage: 3V - 5.5V / Size: 21mm x 11mm
 A4988 스텝모터 드라이버 모듈 GREEN (방열판 포함)
http://www.devicemart.co.kr/goods/view?no=10912921

+


NEMA17 스텝모터(추가옵션) / 바이폴라 (Bipolar)


을 사용 합니다.!!!

<회로도>
간단 합니다. 스테핑 모터의 핀맵만 잘 맞춰주세요.!



MS1 / MS2 / MS3 는 분해능을 결정하는 겁니다.
저는 풀스텝으로 돌릴꺼에요

MS1
MS2
MS3
Resolution
LOW
LOW
LOW
FULL STEP
HIGH
LOW
LOW
1/2 STEP
LOW
HIGH
LOW
1/4 STEP
HIGH
HIGH
LOW
1/8 STEP
HIGH
HIGH
HIGH
1/16 STEP









A4988 드라이버는 전류 리밋을 사용할 수 있습니다.



가변저항을 돌리면 최대 전류를 조절 할 수 있습니다.

Current Limit = Vref(V) * 2


쉽게!!!
위에 가변저항 가운데와 GND를 멀티미터로
전압을 찍으면 전압이 나옵니다.
그 전압에 2배하시면 전류 입니다.

전압 분배 법칙을 사용해서...
여러분이 알아서 ㅎ
아 머리 아퍼 ! 도망갑니다. ~~



제가 사용하는 모터가 

1 STEP 당 1.8 도 회전이기 때문에

1바퀴(360도)를 회전시 200 STEP 이 필요합니다.

 아래는 소스 코드 입니다

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
//핀 설정 
const int Step = 3; //모터 PWM 핀 
const int Dir = 2; // 모터 방향 핀 

//속도 
const int Speed = 800; // 회전 속도 조절

void setup() 
{
  // 핀 설정 

  pinMode(Step, OUTPUT); 
  pinMode(Dir, OUTPUT);
  Serial.begin(9600);
   
}


void loop() 
{
  int i;
  
  //High 상태는 반시계방향 이동
  digitalWrite(Dir,HIGH);
  Serial.println("right");
  
   //i = 200step 1바퀴 
  for(i = 0; i < 200; i++)
  {
    
    digitalWrite(Step,HIGH);
    delayMicroseconds(Speed);
    digitalWrite(Step,LOW);
    delayMicroseconds(Speed);
    
  }
  //1초 대기 
  delay(1000);

  //Low 상태는 시계방향 이동
  digitalWrite(Dir,LOW);
  Serial.println("left");
    for(i = 0; i < 200; i++)
  {
    digitalWrite(Step,HIGH);
    delayMicroseconds(Speed);
    digitalWrite(Step,LOW);
    delayMicroseconds(Speed);
      
  }
  //1초 대기 
  delay(1000);
}


구동 하는 모습입니다.!!
아스탭을 2000으로해서 10바퀴 도는겁니다.
LED는 방향을 확인하기 위해 사용하였습니다. 






자 오늘 포스팅은 여기까지 하겠습니다.

여러분이 직접 해보시고 경험해보세요!

항상 여러분의 도전을 응원합니다.

수고 하셨습니다

감사합니다!


이상 엔지니어 흥프로 였습니다.!




댓글 쓰기

0 댓글