아두이노 프로젝트에서 DC모터를 안정적으로 구동하기 위한 드라이버를 만들어 보도록 하겠습니다, 드라이버 제작에는 다이오드, 트랜지스터, 저항등의 부품이 필요합니다.
다이오드
[출처] DC모터(1)|작성자 무당벌레
역기전력이란 트랜지스터에 전류가 흐르고있으면 모터가 회전하고 모터의 코일에 에너지가 쌓이게 되는데, 트랜지스터에 전류가 흐르지않으면 반대로 흐르는 전류가 발생하게 되는데 이때 발생하는 전류를 역기전력이라고 합니다. 이러한 역기전력에 의해 트랜지스터가 파괴되기도 합니다.
크게 PNP형과 NPN형으로 나눌 수 있습니다. 이 포스팅에서 사용한 KTC3198은 NPN형 트랜지스터입니다.
DC모터의 사용 전력은 아두이노의 핀에서 사용되는 전력보다 크기때문에 DC모터를 제어하려면 아두이노 핀에서 나오는 전력을 증폭시켜 사용해야 합니다.
아래 영상을 보시면 이해하는데 도움이 될 것입니다.
회로구성
int motorPin = 9;
void setup() { pinMode(motorPin, OUTPUT); Serial.begin(9600); while (! Serial); Serial.println("Speed 0 to 255");}
void loop() { if (Serial.available()) { int speed = Serial.parseInt(); if (speed >= 0 && speed <= 255) { analogWrite(motorPin, speed); Serial.println(speed); } }
}
모터의 속도를 제어하려면 전류의 양을 조절해주면 됩니다. 아두이노로 전류의 양을 조절해야 하므로 PWM제어가 필요합니다.
위 코드에선 PWM제어를 위해 PWM핀인 9번핀을 사용하였습니다.
위의 드라이버회로를 이용하면 DC모터의 회전속도를 안정적으로 제어 할 수 있지만 DC모터의 회전 방향을 바꾸려면 DC모터 리드선에 +, - 극을 바꾸어주어야 한다는 불편한 점이 있습니다. 그러한 불편함을 해소하기 위해 H-bridge를 사용 할 것인데요.
H-bridge를 사용한 모터제어는 다음 포스팅에서 알아보겠습니다.
7,895
0
확인