一、Принцип работы RC-фильтрации дребезга контактов и правила выбора параметров
Суть аппаратного устранения дребезга кнопок заключается в использовании инерционности заряда и разряда RC-цепи, сглаживая скачки напряжения при замыкании и размыкании кнопки, фильтруя механический дребезг. Обычно применяется схема с подтягивающим резистором R и параллельным конденсатором C, подключёнными к контактам кнопки. Ключевой параметр — это постоянная времени RC:
- \tau: постоянная времени RC, измеряется в секундах (с), обозначает время, за которое напряжение на конденсаторе достигает 63,2% от установившегося значения;
- С инженерной точки зрения, цепь считается стабильной (достигшей более чем 99% установившегося значения и полностью подавившей дребезг), когда проходит время \boldsymbol{5\tau};
- Механический дребезг обычных кнопок длится 5–20 мс. Чтобы гарантированно устранить дребезг, необходимо выполнение условия \boldsymbol{5\tau \ge 20 мс}, то есть \boldsymbol{\tau \ge 4 мс}.
二、Рекомендуемое значение ёмкости конденсатора при подтягивающем резисторе 10 кОм
Известно, что подтягивающий резистор R = 10\,\mathrm{кОм} = 10 \times 10^3\,\Omega, а требуемое значение постоянной времени \tau \ge 4\,\mathrm{мс} = 4 \times 10^{-3}\,\mathrm{с}. Рассчитаем минимальную ёмкость:
С учётом стандартных номиналов электронных компонентов, рекомендуемые значения ёмкости при подтягивающем резисторе 10 кОм приведены в таблице:
| Номинал конденсатора | Постоянная времени RC \tau | Время полной фильтрации 5\tau | Применимость |
|---|---|---|---|
| 220 нФ | 2,2 мс | 11 мс | Слабая фильтрация, подходит только для высококачественных кнопок с минимальным дребезгом |
| 470 нФ | 4,7 мс | 23,5 мс | Подходит для подавления дребезга большинства кнопок, наиболее распространённое решение на практике |
| 1 мкФ | 10 мс | 50 мс | Надёжная фильтрация, но увеличивает задержку реакции кнопки; подходит для случаев, где скорость отклика не критична |
Вывод: при использовании подтягивающего резистора 10 кОм предпочтительно выбирать конденсатор ёмкостью 470 нФ, так как он обеспечивает оптимальный баланс между эффективностью фильтрации и быстродействием кнопки.
三、Расчёт времени заряда и разряда для комбинации 10 кОм + 470 нФ
Выполним точный расчёт по формуле:
- Постоянная времени RC
- Время полного заряда/разряда, обеспечивающее надёжное подавление дребезга
Для достижения более чем 99% установившегося значения требуется время 5\tau:
Это время значительно превышает максимальную длительность дребезга обычной кнопки (20 мс), поэтому оно полностью устраняет механический дребезг и при этом не вызывает заметной задержки нажатия кнопки.
四、Дополнительные рекомендации по практическому применению
- Предпочтительно использовать керамические или плёночные конденсаторы — они обладают хорошей стабильностью и низкой стоимостью. Не рекомендуется применять электролитические конденсаторы (они полярные и плохо работают на высоких частотах);
- Если микроконтроллер имеет встроенный подтягивающий резистор на выводе GPIO, внешний резистор 10 кОм можно исключить, подключив только конденсатор параллельно кнопке;
- Аппаратный RC-фильтр представляет собой пассивный фильтр, который не может полностью устранить экстремальный дребезг. В системах, где требуется высокая надёжность, рекомендуется дополнительно применять программную фильтрацию (например, после чтения состояния вывода делать задержку 10–20 мс и повторно проверять уровень сигнала), реализуя таким образом двойную фильтрацию.
