본문으로 바로가기



직류 모터(DC Motor)


위 모터 : 일반적인 DC 모터

아래 모터 : RC카나 로봇등에서 많이 사용하는 모터(일반 모터에 케이스를 씌워놓은 형태)

모터는 교류모터(AC Motor)와 직류모터(DC Motor)가 있다. 교류모터는 가정용 전원에 주로 사용된다. 직류 모터는 +극과 -극으로 이루어진 모터로 외부의 고정된 부분에 영구자석을 배치하고 내부 회전체에 코일을 감아 구성한다. 회전체에 흐르는 전류의 방향을 전환함으로써 발생하는 자기장과 자석 자기장의 상호 반발력을 이용하여 회전력을 얻게 된다. 직류 모터는 또한 소음과 전력 소비가 낮고 속도제어가 세밀하게 가능하다. AC모터보다 수명이 짧고 힘이 약하기 때문에 단시간 사용에 적합하다.


모터드라이브(L298N 사용)



모터드라이브는 여러가지 종류가 있으며 우리가 실습에 사용할 모터 드라이브는 L298N을 사용할 것이다.

모터 드라이브를 사용하는 이유는 DC 모터는 핀이 2개 밖에 없으므로 S/W적으로 제어가 불가능하다. 그러므로 정역 제어(방향을 반대로 돌리는)를 하기 위해서 모터 드라이버를 사용한다. 우리가 사용할 L298N 모듈은 2개의 DC모터를 제어할 수 있으며 1개의 스텝모터까지 제어할 수 있다. 또한 PWM단자에 연결하면 아날로그 데이터를 이용하여 속도를 조절할 수 있다.

L298.pdf

데이터시트는 위 파일을 참고하면 된다.


실습 내용


l298n 모터 드라이버를 사용하여 모터를 앞뒤로 회전시켜 본다. (시리얼 모니터를 통하여 '1'을 입력하면 앞으로 '2'를 입력하면 뒤로, 이외의 값은 모터를 멈춘다.)


준비물


아두이노 보드, 브레드 보드, DC 모터 1개, L298N 모듈 1개, 암수 점퍼선 2개, 수수 점퍼선 4개, 모터가 약하게 회전할 경우에(9V 건전지도 준비)


회로도




소스 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int in1 = 7;  //in1 7번 포트로 제어 (OUT1)
int in2 = 5;  //in2 5번 포트로 제어 (OUT2)
 
void setup() {
  pinMode(in1, OUTPUT); 
  pinMode(in2, OUTPUT); //각 포트 출력으로 사용
  Serial.begin(9600);  //시리얼모니터 사용
}
 
void loop() {
  if(Serial.available())  //시리얼모니터에서 데이터가 들어오면
  {
    char in_data;         // 입력된 데이터 저장을 위한 변수
    in_data = Serial.read();  //입력된 데이터 in_data에 저장
    if(in_data == '1')    //입력된 데이터가 '1'이라면
    {
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);   //앞으로 회전
    }
    else if(in_data == '2'//입력된 데이터가 '2'라면
    {
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);  //뒤로 회전 (어떤 방향으로 꽂았느냐에 따라서 방향 반대)
    }
    else  // 그 이외의 값에서는
    {
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);  //회전 정지
    }
  }
}
cs

ex11_motor.ino


동작 영상




댓글을 달아 주세요

  1. joojoo 2017.07.19 17:35 신고

    항상 강의 정말 감사드립니다^^ 저기 제가 스텝모터를 3개를 제어하는 것을 동시에 구현하고 싶은데 혹시 알려주실수 있을까요? 아무리 해도 안되네요ㅠ

  2. 2017.07.29 09:32

    비밀댓글입니다

  3. 초보자 2018.01.04 20:01 신고

    여기서 혹시 속도 제어 해서 천천히 돌리게 할 수 있을까요??

  4. 2018.07.06 02:02

    비밀댓글입니다

  5. Help me 2018.07.09 15:40 신고

    안녕하십니까 저는 대학생이구요 졸업과제 때문에 연락을 드립니다.
    저희가 지금 자이로센서로 핸드카트를 만들고 있는데 속도를 제어할수 있는지(걷는속도로 만들고 싶습니다.), 아두이노를 이용할 수 있는지에 대해 물어보고 싶습니다. 이쪽으로 아는게 없고 조금 물어보고 도움을 받고 싶어 연락을 드립니다. 만약 도움을 주신다면 저희가 업체비용을 드릴 수 있으니 연락주시면 감사하겠습니다.

  6. 시니 2018.07.16 06:33 신고

    l298n 이라는 모터 드라이브로 12볼트 모터도 돌릴수 잇나요? 그리고 형 물펌프도 알려주세요. 스마트 농장 만들때 사용할수 있게요!! 이왕이면 펌프 실제 사용할수 있는 220v? 에서 사용할수 있는걸루면 더 좋겠어요!!!

  7. BlogIcon 호빠 2018.09.02 18:11 신고

    잘보고 갑니다 ^^

  8. saro 2018.12.05 23:27 신고

    아두이노 우노 대신 나노를 써도 상관이없나요?

티스토리 툴바