# PWM 신호의 원리

PWM(Pulse Width Modulation, 펄스 폭 변조) 신호는 디지털 신호의 형태로, 신호의 주기 내에서 펄스의 폭(혹은 듀티 사이클)을 조절함으로써 아날로그 값을 표현하는 방법이다. 이는 다양한 전자기기, 특히 모터 제어나 LED 밝기 조절과 같은 애플리케이션에서 많이 사용된다.

#### 기본 개념

PWM 신호는 주기적인 펄스 형태를 띠며, 펄스의 '높음'(on) 상태와 '낮음'(off) 상태의 비율에 따라 평균 전압이 결정된다. PWM 신호의 기본 파라미터는 다음과 같다:

* **주기 (Period, $T$)**: 신호가 반복되는 한 사이클의 시간이다.
* **주파수 (Frequency, $f$)**: 주기의 역수로, 신호가 1초 동안 반복되는 횟수이다. $f = \frac{1}{T}$.
* **듀티 사이클 (Duty Cycle, $D$)**: 펄스가 '높음' 상태를 유지하는 시간의 비율을 백분율로 나타낸 것이다. 듀티 사이클은 다음 식으로 정의된다.

$$
D = \frac{t\_{\text{on}}}{T} \times 100%
$$

여기서 $t\_{\text{on}}$은 펄스가 '높음' 상태를 유지하는 시간이다.

#### 신호 생성

PWM 신호는 주로 타이머나 카운터를 이용하여 생성된다. 마이크로컨트롤러나 디지털 신호 처리기(DSP)는 이러한 타이머를 통해 정밀한 PWM 신호를 생성할 수 있다.

예를 들어, 주기 $T$를 가지는 PWM 신호를 생성하기 위해, 타이머는 $T$만큼의 시간을 카운트하고, 그 시간 동안 듀티 사이클 $D$에 따라 '높음' 상태와 '낮음' 상태를 전환한다.

**PWM 신호의 생성 예제**

```c
void setup() {
  pinMode(9, OUTPUT);  // 핀 9를 출력 모드로 설정
}

void loop() {
  analogWrite(9, 128); // 듀티 사이클을 50%로 설정 (0~255)
}
```

위 예제에서는 Arduino를 사용하여 핀 9에 PWM 신호를 출력하는 코드이다. `analogWrite` 함수는 듀티 사이클을 0부터 255까지 설정할 수 있으며, 128은 50% 듀티 사이클을 의미한다.

#### 듀티 사이클과 출력 전압의 관계

PWM 신호의 듀티 사이클 $D$는 출력 전압 $V\_{\text{out}}$와 직접적인 관계가 있다. 이를 다음 식으로 표현할 수 있다:

$$
V\_{\text{out}} = D \times V\_{\text{in}}
$$

여기서 $V\_{\text{in}}$은 입력 전압이다. 예를 들어, 입력 전압이 5V일 때 듀티 사이클이 50%라면 출력 전압은 2.5V가 된다.

#### 듀티 사이클 조절

듀티 사이클을 조절함으로써 다양한 아날로그 값을 생성할 수 있다. 예를 들어, 모터의 속도를 조절하거나 LED의 밝기를 조절하는 데 사용된다.

**모터 속도 제어**

모터의 속도는 입력 전압에 비례한다. 따라서 PWM 신호의 듀티 사이클을 조절하여 모터에 전달되는 평균 전압을 변화시킴으로써 모터의 속도를 제어할 수 있다.

```c
void loop() {
  analogWrite(9, 192); // 듀티 사이클을 75%로 설정
}
```

위 코드에서 듀티 사이클을 75%로 설정하면, 모터는 최대 속도의 75%로 회전하게 된다.

#### 주파수의 중요성

PWM 신호의 주파수는 신호의 용도에 따라 적절히 선택해야 한다. 예를 들어, 모터 제어의 경우 주파수가 너무 낮으면 모터가 진동하거나 소음이 발생할 수 있다. 반면에 LED 밝기 조절의 경우 인간의 눈에 깜박임이 인식되지 않도록 충분히 높은 주파수를 사용해야 한다.

#### 주파수 선택의 고려 사항

1. **모터 제어**: 주파수가 너무 낮으면 모터가 진동하거나 소음을 발생시킬 수 있다. 일반적으로 모터 제어에서는 1kHz에서 20kHz 사이의 주파수가 사용된다. 너무 높은 주파수는 스위칭 손실을 증가시킬 수 있으므로 적절한 주파수를 선택하는 것이 중요하다.
2. **LED 밝기 조절**: 인간의 눈에 깜박임이 인식되지 않도록 충분히 높은 주파수를 사용해야 한다. 일반적으로 100Hz 이상의 주파수를 사용하면 깜박임을 인식하지 못한다. LED 조명 시스템에서는 1kHz 이상의 주파수를 사용하는 경우가 많다.
3. **오디오 신호 처리**: 오디오 애플리케이션에서는 PWM 주파수가 인간의 청각 범위(20Hz에서 20kHz)를 넘어야 한다. 일반적으로 오디오 신호 처리에서는 40kHz 이상의 주파수가 필요하다.

#### PWM의 장점

1. **효율성**: PWM 방식은 매우 효율적이다. 전력 소모가 낮고, 특히 스위칭 소자(예: 트랜지스터)가 완전히 켜지거나 꺼져 있을 때 손실이 최소화된다.
2. **정밀도**: 높은 정밀도로 아날로그 값을 표현할 수 있다. 듀티 사이클을 세밀하게 조절함으로써 정확한 출력 전압을 얻을 수 있다.
3. **응용 범위**: 다양한 응용 분야에서 사용된다. 모터 제어, 조명 제어, 오디오 신호 처리 등 여러 분야에서 유용하게 사용된다.

#### PWM의 단점

1. **스위칭 손실**: 높은 주파수에서 스위칭 손실이 증가할 수 있다. 이는 발열 문제를 야기할 수 있으며, 적절한 방열 대책이 필요하다.
2. **EMI (전자기 간섭)**: 고주파 스위칭은 전자기 간섭을 유발할 수 있다. 이는 주변 전자기기나 신호에 영향을 줄 수 있다.
3. **복잡성**: 정확한 듀티 사이클 조절과 주파수 선택은 복잡할 수 있다. 이를 위해 적절한 타이머 설정과 회로 설계가 필요하다.

***

PWM 신호는 아날로그 값을 디지털 방식으로 표현하는 매우 유용한 방법이다. 듀티 사이클을 조절함으로써 다양한 출력 값을 얻을 수 있으며, 효율적이고 정밀한 제어가 가능한다. 주파수 선택과 듀티 사이클 조절을 통해 다양한 응용 분야에서 활용될 수 있으며, 적절한 설계를 통해 단점을 최소화할 수 있다.
