재료

  • USB 케이블 1개
  • 다이오드 1개
  • 점프 와이어 1개
  • 브래드 보드 1개
  • 트랜지스터 1개
  • 아두이노 우노 1개
  • 저항 1개
  • DC 모터 1개

 앞선 프로젝트에서는 서보 모터에 대해서 다뤄보았습니다. 서보 모터는 0도에서 180도까지 제어가 가능하다는 것을 기억하실텐데요, 오늘 프로젝트에서 다뤄볼 DC 모터는 서보 모터와는 다르게 0도에서 360도까지 제어가 가능합니다. 서보 모터와 마찬가지로 DC 모터도 일상 생활의 다양한 장치들에서 찾아볼 수 있는데요, 그 예로 DVD 플레이어, 무선 조종 자동차와 자동차 창문 등이 있습니다. 이런 DC 모터를 오늘 다뤄보도록 합시다.



STEP1.  준비물

아두이노 보드, USB 케이블, 브래드 보드, 다이오드, 저항, 트랜지스터, DC 모터, 점프 와이어 4개



STEP2. 회로도

위의 회로도에서 각각의 역할에 대해서 설명해드리겠습니다. 우선 트랜지스터는 DC 모터를 돌리기에는 부족한 아두이노의 전류를 증폭시켜주는 역할을 하고, 저항은 트랜지스터에 가해지는 전류를 줄여서 트랜지스터를 보호해주는 역할을 합니다. 또한, 다이오드는 모터에서 발전하는 역전류를 막아서 트랜지스터와 아두이노 보드를 보호하는 역할을 해줍니다.


STEP3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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);
    }
  }
 


STEP4. 결과 확인

 코드를 위와 같이 작성해주신 뒤에 업로드해주시면 됩니다. 그런 후에 시리얼 모니터를 열어서 0에서부터 255까지의 숫자를 입력해주시면 모터가 움직이기 시작합니다. 저 0부터 255까지의 숫자는 펄스변조폭(PWM)을 의미하는데, 숫자가 커질수록 모터가 빨라집니다. 

댓글 0

MADE BY

김민정

사물인터넷, 아두이노