반응형
BLDC 모터는 Brushress DC모터의 줄임말로 말 그대로 브러쉬가 없는 모터입니다.
BLDC에 대한 것은 위 링크에 이전에 포스팅을 했었습니다.
오늘은 BLDC모터와 모터 드라이버를 이용하여 속도제어를 하려고 합니다.
테스트에 사용한 모터입니다.
홈페이지에 하네스의 결선도를 제공합니다.
위 BLDC모터에 연결한 모터 드라이버입니다.
결선도인데 오른쪽은 모터에 왼쪽은 컨트롤러와 전원부 입니다.
저는 간단하게 배터리 대신 24V 아답터와 MCU는 아두이노를 사용하였습니다.
구성은 위 사진과 같이 하였고, 가변저항을 사용하여 속도조절, 토글스위치를 사용하여 방향설정을 하였습니다.
dir=digitalRead(dirSW);
if(dir)
digitalWrite(direc,HIGH);
else
digitalWrite(direc,LOW);
위 코드는 방향을 설정하는 코드입니다.
토글스위치에서 입력을 받아와 모터 드라이버의 direction에 값을 넣어줍니다.
굳이 아두이노 말고 모터드라이버에 직접 넣어주셔도 됩니다.
speed=analogRead(A0);
analogWrite(pwm,speed/4);
이 코드는 가변저항에서 아날로그 값을 읽어와 PWM출력을 모터 드라이버에 주는 코드입니다.
한가지 주의할 점은 아두이노는 10bit ADC를 사용하므로 0~1023까지의 값을 가집니다.
하지만 PWM출력인 아날로그 출력은 0~255까지의 값만을 가집니다.
따라서 ADC값을 읽어와 1/4만 출력으로 내보내면 되므로 위의 코드로 구현하시면 아날로그 입력의 비례출력이 됩니다.
위 영상은 구현하여 동작시킨 영상입니다.
방향전환시 끊김이 발생합니다. 이부분은 수정되어야 할 듯 합니다.
반응형
'Study > Arduino' 카테고리의 다른 글
먼지센서(샤프 GP2Y1010AU0F ) (0) | 2019.04.12 |
---|---|
arduino에서 CT로 전류값 읽기 (2) | 2019.03.06 |
4-20mA 센서 Arduino에서 읽기(진동센서) (12) | 2018.09.03 |
한글 LCD XLINK1602 아두이노에서 사용하기 (0) | 2018.07.26 |
Arduino bootloader 올리기 (20) | 2018.07.20 |