Как_избавиться_от_дребезга_контактов

Как_избавиться_от_дребезга_контактов

В этой статье мы рассмотрим такое распространенное и вредное явление как дребезг контактов. Ознакомимся с основными причинами возникновения дребезга. Изучим основные методы аппаратного и программного устранения данного явления.

Что такое дребезг контактов?

В конструкциях всех электромеханических устройств, предназначенных для замыкания-размыкания цепей, существует одна или несколько контактных пар. С их помощью происходит коммутация соответствующих электрических компонентов. Существенным недостатком электромеханических контактов являются произвольные неконтролируемые многократные повторы коммутации, вследствие упругости элементов контактной системы. Это явление получило название – дребезг контактов, а борьбу с ним ведут практически с того момента когда появились первые элементы автоматизированных систем.

Давайте разберёмся, какие физические факторы вызывают дребезжание и почему при этом возникают негативные последствия.

Причины возникновения

При взаимодействии упругих тел возникает деформация. Сила упругости возвращает первоначальную форму деформированного предмета, в результате чего он получает некий импульс движения. Иллюстрацией может служить металлический шарик, падающий на стальную плиту. Сила упругости возвращает его в положение, близкое к изначальному, откуда шарик снова падает на плиту и процесс повторяется. Происходит колебательное движение с затухающей амплитудой.

Аналогичные колебания происходят при соприкосновении твердых контактов, с той лишь разницей, что вместо силы тяжести на них действует упругость пружины или пластины. Амплитуда колебаний подвижных контактов, естественно, очень незначительная, но её вполне достаточно для провоцирования серии процессов кратковременного размыкания цепи. Результатом колебаний являются импульсы, в промежутке после нажатия и следующие сразу за отпусканием кнопки.

Разницу между идеальной и реальной формой импульсов видно на рис. 1.

Рисунок 1. Сравнение идеального импульса с реальным

Как видно из рисунка идеальным является сигнал с одним прямоугольным импульсом. На практике всё выглядит иначе. Дребезг изменяет осциллограмму сигнала. Определённые коррективы вносит искрение. Форма импульсов на рисунке сильно приукрашена. В реальной ситуации осциллограмма выглядит более потрёпанной.

Частота и количество касаний контактов зависит:

  • от свойств компонентов коммутирующего узла;
  • уровня напряжения на обмотках реле;
  • от упругости пружины и некоторых других факторов.

Дребезг наблюдается и во время размыкания контактов. Обычно при механическом размыкании контакты меньше дребезжат.

На рисунке 2 наглядно изображена осциллограмма напряжения в результате коммутации электрического тока вследствие нажатия на кнопку.

Рисунок 2. Осциллограмма коммутационного тока

На осциллограмме видно серии импульсов, характеризующих процесс дребезга.

Вредное влияние дребезга

Чтобы понять негативные последствия от дребезга, рассмотрим процессы, возникающие при коммутации слабых и мощных электрических цепей. Как только расстояние между контактами оказывается достаточным для зажигания электрической дуги, между ними возникает разряд, который разрушает соприкасающиеся поверхности. Искрение, возникающее при механическом контакте, обычно имеет небольшую разрушающую силу. Но электрическая дуга большой мощности вызывает повышенный износ.

Слабое искрение также приводит к явлению износа контактов, хотя оно не такое разрушительное как при зажигании мощной дуги. В ряде случаев таким износом можно пренебречь. Например, для бытовых выключателей освещения проблемой дребезга никто не занимается, так как он почти не влияет на работу осветительных приборов. Во всяком случае, потребители не замечают последствий такого явления.

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

Цифровая электроника воспринимает их за чередование сигналов, состоящих из нулей и единиц. Устройствами считываются ложные коды, вызванные дребезгом при нажатиях кнопки, что приводит к сбоям в работе. Поэтому устранения дребезга является важнейшей задачей, которую приходится решать многим конструкторам и схемотехникам.

Способы устранения и подавления дребезга

Без конструктивного изменения контактной системы устранить либо подавить дребезг принципиально невозможно. Примером таких конструктивных изменения можно наблюдать в узлах галетных переключателей или в кнопках типа П2К. В упомянутых конструкциях дребезг практически отсутствует. Нет его и у механического переключателя ползункового типа.

Аппаратный способ

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

Для снижения уровня коммутационного износа в различных реле и силовых выключателях применяют искрогасящие цепочки:

  • шунтирующие RC-цепи;
  • варисторы, препятствующие скачкообразному изменению напряжения;
  • обратные диоды, подавляющие напряжения самоиндукции;
  • стабилитроны;
  • комбинированные схемы (варистор +RC-цепь).

Эти цепочки помогают устранить дребезг путём выравнивания скачкообразных характеристик тока. Их подключают параллельно нагрузке либо к контактам реле. Существуют также схемы, в которых искрогасящие цепи подключаются одновременно и к нагрузке и к реле.

Схемы цепей изображены на рис. 3.

Рисунок 3. Схемы искрогасящих цепей

У каждого способа есть свои преимущества и недостатки. В зависимости от того какого результата необходимо достигнуть, применяют ту или иную схему.

Управление приборами чувствительными к дребезгу осуществляется через ФНЧ (например, через RC-цепочку). Обладая электрической емкостью, конденсатор забирает часть энергии в момент касания контактов. После разрыва цепи вследствие дребезга накопленная энергия возвращается. Таким образом, происходит сглаживание амплитуды колебаний.

Читайте также:  Чем_отстирать_восковой_мелок

Установки триггеров

Ещё один способ борьбы с дребезгом состоит в использовании специальных электронных схем, включающих rs-триггеры.

Роль триггеров заключается в преобразовании входного аналогового сигнала в цифровой и инверсии (переворачивания) логических уровней. Наглядно инверсию объясняет схема на рисунке 4.

Рис. 4. Наглядная схема инверсии сигнала

Устройство учитывает только части сигналов, превосходящие заданные пороговые значения, выдавая логические нули и единицы на выходе. Каждый раз восходящий или нисходящий сигнал переключает триггер, когда он проходит верхнее или нижнее пороговое значение. Проще говоря, провалы напряжения компенсируются инвертированными импульсами триггеров.

Простая схема с триггером показана на рисунке 5.

Рис. 5. Наглядная схема подключения rs-триггеров

Промежутки между пороговыми значениями называются гистерезисом. Форма таких импульсов используется для шумоподавления во время переключения логических сигналов. Сигнал от контакта поступает на схему, имеющую передаточную статическую характеристику в виде петли гистерезиса (триггер Шмидта). Только после этого сигнал с выходов триггера подаётся на вход цифрового устройства для тактирования.

Использование герконов

Выше упоминалось, что наличие ртути на контактах подавляет дребезг. Но общеизвестно, что пары этого жидкого металла очень ядовиты. Использовать их в открытых конструкциях, например в тактовых кнопках, небезопасно. Но контакты можно поместить в герметическую колбу, что позволяет применять ртуть. Такие конструкции называются герконами.

Управление контактами герконов осуществляется внешним магнитным полем. Для этого можно использовать постоянные магниты или электромагнитную индукцию. Устройства могут использоваться в маломощных цепях. Они имеют длительный срок службы, так как контакты в них не изнашиваются.

Программный метод

Для устранения дребезгов в различных вычислительных машинах используют программную обработку сигналов. При этом для тактирования берётся сигнал не непосредственно от контакта, а связанная с ним однобитная булевая переменная, сформированная специальной программой:

  • путём временной задержки сигнала, на период вероятного дребезга контактов;
  • методом многократного считывания состояния контактов, на заданном временном интервале. Программа считает цепь замкнутой, если на этом промежутке времени наступает период устойчивого замыкания контакта;
  • используя алгоритм подсчёта, при котором учитывается количество совпадающих значений сигналов замкнутости в определённый промежуток времени (в пределах от 10 до 100 мкс). Если программой будет замечено заданное число совпадений состояния замкнутости, она посчитает контакт устойчиво замкнутым и пропустит сигнал.

Сигнал, полученный программным способом, довольно надёжный и устойчивый. К недостаткам такой схемы подавления дребезга можно отнести разве что небольшую задержку сигнала, которая не превышает 0,1 с. Этот промежуток времени настолько мал, что им можно пренебречь во многих случаях. Обычно палец человека задерживается на клавише до момента отпускания кнопки свыше 0,2 с.

Программированные устройства получают сигналы управления с кнопок и передают идеальные импульсы на устройства-потребители, работающие на цифровых микросхемах. В результате отсечения программой сигналов дребезга, на входы микросхемы поступают только качественные импульсы. Это обеспечивает стабильную работу цифровых устройств, противостоит ложному срабатыванию логических дешифраторов, независимо от уровня сигнала и его качества.

Программируемое устройство для устранения дребезга

Заключение

Подытоживая выше сказанное, приходим к выводу: несмотря на несовершенство современных переключателей, мы можем эффективно подавлять дребезг контактов. В зависимости от решаемых задач, существует достаточно способов устранения дребезга. Самые простые из них – аппаратные, с применением низкочастотных фильтров. Очень распространёнными и практичными оказались схемы подавления дребезга с использованием триггеров.

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

среда, 27 сентября 2017 г.

Устранение дребезга контактов. Часть 1 — триггер Шмитта

В предыдущей статье мы познакомились с энкодерами вращения и попробовали подключить инкрементный энкодер к Ардуино. При этом для определения факта вращения наша программа постоянно опрашивала выводы энкодера. Использовать прерывания для работы с энкодером мы не могли, поскольку его сигнал искажен высокочастотными помехами, вызванными дребезгом контактов. Поэтому сегодня мы попробуем устранить эти помехи и для этого нам потребуется познакомиться с еще одним устройством: триггером Шмитта.

Что такое триггер Шмитта

Триггер Шмитта — это электронный двухпозиционный переключающий элемент, статическая характеристика которого имеет зону неоднозначности (петлю гистерезиса). Это означает, что у данного элемента 2 порога переключения: при возрастании сигнала на входе от 0 до напряжения питания порог срабатывания будет одним (Uср), а при уменьшении от напряжения питания до 0 — другим (Uотп — отпускания). Причем Uср > Uотп. Таким образом для триггера Шмитта принципиально направление изменения сигнала. Изображение ниже иллюстрирует зависимость сигнала на выходе инвертирующего триггера Шмитта от уровня сигнала на входе.

Передаточная характеристика триггера Шмитта. Петля гистерезиса

Получившаяся на графике петля — это и есть петля гистерезиса (запаздывания), т.е. при изменении входного сигнала к исходному уровню выходной сигнал как бы запаздывает переключаться. Это свойство позволяет использовать триггеры Шмитта в фильтрах дребезга и для восстановления цифрового сигнала, искажённого в линиях связи. Давайте сравним реакцию на искаженный входной сигнал инвертирующего триггера Шмитта и обычного инвертора.

Сравнение сигналов на выходе обычного инвертора и инвертирующего триггера Шмитта (нижние два графика соответственно) при подаче на вход искаженного сигнала
Читайте также:  Программа_для_проектирования_потолков_из_гипсокартона

При возрастании сигнала на входе инвертора до порога переключения Uпор на его выходе устанавливается низкий уровень. При повторном прохождении искаженным сигналом данного порога меняется и сигнал на выходе инвертора, что приводит к неверной интерпретации сигнала. Триггер Шмитта в данном случае изменит свое состояние при прохождении сигналом уровня Uср и дальнейшие колебания в зоне неоднозначности (между Uср и Uотп) не повлияют на его выход. Следующее переключение произойдет при снижении уровня сигнала на входе триггера до Uотп. Наличие гистерезиса у триггера Шмитта позволяет отсеять помехи, амплитуда которых меньше разности Uср и Uотп. Конкретные значения порогов переключения зависят от подаваемого на триггер напряжения, их можно найти в документации к соответствующей микросхеме.

Фильтр дребезга из триггера Шмитта

Таким образом простой фильтр дребезга может быть собран из триггера Шмитта, и RC-цепочки. Причем резистор подходящего номинала уже присутствует в модуле энкодера (подтягивающий резистор на 10 кОм). Остается добавить конденсатор между выводом энкодера и землей. Емкость конденсатора определяется временем дребезга контактов: чем дольше дребезг, тем больше должна быть емкость. Я подобрал подходящую емкость опытным путем: конденсатор 104 позволил устранить большую часть шумов, но временами небольшие всплески все же проскакивали. После добавления второго конденсатора скачки на вход триггера Шмитта уже не проходили, т.е. мне хватило емкости 0.2 мкФ. Можно было бы использовать конденсатор с кодом 224 на 0.22 мкФ, у меня таких не нашлось. Касаемо используемого триггера: в стандартные серии цифровых микросхем входят триггеры Шмитта, представляющие собой инверторы (ТЛ2 — 6 инверторов), элементы 2И-НЕ (ТЛ3 — 4 элемента) и элементы 4И-НЕ (ТЛ1 — 2 элемента). Поэтому в схеме используется инвертирующий триггер Шмитта (я использую микросхему SN74HC14N, аналог отечественной К561ТЛ2).

В приведенной схеме фильтра сигнал на входе триггера будет нарастать постепенно, пока заряжается конденсатор. Но при замыкании контакта конденсатор будет быстро разряжаться через него. Если требуется обеспечить плавность затухания сигнала, то в схему добавляется второй резистор между кнопкой и конденсатором. В моем случае это не требуется.

Для проверки работы фильтра я подготовил стенд из мотора с редуктором и энкодера, т.к. планирую сравнить разные способы устранения дребезга. Стенд поможет сравнить их при одинаковых условиях. Итак, ниже представлен результат использования RC-цепочки с триггером Шмитта для подавления дребезга энкодера. Напоминаю, что энкодер имеет 2 сигнальных вывода, поэтому на осциллограммах показаны 2 сигнала, для каждого используется свой фильтр дребезга.

Искаженный дребезгом сигнал на выводах энкодера
Сигнал, сглаженный RC-цепочкой
Сигнал, восстановленный триггером Шмитта

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

Дребезг контактов кнопки ардуино – одно из самых неприятных и непонятных явлений, с которыми сталкивается начинающий ардуинщик. Устранение дребезга необходимо для корректной работы проекта, в противном случае на короткий отрезок времени схема становится практически неуправляемы. В этой статье мы рассмотрим основные причины возникновения и способы подавления дребезга. О том, что такое кнопка, как правильно подключать модуль и писать для него скетч вы можете прочитать в первой статье, посвященной кнопкам в ардуино.

Причины дребезга кнопок

Кнопка ардуино – один из самых популярных и простых видов датчиков. В основе работы любой кнопки лежит механический способ смыкания-размыкания контактов. Нажимая на любую, даже самую простую тактовую кнопку, мы формируем определенное давление на внутренние механизмы (пластины или пружины), в результате чего происходит сближение или расхождение металлических пластин.

Мы люди взрослые и хорошо понимаем, что идеального в мире ничего не существует, в том числе идеально гладких поверхностей, контактов без неровностей, сопротивления и паразитной емкости. В нашем неидеальном мире в момент нажатия на кнопку в месте соединения контакты не соприкасаются мгновенно, микро-неровности на поверхности не позволяют пластинам мгновенно соединиться. Из-за этого в короткий промежуток времени на границе пластинок меняется и сопротивление, и взаимная емкость, из-за чего возникают масса разнообразных изменений уровня тока и напряжения. Другими словами, возникают очень интересные, хотя и не очень приятные процессы, которые в электротехнике называют переходными.

Переходные процессы протекают очень быстро и исчезают за доли миллисекунд. Поэтому мы редко их замечаем, например, когда включаем свет в комнате. Лампа накаливания не может менять свою яркость с такой скоростью, и тем более не может реагировать на изменения наш мозг. Но, обрабатывая сигал от кнопки на таком быстром устройстве, как Arduino, мы вполне можем столкнуться с такими переходными эффектами и должны их учитывать при программировании.

В идеальном мире форма сигнала после нажатия на кнопку должна быть строго прямоугольная. В реальных же условиях вместе резкого перехода мы видим множество пиков и спадов.

Читайте также:  Как_сохранить_гвоздику_садовую_зимой

Ошибки дребезга кнопки

Как отразится дребезг на нашем проекте? Да самым прямым образом – мы будем получать на входе совершенно случайный набор значений. Ведь если мы считываем значение с кнопки непрерывно, в каждом новом рабочем цикле функции loop, то будем замечать все “всплески” и “падения” сигнала. Потому что пауза между двумя вызовами loop составляет микросекунды и мы измерим все мелкие изменения.

Если мы хотим отследить ситуацию, когда кнопка была отпущена после нажатия, то получим множество ложных сигналов – она будет “нажата-отпущена” десятки раз, хотя мы выполнили лишь однократное нажатие.

Вот пример скетча, в котором непременно обнаружится ошибка дребезга. Мы сможем увидеть в мониторе порта в первые мгновения после нажатия целый набор нулей и единиц в случайной последовательности (не важно, что означает 1 – нажатие или отпускание кнопки, важен сам факт появления хаоса).

Естественно, такое поведение ни к чему хорошему не приведет и нам нужно придумать способ борьбы с дребезгом. В нашем арсенале есть два способа: программный и аппаратный. Первый довольно простой, но не всегда его можно использовать в реальных проектах. Второй – более надежный, но требует существенных изменений в схеме. Давайте рассмотрим оба способа подробнее.

Программный способ устранения дребезга кнопок

Самым простым способом справиться с проблемой дребезга кнопки является выдерживание паузы. Мы просто останавливаемся и ждем, пока переходный процесс не завершится. Для этого можно использовать функцию delay()или millis() (за подробной информации можете обратиться к статье про использование функций delay() и millis() в ардуино). 10-50 миллисекунд – вполне нормальное значение паузы для большинства случаев.

В данном примере мы использовали задержку в программе, чтобы не реагировать на случайные всплески и определить реальную смену сигнала.

Борьба с дребезгом кнопки с помощью библиотеки ардуино

Проблема с дребезгом настолько популярна, что есть специальные библиотеки, в которых вам не надо организовывать ожидание и паузы вручную – это все делается внутри специального класса. Пример популярной библиотеки для борьбы с дребезгом кнопок – библиотека Bounce.

Пример использования библиотеки:

Аппаратный способ подавления дребезга кнопки

Подавление дребезга кнопки с помощью задержек в скетче – способ очень распространенный и не требующий изменения самой схемы. Но далеко не всегда его можно использовать – ведь 10 миллисекунд – это целая вечность для многих процессов в электроном мире. Также программный способ невозможно применять при использовании прерываний – дребезг приведет к многократному вызову функций и повлиять на этот процесс в скетче мы не сможем.

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

Аппаратный способ устранения дребезга основан на использовании сглаживающих фильтров. Сглаживающий фильтр, как следует из названия, занимается сглаживанием всплесков сигналов за счет добавления в схему элементов, имеющих своеобразную “инерцию” по отношению к таким электрическим параметрам как ток или напряжение. Самым распространенным примером таких “инерционных” электронных компонентов является конденсатор. Он может “поглощать” все резкие пики, медленно накапливая и отдавая энергию, точно так же, как это делает пружина в амортизаторах.

За счет инерции устройство как утюгом походит по “мятому” сигналу с большим количеством пиков и впадин, создавая пусть и не идеальную, но вполне гладкую кривую, у которой легче определить уровень срабатывания.

Пример простого фильтра на базе RC-цепочки

Схема подключение фильтра для устранения дребезга:

Пример подключения к плате ардуино

Форма сигнала после использования фильтра:

Как видим, “лес” дребезга сменился достаточно плавной линией, с которой уже можно работать дальше.

Подавление дребезга с помощью триггера шмидта

Сделать квадратную форму сигнала с помощью простой RC цепочки невозможно. Для “огранения” сглаженных форм используется специальный компонент, который называется триггер шмидта. Его особенностью является срабатывание при достижении определенного уровня сигнала. На выходе триггера шмидта мы получим или высокий или низкий уровень сигнала, никаких промежуточных значений. Выход триггера инвертированный: при спаде входного сигнала он выдает на выходе включение и наоборот. Ниже представлена схема и результат работы с триггером шмидта.

Иллюстрация результата работы:

Как видим, мы практически полностью избавились от результатов переходных процессов, сперва превратив хаос в почти гладкую кривую линию, а затем с помощью триггера шмидта “отрубили” хвосты, придав сигналу практически идеальный вид. Подав его на вход ардуино, мы уже можем не беспокоиться о ложных срабатываниях и смело использовать в скетче метод digitalRead и прерывания.

Заключение

Явление дребезга кнопок – распространенная проблема, встающая перед всеми разработчиками ардуино. У нас в арсенале есть несколько возможностей устранения дребезга. Программный метод заключается в добавлении задержки в процессе измерения сигнала. Аппаратный способ подавления дребезга с помощью сглаживающего фильтра и триггера шмидта более сложный, но надежный. Выбирайте подходящий вариант, в зависимости от требований к проекту и ваших возможностей.

Ссылка на основную публикацию
Как_заменить_кран_на_пластиковой_трубе
Появление множества новых материалов привело к появлению новых комплектующих и даже новых способов соединения фрагментов трубопровода: ведь понятно, что фитинги...
Как_закрепить_настольную_лампу_на_струбцине
Настольная лампа — обязательный осветительный прибор на письменном столе школьника, студента, человека, занятого теоретической или творческой работой. От ее конструкции...
Как_закрепить_чехол_на_диване
О том, чтобы защитить свой диван от негативного воздействия на него различных факторов, мечтает каждая женщина. Ведь со временем, даже...
Как_зарядить_лампу_светодиодную_аккумуляторную_лампу
Почти у каждого валяется без дела не нужное зарядное устройство от старого телефона. Это отличная вещь, чтобы с ее помощью...
Adblock detector