본문 바로가기
Arduino(아두이노) 키트 강좌

Step.18-Arduino Uno 로 직류 DC 모터 구동 시키고, 속도 제어해 보기

by 오마이엔지니어 2015. 6. 2.
반응형

Arduino Uno 로 직류 소형 DC 모터를 구동 시켜보고 시리얼 모니터로 속도를 제어해 보는 프로젝트입니다
DC 모터는 직류(Direct Current)를 전원으로 동작하는 전기모터를 일컫습니다
DC 모터는 다른 구동장치에 비해 작고 구조가 간단해 여러가지 분야에서 광범위 하게 사용되고 있습니다


DC모터는 고정자로 영구자석을 사용하고, 회전자(전기자)로 코일을 사용하여 구성한 것으로
전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발, 흡인력으로 회전력을 생성시키는 모터입니다


DC모터의 구동원리는 정류자를 통하여 위 그림과 같이 전류를 흘리게 되면 플레밍의 법칙에 의해 전기자 코일이 회전하게 됩니다

   

사용된 부품

Arduino Uno R3 (Italy)

브래드 보드

소형 DC 모터 - 1개
다이오드 (1N4148) - 1개
트랜지스터 (P2N2222AG) - 1개
저항 220 (Ohm) - 1개
점퍼케이블

 

사용된 키트

Arduino Starter kit (클릭)
지니어스 키트 Starter Pack (클릭)


구성 배선도 

 



사용된 예제소스

DC Motor.txt

 

int motorPin = 3;


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);

    }

  }

}

DC모터 핀모드 3번 입니다, 시리얼 통신속도 9600 입니다, if (speed >= 0 && speed <= 255) 0~255 까지 모터 속도 조정

주의사항
배선시 트랜지스터의 방향에 주의 하도록 합시다 (트랜지스터는 방향성이 있습니다)
트랜지스터는 DC모터 구동시 보통 아두이노 디지털 출력 핀 보다 큰 전력을 사용하기 때문에 모터로 가는 전력을 제어하는 용도로 사용됩니다
저항은 트랜지스터에 과전류가 흘러 트랜지스터가 손상되는것을 방지하는 역할을 하며
다이오드는 전기가 한 방향으로만 흐르도록 해주는 부품으로 모터 정지시 음극전압이 생기고 이로인한

역전류로 부터 트랜지스터와 모터를 보호 하는 역할을 합니다


예제코드를 보면

Serial.println("Speed 0 to 255");

이 있음을 확인할 수 있습니다

스케치 업로드 후 시리얼 모니터를 실행후 0에서 255까지 원하는 숫자를 입력해서 모터 스피드를 조정할 수 있습니다


 

프로젝트 동영상




위 동영상에서 확인할 수 있듯이 두번째 DC모터는 첫번째 DC모터보다 구동 소비 전류가 조금 높은 사양의 제품이라서

첫번째 DC모터 보다 시리얼 모니터에 높은 숫자(0~255 사이)를 입력해 주어야 구동이 가능한것을 확인 할 수 있습니다
만약 사용할 모터의 최소 구동 소비 전류가 250mA 이상이라면 위와 같은 배선으로 컴퓨터의 USB로 연결하여 아두이노에 전원을 공급하면
USB 전원으로는 아두이노에 전류공급을 할 수 있는 한계가 있기 때문에 모터가 제대로 구동하지 않을 수 있습니다

(이 경우 아답터를 아두이노에 연결하여 전원공급을 하여 문제를 해결 하도록 합시다)

 


DC Motor.txt
0.0MB
반응형

댓글