Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Удаленная работа
Помощь проекту


Калькулятор RC-антидребезга кнопки



RC-антидребезг

Постоянная времени и задержка RC-цепочки для подавления дребезга контактов кнопки. Нужно, чтобы задержка перекрывала дребезг (обычно 5–20 мс), но не была слишком большой.

%

Как работает RC-подавление дребезга контактов

Механический контакт кнопки или тумблера при замыкании не срабатывает чисто: упругие пластины несколько раз отскакивают друг от друга, и линия успевает пройти через ноль и единицу десятки раз за первые миллисекунды. Для входа микроконтроллера это выглядит как серия быстрых нажатий — один щелчок засчитывается как три-пять событий. Явление называют дребезгом (bounce), и бороться с ним можно программно или аппаратно. Аппаратный способ — RC-фильтр: резистор ограничивает ток заряда конденсатора, поэтому напряжение на входе логики нарастает не скачком, а по плавной экспоненте. Пока контакт «звенит», короткие импульсы не успевают дозарядить конденсатор до порога, и логический уровень остаётся стабильным. Это тот же RC-фильтр нижних частот, только настроенный на подавление быстрых переходов, а не гармоник сигнала.

τ = R · C    задержка до порога t = −τ · ln(1 − Vпор/Vпит)
для порога 50%: t ≈ 0,69·τ    полный заряд ≈ 5·τ

Постоянная времени τ = R·C задаёт масштаб всего процесса: за одну τ конденсатор заряжается до 63,2 % питания, за 5τ — практически полностью. Момент, когда вход логики «увидит» единицу, зависит от порога переключения Vпор/Vпит и вычисляется через натуральный логарифм. Именно эту задержку и считает калькулятор — она и есть время, на которое RC-цепочка «глушит» дребезг. Формула та же, что в базовом расчёте постоянной времени RC, здесь она лишь применена к конкретной задаче фронта кнопки.

Сколько длится дребезг и какую задержку выбирать

Длительность дребезга — свойство самого контакта, а не схемы. У миниатюрных тактовых кнопок она обычно 1–5 мс, у крупных тумблеров и микропереключателей — 5–20 мс, у изношенных или дешёвых контактов доходит до 30–50 мс. Отпускание нередко дребезжит дольше нажатия. Практическое правило: задержка RC-цепочки должна быть заметно больше самого долгого «звона», но оставаться незаметной для человека. Диапазон 5–20 мс перекрывает большинство кнопок и не воспринимается как «тормоз»: глаз не видит задержки короче ~30 мс. Слишком малое τ не отфильтрует звон, слишком большое (сотни мс) сделает кнопку «вялой» и съест быстрые повторные нажатия. Виджет подсвечивает оба края: он предупредит, если расчётная задержка меньше 5 мс или больше 50 мс.

Как подобрать R и C

Нужную задержку дают многие пары R и C — важно их произведение. Резистор берут в диапазоне 4,7–100 кОм: слишком малый бессмысленно нагружает источник и линию, слишком большой делает вход чувствительным к наводкам и току утечки. Ёмкость выбирают из ряда 0,1–1 мкФ; удобны керамические конденсаторы, для крупных ёмкостей — плёночные (маркировку удобно расшифровать в калькуляторе кода конденсатора). Типовое сочетание «10 кОм + 100 нФ» даёт τ = 1 мс и коротковатую защиту, а «10 кОм + 1 мкФ» — τ = 10 мс, надёжный вариант для большинства кнопок. Ниже — готовые пары и задержка до порога 50 %.

RCτ = R·CЗадержка (порог 50 %)
10 кОм100 нФ1 мс0,69 мс
10 кОм470 нФ4,7 мс3,3 мс
10 кОм1 мкФ10 мс6,9 мс
47 кОм470 нФ22,1 мс15,3 мс
100 кОм1 мкФ100 мс69 мс

Порог 50 % — усреднённая точка для КМОП-входа; у реальной логики он плавает (у ТТЛ ниже, у КМОП около половины питания), поэтому фактическая задержка отличается от табличной на десятки процентов. Меняя поле «Порог логики» в калькуляторе, легко увидеть, как сдвигается момент срабатывания: чем выше порог, тем позже вход считает единицу и тем длиннее защита. Обратите внимание, что при отпускании кнопки конденсатор разряжается через тот же резистор с той же постоянной времени, поэтому задержка симметрична для фронта и спада — обе кромки сглажены одинаково.

Типичные ошибки и тонкости

Первая ошибка — считать, что RC-цепочка сама даёт чистый цифровой уровень. Она лишь замедляет фронт; в зоне порога медленно ползущее напряжение легко перескакивает туда-сюда от наводок, и без гистерезиса вход всё равно ловит ложные срабатывания. Поэтому RC почти всегда работает в паре с триггером Шмитта или с программным подтверждением уровня. Вторая ошибка — ставить конденсатор прямо на контакт кнопки без токоограничивающего резистора: в момент замыкания заряженный конденсатор разряжается через контакты броском тока, что искрит и выжигает металл площадок. Резистор в цепи заряда обязателен. Третья тонкость — ток утечки и входной ток пина: при очень больших R (сотни кОм и выше) они смещают установившийся уровень и время срабатывания, поэтому резистор держат в разумных пределах. Наконец, номиналы из рядов E12/E24 дают дискретный набор τ — точное «круглое» значение задержки получить не всегда возможно, да и не нужно: разброс дребежга всё равно шире.

Где применяют — и где не годится

RC-антидребезг ставят на входы кнопок, концевых выключателей, энкодеров и любых механических контактов, идущих на пин микроконтроллера или логическую микросхему. Часто RC совмещают с подтягивающим резистором — тогда «верхнее плечо» цепи выполняет и подтяжку, и ограничение тока (похожий расчёт — в калькуляторе pull-up для I2C). После RC желательно поставить логический элемент с гистерезисом — триггер Шмитта: плавный экспоненциальный фронт в зоне порога сам по себе может дать несколько переключений от шума, а гистерезис превращает его в один чистый перепад. Способ хорош простотой и нулём кода, но занимает место на плате и добавляет фиксированную задержку. Если вывод один и место дорого, дребезг гасят программно — по таймеру-счётчику МК: читают вход и подтверждают уровень, только если он держится стабильно N миллисекунд. Для генерации импульсов и таймингов, не связанных с кнопкой, RC работает в других ролях — например, в обвязке таймера NE555.

Пример

Возьмём значения по умолчанию: R = 10 кОм, C = 1 мкФ, порог 50 %. Постоянная времени τ = R·C = 10000 Ом · 0,000001 Ф = 0,01 с = 10 мс. Задержка до порога 50 %: t = −τ · ln(1 − 0,5) = −0,01 · ln(0,5) = 0,01 · 0,6931 = 0,006931 с = 6,93 мс — как раз перекрывает типичный дребезг тактовой кнопки в 1–5 мс, но не ощущается на нажатии. Полный заряд конденсатора наступает за 5τ = 50 мс. Если контакт «звенит» дольше, увеличьте ёмкость до 2,2–4,7 мкФ или резистор до 22–47 кОм — задержка вырастет пропорционально произведению R·C.

См. также: RC постоянная времени · RC-фильтр НЧ/ВЧ · триггер Шмитта · таймер NE555 · все калькуляторы


Частые вопросы

Как рассчитать RC-антидребезг?

Постоянная времени τ = R·C, задержка до логического порога t = −τ·ln(1 − Vпор/Vпит); для порога 50% это ≈ 0,69·τ. Например, R = 10 кОм и C = 1 мкФ дают τ = 10 мс и задержку ≈ 6,9 мс — как раз перекрывает дребезг.

Какая задержка антидребезга нужна?

Механические контакты дребезжат обычно 1–20 мс, поэтому задержку берут 5–20 мс: она должна перекрывать дребезг, но не делать кнопку «вялой». После RC часто ставят триггер Шмитта для чёткого фронта.


Похожие калькуляторы — Embedded / интерфейсы
Pull-up I2C  ·  RS-485 линия  ·  ADC ↔ напряжение  ·  ШИМ (скважность)  ·  Таймер/прескейлер МК  ·  ШИМ-ЦАП фильтр  ·  все калькуляторы →


© 2003—2026 «KAZUS.RUN - Электронный портал»