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