【 아두이노 기초 】 #19 DC 모터 제어 하기 2
DC모터를 제어 해보자! DC 모터는 전류가 흐르는 방향으로 회전을 하기 때문에 포트의 출력을 제어하여 모터의 회전 방향을 결정할 수 있다.
이번에는 가변 저항을 연결하여 모터의 속도를 제어 해보도록 하자!
※ 모터를 다룰 때는 주의 할 것은 코일로 이루어진 모터에 전류를 흘릴 경우 반대방향으로 기전력(역기전력)이 발생하게 되는데 이를 방지하기 위해 모터와 병렬로 다이오드를 반드시 달아 주어야 한다. 그래야 주변 회로(TR, FET 등)가 손상되지 않는다.
▶ DC 모터 제어 회로도 :
▶ 부대품 목록 : 아두이노 보드, 브레드 보드
▶ 부품 목록 : DC 모터, 100Ω (전류 제한용도), NPN형 TR, 정류용 다이오드(1N4001~4007, 아무거나) , 100KΩ (10Ω~500KΩ 등, 가지고 있는 가변저항 사용)
▶ 프로그램 (코드& 설명) :
int motorPin =3; // 모터 연결 핀을 정의한다.
void setup() {
pinMode(motorPin, OUTPUT); //모터 연결 핀을 출력으로 지정함
}
void loop() {
int reading=analogRead(A3); // 아날로그포트에서 최대 2^8 (256) // 값을 읽어온다
digitalWrite(motorPin,HIGH); // 읽어 들인 데이터 만큼 HIGH유지
delay(reading);
digitalWrite(motorPin,LOW); //(255-읽어온 데이터)만큼 LOW 유지
delay(255-reading);
}
※ 가변저항으로 인해 분배되어 들어 오는 값, 즉 전압에 의한 레벨값으로 2^8비트 값(최대값이 256 값-0~255) 을 읽어 들이는데 이 값을 가지고 PWM 신호 듀티비를 조절하여 모터의 속도를 조절 하는 방식이다.
( PWM 신호와 같이 듀티비(High와 Low 신호 비율) 로 모터의 회전 속도를 제어하는 것이다.
High 신호가 Low 신호 보다 출력 시간을 길게 하면 상대적으로 모터가 빨리 회전 한다. )
▶ 실행 영상 :
▶ 아두이노 코드 다운로드 :
'아두이노 > 1. 아두이노기초' 카테고리의 다른 글
【 아두이노 기초 】 #22 DC 모터 제어 하기 3 (0) | 2018.09.11 |
---|---|
【 아두이노 기초 】 #20 LCD 쉴드 이용하기 II (keyPAD-키패드) (0) | 2018.09.04 |
【 아두이노 기초 】 #17 문자 LCD 쉴드 이용하기 (0) | 2018.08.28 |
【 아두이노 기초 】 #16 문자 LCD 제어 실습 III (0) | 2018.08.27 |
【 아두이노 기초 】 #15 문자 LCD 제어 실습 II (0) | 2018.08.24 |