Найти в Дзене
Робототехника

Дребезг контактов и защита от него.

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

Что такое дребезг контактов. Если металлический шарик уронить, на твердую поверхность, например кафельная плитка, то за счет собственной упругости и упругости плитки, шарик несколько раз подскочит.

микроподскоки
микроподскоки

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

-2

В момент переключения будет происходит от 3 до 7 касаний, прежде чем они сомкнуться плотно.

-3

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

-4

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

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

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

2. Аппаратное решение проблемы - установка дополнительной схемы на входе микроконтроллера.

Здесь, конечно, решений тысячи, начиная от применения RC - фильтров и заканчивая двухтактными D - триггерами.

Решения с фильтром:

-5

В данной схеме, как только нажата кнопка S2 ёмкость через неё мгновенно разряжается по замкнутому контуру через S2. В тот момент, когда S2 кратковременно разомкнута, на разряженной емкости логический 0 и пока она зарядится требуется время, заряд идет по цепи, VCC - R2 -C1 - GND. Но есть у схемы недостаток: в момент отключения S2, ёмкости требуется время для заряда (восстановление заряда) ёмкости, а пока она заряжается, на входе логический 0.

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

Пример программы:

Вводим две переменные

a -текущее состояние

b - предыдущее состояние.

Запускаем цикл опроса кнопки.

Считываем значение значение кнопки а,

Сравниваем a и b

Если а = b то продолжаем цикл опроса.

иначе делаем паузу и снова проверяем Если а <> b то числу b присваиваем число a

Выполняем необходимые процедуры и снова заходим на цикл опроса кнопки.

Это один из простейших примеров, программы. Грамотные программисты пишут под себя модули уже сразу с задержкой в командах.

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

Достоинство алгоритма в том, что он прост и понятен.

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

Эта тема важна именно тем, кто работает с кнопками, концевиками и любыми сухими контактами.

Учитесь с нами, если видите недочеты, то пишите лично.

Для поиска публикаций через поисковые системы, просто вводите слово Вивитроника.

Свои комментарии можете предлагать в группе вконтакте,
Если есть вопросы или по желания, то пишите, через Обратную связь.
Канал телеграм.