Расчет значений компонентов схемы RC-фильтра для устранения дребезга кнопок и времени заряда-разряда

一、Принцип работы RC-фильтрации дребезга контактов и правила выбора параметров

Суть аппаратного устранения дребезга кнопок заключается в использовании инерционности заряда и разряда RC-цепи, сглаживая скачки напряжения при замыкании и размыкании кнопки, фильтруя механический дребезг. Обычно применяется схема с подтягивающим резистором R и параллельным конденсатором C, подключёнными к контактам кнопки. Ключевой параметр — это постоянная времени RC:

\boldsymbol{\tau = R \times C}
  • \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{с}. Рассчитаем минимальную ёмкость:

C_{\text{min}} = \frac{\tau}{R} = \frac{4 \times 10^{-3}}{10 \times 10^3} = \boldsymbol{400\,\mathrm{нФ}}

С учётом стандартных номиналов электронных компонентов, рекомендуемые значения ёмкости при подтягивающем резисторе 10 кОм приведены в таблице:

Номинал конденсатора Постоянная времени RC \tau Время полной фильтрации 5\tau Применимость
220 нФ 2,2 мс 11 мс Слабая фильтрация, подходит только для высококачественных кнопок с минимальным дребезгом
470 нФ 4,7 мс 23,5 мс Подходит для подавления дребезга большинства кнопок, наиболее распространённое решение на практике
1 мкФ 10 мс 50 мс Надёжная фильтрация, но увеличивает задержку реакции кнопки; подходит для случаев, где скорость отклика не критична

Вывод: при использовании подтягивающего резистора 10 кОм предпочтительно выбирать конденсатор ёмкостью 470 нФ, так как он обеспечивает оптимальный баланс между эффективностью фильтрации и быстродействием кнопки.

三、Расчёт времени заряда и разряда для комбинации 10 кОм + 470 нФ

Выполним точный расчёт по формуле:

  1. Постоянная времени RC
\tau = R \times C = 10 \times 10^3\,\Omega \times 470 \times 10^{-9}\,\mathrm{F} = \boldsymbol{0{,}0047\,\mathrm{с} = 4{,}7\,\mathrm{мс}}
  1. Время полного заряда/разряда, обеспечивающее надёжное подавление дребезга

Для достижения более чем 99% установившегося значения требуется время 5\tau:

5\tau = 5 \times 4{,}7\,\mathrm{мс} = \boldsymbol{23{,}5\,\mathrm{мс}}

Это время значительно превышает максимальную длительность дребезга обычной кнопки (20 мс), поэтому оно полностью устраняет механический дребезг и при этом не вызывает заметной задержки нажатия кнопки.

四、Дополнительные рекомендации по практическому применению

  1. Предпочтительно использовать керамические или плёночные конденсаторы — они обладают хорошей стабильностью и низкой стоимостью. Не рекомендуется применять электролитические конденсаторы (они полярные и плохо работают на высоких частотах);
  2. Если микроконтроллер имеет встроенный подтягивающий резистор на выводе GPIO, внешний резистор 10 кОм можно исключить, подключив только конденсатор параллельно кнопке;
  3. Аппаратный RC-фильтр представляет собой пассивный фильтр, который не может полностью устранить экстремальный дребезг. В системах, где требуется высокая надёжность, рекомендуется дополнительно применять программную фильтрацию (например, после чтения состояния вывода делать задержку 10–20 мс и повторно проверять уровень сигнала), реализуя таким образом двойную фильтрацию.
1 лайк

Также можно использовать программное обеспечение для устранения дребезга, кнопочный конечный автомат может реализовать функции устранения дребезга, короткого нажатия, длительного нажатия, двойного щелчка и другие.

1 лайк