-
아두이노 | 바이폴라 스텝모터 드라이버 A4988 모듈Technology/Arduino 2024. 11. 8. 12:37
1. 바이폴라 스텝모터와 유니폴라 스텝모터
스텝모터는 전자석에 감겨 있는 전류선의 배선 방식에 따라 바이폴라(bipolar) 스텝모터와 유니폴라(unipolar) 스텝모터로 구분된다. 바이폴라 스텝모터는 모터로부터 네 가닥의 전류선이 나오는 반면에, 유니폴라 스텝모터는 다섯 가닥 혹은 여섯 가닥의 전류선이 모터로부터 나오는 것으로 스텝모터의 종류를 구분할 수 있다. 앞서 다루었던 스텝모터 28BYJ-48에는 전류선 다섯 가닥이 있으므로 유니폴라 스텝모터에 해당한다. 두 종류의 스텝모터가 같은 크기를 가지고 있다면, 바이폴라 스텝모터가 더 큰 토크를 내며, 유니폴라 스텝모터가 더 빠른 최대 회전 속력을 보인다.
2. 바이폴라 스텝모터 드라이버 A4988 모듈
바이폴라 스텝모터 드라이버 A4988 모듈은 바이폴라 스텝모터 1개를 양방향으로 제어할 수 있다. 바이폴라 스텝모터 전자석 단자에 스텝모터 전류선을 연결하고 회전 방향 제어 단자와 단계 제어 단자에 디지털 신호를 입력하면 스텝모터가 동작한다. 외부 전원은 DC 35V까지, 출력 전류는 2A까지 지원하고 있어 대부분의 NEMA 17급 바이폴라 스텝모터를 제어할 수 있으며, 스텝모터로 공급되는 전류를 제한하는 기능도 있어 스텝모터와 회로를 보호할 수 있다. 바이폴라 스텝모터 드라이버 A4988 모듈은 아래 링크로 접속하면 구매할 수 있다.
3. 확인사항
3.1. 바이폴라 스텝모터 전류선 구분
스텝모터를 제어하기 위해서는 각 전류선 혹은 단자가 어느 전자석에 연결되어 있는지 알아야 한다. 제조사가 제공하는 정보나 데이터시트를 참고하면 각 단자가 어떤 전자석과 연결되어 있는지 확인할 수 있다. 이번 예제에서는 NEMA 17급 바이폴라 스텝모터를 다루고자 하며, 아래 링크로 접속하면 구매할 수 있다.
해당 스텝모터의 최소 회전 각도는 한 단계당 1.8도(=360도÷200단계)이며, 별도의 기어는 없다. 해당 스텝모터의 제조사는 모터에 연결되어 있는 전류선을 전선의 색상으로 구분하며, 제조사가 제공하는 정보에 따르면 전류선 구분은 그림의 오른쪽 하단과 같다. 만약 본인이 가지고 있는 바이폴라 스텝모터의 전류선 구분이 없다면 임의의 두 단자를 전선으로 연결한 뒤 스텝모터의 구동축을 손으로 잡아 돌려보자. 두 단자가 하나의 전자석에서 나오는 단자라면 두 단자가 연결되어 있는 상태에서 구동축을 손으로 잡아 돌렸을 때 비교적 돌리기 힘든 느낌이 날 것이다.
3.2. 바이폴라 스텝모터 허용 전류 확인
제조사에서 제공하는 A4988의 데이터시트에 의하면, A4988의 최대 허용 공급 전압과 최대 허용 전류는 아래 표와 같다. A4988 모듈과 같이 전류 제한 기능이 있는 스텝모터 드라이버를 사용한다면 일반적으로 DC 12V나 DC 24V를 스텝모터의 외부 전원으로 사용할 것이므로 최대 허용 공급 전압은 고려할 필요가 없을 것이다. 하지만 사용하고자 하는 바이폴라 스텝모터의 전류가 2A보다 크다면 A4988 모듈보다 더 큰 전류를 공급할 수 있는 바이폴라 스텝모터 드라이버를 찾아야 한다. 반대로 스텝모터 드라이버로 A4988 모듈을 사용하고자 한다면, 2A보다 작은 전류에서 동작하는 바이폴라 스텝모터를 찾아야 한다. 이번 예제에서 사용하고자 하는 바이폴라 스텝모터는 동작에 1A가 필요하므로 A4988 모듈로 제어하기에 적절하다.
모델명 A4988 최대 허용 공급전압 35 V 최대 허용 전류 2 A 3.3. 바이폴라 스텝모터 드라이버 A4988 전류 한도 조정
앞서 언급한 바와 같이, 바이폴라 스텝모터 드라이버 A4988 모듈은 스텝모터로 공급되는 전류가 일정 이상으로 넘어가지 않도록 제한하는 기능이 있다. 이번 예제에서 다루는 바이폴라 스텝모터는 전류 1A에서 동작하므로 스텝모터에 1A 이상의 전류가 공급되지 않도록 제한할 필요가 있다. 위 그림과 같이 회로를 구성하고 아두이노에 전원을 공급한 뒤, 스텝모터에 전류가 얼마나 흐르고 있는지 스텝모터와 직렬로 연결된 전류계로 확인하자. 만약 전류계 수치가 1A가 아니라면 모듈에 있는 전류 제한 저항을 십자 드라이버로 돌려 저항값을 조절하자. 회로를 구성하기 위해 필요한 추가 부품은 아래 링크로 접속하면 구매할 수 있다.
4. 주의사항
바이폴라 스텝모터에 전원이 공급되는 동안에는 스텝모터와 바이폴라 스텝모터 드라이버 A4988 모듈이 매우 뜨거울 수 있으니 손으로 만지지 않도록 주의하자. 특히 A4988은 방열을 제대로 하지 않으면 제 기능을 하지 못하므로 반드시 A4988 칩 위에 방열판을 부착하여 방열이 원활하게 일어나도록 하자.
5. 예제
5.1. 회로 구성
5.2. 프로그램 작성
int dirPin = 2; // 정수형 변수 선언 후 디지털 핀 번호 2번으로 초기화 int stepPin = 3; int steps_per_rev = 200; // 스텝모터 회전 단계 수 정의 void setup() { pinMode(dirPin, OUTPUT); // 디지털 2번 핀을 출력(OUTPUT) 모드로 설정 pinMode(stepPin, OUTPUT); } void loop() { digitalWrite(dirPin, HIGH); // 스텝모터의 회전방향을 설정 // 스텝모터를 200단계만큼 동작 for(int i = 0; i < steps_per_rev; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(2000); digitalWrite(stepPin, LOW); delayMicroseconds(2000); } delay(1000); // 1000 ms 대기 digitalWrite(dirPin, LOW); // 스텝모터의 회전방향을 반대 방향으로 설정 // 스텝모터를 400단계만큼 동작 for(int i = 0; i < (2 * steps_per_rev); i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(1000); digitalWrite(stepPin, LOW); delayMicroseconds(1000); } delay(1000); }
[함께 읽으면 좋은 페이지]
참고문헌
- Allegro MicroSystems. (n.d.). DMOS Microstepping Driver with Translator and Overcurrent Protection A4988. https://www.allegromicro.com/en/products/motor-drivers/brush-dc-motor-drivers/a4988#ArticleResourceTabs. 2024.06.15.
- DroneBot Workshop. (2018). Stepper Motors with Arduino - Controlling Bipolar & Unipolar stepper motors. YouTube. https://www.youtube.com/watch?v=0qwrnUeSpYQ. 2024.06.14.
- How To Mechatronics. (2022). Stepper Motors and Arduino - The Ultimate Guide. YouTube. https://www.youtube.com/watch?v=7spK_BkMJys. 2024.06.14.반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 라이브러리 | 스텝모터 가속 제어 (3) 2024.11.13 아두이노 | 바이폴라 스텝모터 드라이버 A4988 모듈 마이크로 스테핑 (4) 2024.11.09 아두이노 라이브러리 | 유니폴라 스텝모터 드라이버 ULN2003 (3) 2024.11.07 아두이노 프로젝트 | 스마트 냉각팬 (0) 2024.07.19 아두이노 | 온도센서 LM35 (0) 2024.07.12