[아두이노] 아두이노로 아날로그를 흉내 내다


PWM 제어의 마법과 Duty Cycle


1. 디지털은 왜 아날로그를 흉내 내야 할까?

아두이노 같은 디지털 시스템은 본질적으로 매우 단순합니다.

  • OFF → 0V0V
  • ON → 5V5V

즉, 두 가지 상태만 존재하는 세계입니다.

하지만 현실 세계는 연속적입니다.

  • LED 밝기 조절
  • 모터 속도 제어
  • 전압의 미세한 변화

이러한 아날로그 값을 표현하기 위해 등장한 기술이 바로
👉 PWM (Pulse Width Modulation, 펄스 폭 변조) 입니다.


2. PWM의 핵심: 전압이 아니라 “시간”을 쪼갠다

PWM의 핵심 아이디어는 단순합니다.

전압의 크기를 바꾸는 것이 아니라, ON 상태의 시간을 조절한다.


⏱ 아두이노 PWM 주기

아두이노 UNO의 기본 PWM 주파수는 약

f=490 Hzf = 490 \text{ Hz}

즉, 1초 동안 490번 반복된다는 의미입니다.

한 주기의 시간은

T=1f=14902.04 msT = \frac{1}{f} = \frac{1}{490} \approx 2.04 \text{ ms}

👉 1개의 “아주 짧은 시간 조각”이 약 2.04ms 입니다.


3. Duty Cycle: 밝기를 결정하는 핵심 변수

PWM에서 우리가 조절하는 것은 바로 Duty Cycle입니다.

D=TONT×100%D = \frac{T_{ON}}{T} \times 100\%

🔦 의미

  • TONT_{ON}: 전압이 ON 상태인 시간
  • TT: 전체 주기 시간

💡 예시

① Duty 10%

D=10%D = 10\%
  • 대부분 OFF
  • LED: 매우 어두움

② Duty 50%

D=50%D = 50\%
  • ON / OFF가 동일
  • 인간 눈에는 중간 밝기로 인식

👉 평균 전압 개념:

Vavg=DVmaxV_{avg} = D \cdot V_{max}
Vavg=0.5×5V=2.5VV_{avg} = 0.5 \times 5V = 2.5V

③ Duty 90%

D=90%D = 90\%
Vavg=0.9×5V=4.5VV_{avg} = 0.9 \times 5V = 4.5V
  • 거의 최대 밝기

4. 왜 깜빡임이 보이지 않을까?

PWM은 약

490 Hz490 \text{ Hz}

즉, 1초에 490번 깜빡입니다.

인간이 인식 가능한 깜빡임 한계는 대략 50~60Hz 수준이기 때문에

👉 우리는 이를 깜빡임이 아니라 연속된 밝기로 인식합니다.


👁️ 핵심 개념: 잔상 효과

우리 눈은 순간적인 ON/OFF가 아니라

시간 평균 에너지

를 받아들입니다.


5. 엔지니어 관점에서 PWM

PWM을 수학적으로 보면 이렇게 해석할 수 있습니다.

전압은 실제로 두 상태뿐입니다:

V(t)={5V(ON)0V(OFF)V(t) = \begin{cases} 5V & (ON) \\ 0V & (OFF) \end{cases}

하지만 우리가 보는 것은 평균값:

Vavg=1T0TV(t)dtV_{avg} = \frac{1}{T} \int_0^T V(t)\,dt

👉 결국 PWM은 적분 기반 평균 제어 시스템입니다.


6. 아두이노 코드로 보는 PWM

void setup() {
pinMode(9, OUTPUT);
}

void loop() {
analogWrite(9, 64); // 약 25% Duty
delay(1000);

analogWrite(9, 128); // 약 50% Duty
delay(1000);

analogWrite(9, 255); // 100% Duty
delay(1000);
}

🔢 Duty Cycle과 analogWrite 값 관계

아두이노 PWM은 8-bit 기반입니다:

D=value255D = \frac{\text{value}}{255}

예:

  • 64 → 약 25%
  • 128 → 약 50%
  • 255 → 100%

7. 핵심 정리

  • PWM은 전압을 바꾸는 기술이 아니다
  • “켜져 있는 시간 비율”을 조절하는 기술이다

📌 핵심 수식 정리

  • 주기:
T=1fT = \frac{1}{f}
  • Duty Cycle:
D=TONTD = \frac{T_{ON}}{T}
  • 평균 전압:
Vavg=DVmaxV_{avg} = D \cdot V_{max}
  • 연속 해석:
Vavg=1T0TV(t)dtV_{avg} = \frac{1}{T} \int_0^T V(t)\,dt

🔥 한 줄 요약

PWM은 전압을 제어하는 기술이 아니라, 시간을 잘게 나눠 평균 에너지를 만드는 기술이다.

댓글

이 블로그의 인기 게시물

공압 속도 제어: 미터인 vs 미터아웃

NPN, PNP 트랜지스터 차이점

[주식] 한국거래소(KRX) 데이터 API 입문 가이드

[PLC] 서보 모터 브레이크 결선, 왜 릴레이 터미널을 써야 할까?

[PLC] 센서 NPN, PNP 출력 타입별 결선방법 (OMRON E2E-X 시리즈 3선식 배선)

[PLC] PLC 아날로그 입출력 기본

전력(kW) 계산하기 (직류, 교류 단상, 교류 삼상)

사각형의 넓이 공식의 증명

[PLC] 릴레이와 전자 접촉기 (MC)

[아두이노] 가변저항(Potential Divider)과 전압분배(Voltage Divider)