[아두이노] 아두이노로 아날로그를 흉내 내다
PWM 제어의 마법과 Duty Cycle
1. 디지털은 왜 아날로그를 흉내 내야 할까?
아두이노 같은 디지털 시스템은 본질적으로 매우 단순합니다.
-
OFF →
-
ON →
즉, 두 가지 상태만 존재하는 세계입니다.
하지만 현실 세계는 연속적입니다.
- LED 밝기 조절
- 모터 속도 제어
- 전압의 미세한 변화
이러한 아날로그 값을 표현하기 위해 등장한 기술이 바로
👉 PWM (Pulse Width Modulation, 펄스 폭 변조) 입니다.
2. PWM의 핵심: 전압이 아니라 “시간”을 쪼갠다
PWM의 핵심 아이디어는 단순합니다.
전압의 크기를 바꾸는 것이 아니라, ON 상태의 시간을 조절한다.
⏱ 아두이노 PWM 주기
아두이노 UNO의 기본 PWM 주파수는 약
즉, 1초 동안 490번 반복된다는 의미입니다.
한 주기의 시간은
👉 1개의 “아주 짧은 시간 조각”이 약 2.04ms 입니다.
3. Duty Cycle: 밝기를 결정하는 핵심 변수
PWM에서 우리가 조절하는 것은 바로 Duty Cycle입니다.
🔦 의미
- : 전압이 ON 상태인 시간
- : 전체 주기 시간
💡 예시
① Duty 10%
- 대부분 OFF
- LED: 매우 어두움
② Duty 50%
- ON / OFF가 동일
- 인간 눈에는 중간 밝기로 인식
👉 평균 전압 개념:
③ Duty 90%
- 거의 최대 밝기
4. 왜 깜빡임이 보이지 않을까?
PWM은 약
즉, 1초에 490번 깜빡입니다.
인간이 인식 가능한 깜빡임 한계는 대략 50~60Hz 수준이기 때문에
👉 우리는 이를 깜빡임이 아니라 연속된 밝기로 인식합니다.
👁️ 핵심 개념: 잔상 효과
우리 눈은 순간적인 ON/OFF가 아니라
시간 평균 에너지
를 받아들입니다.
5. 엔지니어 관점에서 PWM
PWM을 수학적으로 보면 이렇게 해석할 수 있습니다.
전압은 실제로 두 상태뿐입니다:
하지만 우리가 보는 것은 평균값:
👉 결국 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 기반입니다:
예:
- 64 → 약 25%
- 128 → 약 50%
- 255 → 100%
7. 핵심 정리
- PWM은 전압을 바꾸는 기술이 아니다
- “켜져 있는 시간 비율”을 조절하는 기술이다
📌 핵심 수식 정리
- 주기:
- Duty Cycle:
- 평균 전압:
- 연속 해석:
🔥 한 줄 요약
PWM은 전압을 제어하는 기술이 아니라, 시간을 잘게 나눠 평균 에너지를 만드는 기술이다.
댓글
댓글 쓰기