일, RC 디바운싱의 핵심 원리와 값 선정 원칙
버튼의 기계적 디바운싱(진동 제거)은 본질적으로 RC 저항-커패시터 회로의 충전 및 방전 특성을 이용하여 스위치가 닫히거나 열릴 때 발생하는 전압 노이즈를 부드럽게 하고, 기계적 진동을 제거하는 것입니다. 일반적으로 사용되는 회로는 버튼 양단에 풀업 저항 R과 커패시터 C를 병렬로 연결하는 방식이며, 핵심 파라미터는 RC 시간 상수입니다:
\boldsymbol{\tau = R \times C}
- \tau: RC 시간 상수, 단위는 초(s). 커패시터 전압이 최종 안정 상태의 63.2%까지 도달하는 데 걸리는 시간을 의미합니다.
- 공학적으로 회로가 99% 이상의 안정 상태에 도달하고 진동을 완전히 제거하기 위해서는 \boldsymbol{5\tau} 의 시간이 필요하다고 간주됩니다.
- 일반적인 타촉식 버튼의 기계적 진동 지속 시간은 5~20ms 입니다. 신뢰성 있는 디바운싱을 보장하기 위해선 \boldsymbol{5\tau \ge 20ms} 이어야 하며, 즉 \boldsymbol{\tau \ge 4ms} 여야 합니다.
이, 10kΩ 풀업 저항 사용 시 권장 커패시터 값
풀업 저항 R=10\mathrm{k}\Omega=10\times10^3\Omega 이고, \tau\ge4\mathrm{ms}=4\times10^{-3}\mathrm{s} 조건을 고려하면, 최소 커패시터 용량은 다음과 같습니다:
C_{\text{min}} = \frac{\tau}{R} = \frac{4\times10^{-3}}{10\times10^3} = \boldsymbol{400\mathrm{nF}}
전자 부품의 표준 정격값을 고려할 때, 10kΩ 풀업 저항과 함께 사용할 수 있는 커패시터 추천 사양은 아래 표와 같습니다:
| 커패시터 정격값 | 대응 RC 시간 상수 \tau | 5\tau (완전한 디바운싱 시간) | 적용성 |
|---|---|---|---|
| 220nF | 2.2ms | 11ms | 필터링 효과가 약함. 매우 우수한 고품질 버튼에서만 사용 가능 |
| 470nF | 4.7ms | 23.5ms | 대부분의 버튼 디바운싱 요구를 충족하며, 공학적 설계에서 일반적으로 사용됨 |
| 1μF | 10ms | 50ms | 디바운싱 효과는 강하지만, 버튼 반응 속도가 느려짐. 반응 속도에 민감하지 않은 상황에 적합 |
결론: 10kΩ 풀업 저항을 사용할 경우, 디바운싱 성능과 버튼 응답 속도의 균형을 고려해 470nF 커패시터를 우선 선택하는 것이 좋습니다.
삼, 10kΩ 저항 + 470nF 커패시터의 충전/방전 시간 계산
공식에 값을 대입하여 정확하게 계산하면:
- RC 시간 상수
\tau = R \times C = 10\times10^3\,\Omega \times 470\times10^{-9}\,\mathrm{F} = \boldsymbol{0.0047\,\mathrm{s} = 4.7\,\mathrm{ms}}
- 완전한 충전/방전 및 신뢰성 있는 디바운싱 시간
회로가 99% 이상의 안정 상태에 도달하려면 5\tau 가 필요합니다:
5\tau = 5 \times 4.7\,\mathrm{ms} = \boldsymbol{23.5\,\mathrm{ms}}
이 시간은 일반적인 버튼의 최대 진동 시간인 20ms보다 훨씬 길어, 기계적 진동을 완전히 제거할 수 있으며, 동시에 눈에 띄는 버튼 지연을 유발하지 않습니다.
사, 실제 적용 시 추가 설명
- 커패시터는 멀티레어 세라믹 커패시터(MLCC) 또는 세라믹 커패시터를 우선 사용하는 것이 좋습니다. 안정성이 높고 비용이 낮으며, 전해 커패시터는 극성이 있고 고주파 특성이 나쁘므로 피해야 합니다.
- 마이크로컨트롤러의 IO 핀 내부에 풀업 저항이 내장되어 있다면, 외부의 10kΩ 풀업 저항은 생략 가능하며, 버튼 양단에 직접 커패시터를 병렬로 연결하면 됩니다.
- RC 하드웨어 디바운싱은 무원자 소자 기반의 필터링으로, 극단적인 진동까지 완전히 제거할 수 없습니다. 고신뢰성 시스템에서는 소프트웨어 딜레이 디바운싱(IO 상태를 읽은 후 10~20ms 지연 후 다시 읽기)과 함께 사용하여 이중 디바운싱을 구현하는 것이 바람직합니다.
