이번에는 PVM Shield로 DC Motor/Buzzer를 제어해봤습니다.
DC 모터의 방향은 H-Bridge를 이용해서 제어한다.
극성을 바꿔서 전류 흐름이 바뀔때 바뀐다.
-> 회로 구성시에는 극성을 바꿀 수 없다 !
: Transistor를 이용해서 Motor의 입장에서 브러쉬에 흐르는 전류의 방향을 바꿔준다.
일종의 전기 스위치 역할을 하는 transistor 4개를 이용해서 H-Bridge를 구성한다.
: 극성을 바꿔주지 않아도 TR를 이용해서 전류의 흐름만 바꿔준다.
-> ON되는 스위치에 PWM을 걸어줌
: PWM의 duty를 이용해서 제어한다.
위와 같이 PWM1는 아두이노의 digital port 5번과 PWM2는 아두이노의 digital port 6번과 연결해준다.
int pwm1value = 0; // 초기 pwm의 값
void setup() {
// put your setup code here, to run once:
pinMode(5, OUTPUT);
}
void loop() {
// analogWrite() 함수를 이용해서 PWM을 만든다
analogWrite(5, pwm1value);
delay(500);
pwm1value += 10;
if (pwm1value > 255) {
pwm1value = 0;
}
}
int pwm1value = 0; // 초기 pwm의 값
boolean increasing = true;
void setup() {
// put your setup code here, to run once:
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop() {
// analogWrite() 함수를 이용해서 PWM을 만든다
Serial.println(pwm1value);
analogWrite(5, pwm1value);
delay(500);
if (increasing) {
pwm1value += 10;
} else {
pwm1value -= 10;
}
if (pwm1value > 255) {
increasing = false;
} else if (pwm1value < 0) {
increasing = true;
}
}