ESC(Electronic Speed Controls)는 크기나 허용 전류 면에서 모터드라이버 보다 훨씬 효율적으로 모터를 제어한다고 볼수도 있다. 또한 연결 방법 또한 모터드라이버 보다 간단한 경우가 많다.
흔히 취미용 RC카에 들어가는 ESC는 직류모터를 제어하는 2개의 출력선을 가지고 있으며, 드론의 브러시리스 모터를 제어하는 ESC는 3개의 출력선을 가지고있다. 위는 필자가 최근에 구매한 ESC는 전자에 속하며, 가격은 8천원 초반으로 매우 저렴하지만 성능은 기대이상이다. (설명에 적힌 320A는 오타로 추정 32A로 생각된다.) 이정도 가격이면 5만원 가량하는 고용량 모터드라이버 보다 더 나은 선택이라는 생각이 든다.
아두이노로 ESC를 제어하는 방법은 주로 Servo라이브러리를 이용한 PWM 제어를 이용하는 것이다. 우선 아두이노와 ESC를 아래와 같이 연결한다.
ESC는 마땅한 그림이 없어서 필자의 ESC를 사진으로 찍었다. 신호선은 원래 흰색인데 잘보이지 않아 노란색으로 표시했다. 그리고 신호선과 같이 있는 빨간색 건은 절대로 아두이노와 연결해서는 안된다. 전원선이기 때문에 아두이노 또는 ESC를 망가뜨릴 수 있다. 배터리는 본인의 목적에 맞게 적당한 출력의 배터리를 이용하면 된다. (필자의 경우는 11.1V RC용 배터리)
ESC의 전원을 켜면 삑하는 소리가 날 것이다. (ESC의 종류에 따라 다를수도있다.) 이 소리는 ESC에서 나는 것이 아니라 모터의 특정주파수의 신호를 주어서 모터 자체에서 소리를 발생시키는 것이다. 따라서 모터가 연결되지 않았다면 소리는 나지 않는다. 이제 아두이노에 아래의 코드를 업로드한다.
#include <Servo.h>
Servo motor;
void setup() {
motor.attach(5);
motor.write(70); //ESC 대기 신호
delay(2500); //ESC의 준비 시간
}
void loop() {
motor.write(100); //A
}
위의 코드를 업로드 하면 약 2초후에 삐빅 하는소리와 함께 모터가 돌아갈 것이다. ESC의 대기신호는 70이며 70보다 큰수를 A에 입력하면 (15번째 줄, 여기선 100) 모터가 정방향으로 돌아간다. 이때의 속력은 숫자가 커질수록 빨라진다. 또한 70보다 작은 숫자를 입력하면 그 크기에 상관없이 일정한 속력으로 역방향 회전한다. 숫자의 범위는 ESC 마다 다르기 때문에 실험을 통해 알아내야한다.
모터드라이버에 비해 코드가 매우 간단하며, 제어도 매우 편리하다.
'아두이노' 카테고리의 다른 글
휴대용 미세먼지 측정기 자작 #1 (준비) (0) | 2018.07.19 |
---|---|
esp8266에 서보모터를 연결할때 주의점... (0) | 2018.07.16 |
NodeMCU 핀배치 (0) | 2018.07.10 |
Wemos D1 mini 핀배치 (0) | 2018.07.09 |
아두이노 GPS 추적기 만들기 [esp8266/Blynk] (43) | 2018.05.05 |