[복사하고 따라하는 아두이노] DC모터 속도 제어(feat. PWM )
안녕하세요 공대 박형입니다.
오늘은 아두이노 DC모터를 구동시키고 PWM제어를통해 속도조절을 해보겠습니다.
코드부터 보시죠
const int dc=11;
int speed = 0;
void setup()
{
Serial.begin(9600);
pinMode(dc,OUTPUT);
}
void loop()
{
analogWrite(dc,speed);
Serial.print("speed = ");
Serial.println(speed);
speed = speed +85; // 속도를 0, 85, 170, 255, 0...순으로
if ( speed > 255 ) speed=0; // 속도가 255초과되면 0으로 변환
delay(1000);
}
회로도 및 동작영상입니다.
PWM제어가 가능한 디지털 11번핀을 이용해 아날로그 값을 입력해 DC모터를 구동시켰습니다. pwm은 0~255값을 가질 수 있고 0에 가까울수록 속도가 낮아지고 255에 가까울수록 속도가 빨라집니다.
초기 speed 변수를 0으로 지정하고 1초마다 speed값이 85씩 증가됩니다. speed변수 값이 255를 초과하는 경우에는 speed값을 0으로 만들어 모터를 정지하도록 코드를 작성했습니다. 영상의 모터 그림 밑에 rpm이 변화하는것을 확인할 수 있습니다.
만약 속도 조절이 필요하지 않다면 digitalWrite(dc, HIGH)를 사용하여 디지털 신호로 모터를 제어할 수 있습니다.
다음 시간에는 L293D IC를 사용하여 DC모터를 속도, 방향 제어하는법을 배우도록 하겠습니다.
궁금한 부분은 문의주시면 답해드리겠습니다.
읽어주셔서 감사합니다.