아두이노 MDD10A 모터드라이버로 고용량 DC모터 제어하기아두이노와 MDD10A 모터드라이버로 고용량 DC모터 제어하기
모터는 전기에너지를 직선 혹은 회전운동으로 만들어주는 전자부품이며, 간단한 예로 선풍기를 생각할 수 있습니다. 선풍기 내부에는 DC전원으로 작동하는 DC모터가 들어있으며, 약, 중, 대와 같은 버튼을 누를 경우 회전 속도가 변경합니다. 이와 같이 모터의 회전속도나 방향 등을 제어하려면 어떻게 해야할까요?
DC모터 & 아두이노 우노 보드 & MDD10A 모터 드라이버
DC모터는 2개의 단자가 있으며, 단자에 +, - 극을 연결하여 전원을 입력할 경우 모터가 작동합니다. DC모터는 극이 없으며, 전원을 반대로 연결할 경우 반대로 회전하는 성질을 갖습니다. 또한 입력되는 전원(전압)의 크기에 따라 회전수와 힘이 조절됩니다. (전원과 회전수 및 힘은 비례함)
아두이노 보드는 프로그램으로 전기신호(PWM)를 제어하기 위한 마이크로컨트롤러 보드입니다. 아두이노 보드에 프로그램을 넣어 전기신호를 제어 함으로써 모터에 입력되는 전원의 크기를 제어할 수 있으며, 모터의 방향 및 속도를 제어하게 됩니다. 모터 드라이버는 아두이노를 보조해주는 역할이라 볼 수 있습니다. 모터는 보통 아두이노와 같은 마이크로컨트롤러가 허용하는 전류보다 전류를 많이 사용하기 때문에 추가적인 회로가 필요하며, 그 역할을 하는것이 바로 모터드라이버입니다.
회로 연결하기
MDD10A 모터 드라이버는 5~30V에 해당되는 DC모터 2개를 제어할 수 있으며, 각 모터당 10A의 연속 전류를 허용합니다. 비교적 저렵한 가격 으로 고용량의 모터를 제어할 수 있습니다. 로직 신호로는 모터의 방향을, PWM 신호로는 모터의 속도를 제어합니다.
아두이노 코드 (Arduino IDE)
DIR핀에 HIGH 혹은 LOW 신호를 입력함으로써 모터의 방향을 제어할 수 있으며, PWM핀에 0~255의 PWM신호를 보냄으로써 모터의 속도를 제어 할 수 있습니다. 즉, 아래와 같은 아두이노 프로그램으로 디지털 신호와 PWM신호를 입력해주면 모터를 제어할 수 있습니다.
void setup() { pinMode(2, OUTPUT); // Motor 1 방향설정 pinMode(8, OUTPUT); // Motor 2 방향설정 } void loop() { digitalWrite(2, HIGH); // Motor 1 방향설정 (HIGH 또는 LOW) analogWrite(3, 100); // Motor 1 속도조절 (0~255) digitalWrite(8, LOW); // Motor 2 방향설정 (HIGH 또는 LOW) analogWrite(9, 200); // Motor 2 방향설정 (0~255) delay(3000); // 3초 지연 digitalWrite(2, LOW); // Motor 1 방향설정 (HIGH 또는 LOW) analogWrite(3, 200); // Motor 1 속도조절 (0~255) digitalWrite(8, HIGH); // Motor 2 방향설정 (HIGH 또는 LOW) analogWrite(9, 100); // Motor 2 방향설정 (0~255) delay(3000); // 3초 지연 }
링크바로가기: https://smartstore.naver.com/mechasolution_com/products/2855891646
|