понедельник, 1 апреля 2019 г.

Дребезг контактов и его устранение

Дребезг контактов - это нежелательное многократное их замыкание и размыкание возникающее в результате воздействия на них с целью получения желаемого одного замыкания или размыкания. Т.е. мы например как бы хотим чтобы контакты замкнулись один раз как в идеальном ключе а вместо этого получаем не одно замыкание а много замыканий и размыканий. Эти нежелательные замыкания длятся очень не долго и поэтому во многих случаях не мешают или мешают не сильно но в некоторых случаях они могут помешать, например в том случае если для подсчёта нажатий на кнопку используется достаточно быстрая микросхема-счётчик. Дребезг возникает от того что контакты обладают массой и упругостью. Эти параметры можно считать паразитными и контакты имеющие их как бы являются колебательной системой на подобии грузика на пружинке. Из за потерь в системе колебания затухают. Примерно представить себе этот процесс можно так как показано на анимированной картинке:
На некоторых сайтах в интернете пишут что дребезга контактов при размыкании возникать не должно и это логично однако практика показывает что при соединении тактового входа счётчика с кнопкой с нормально замкнутыми котактами и при нажатиии на эту кнопу, счётчик по каким то причинам считает те нажатия которые не производились. Это можно увидеть из видео ниже т.к. там показан результат действия именно кнопки с нормально замкнутыми контактами на тактовый вход счётчика.
Устранить дребезг у уже сделанной кнопки нельзя но зато, применяя специальные схемы, можно устранить его последствия и получить "чистый ровный" импульс который можно подавать на входы быстродействующих микросхем. Одной из самых распространенных и популярных в интернете схем является схема из одного конденсатора большой ёмкости подключенного параллельно контактам. Конденсатор как бы сглаживает пульсации т.к. по второму закону коммутации напряжение на конденсаторе не может резко измениться однако бывают такие контакты которые дребезжат столь сильно что это не помогает. Увеличение ёмкости - решение не самое лучщее т.к. при замыкании контактов происходит как бы к.з. конденсатора и через эти контакты течёт большой ток что будет приводить к более быстрому износу данных контактов, к тому же большой конденсатор может быть неудобен из за своих размеров. К счастью существуют другие схемы. Логично предположить что для устранения последствий дребезга можно использовать одновибратор т.е. схему которая при подаче на его вход короткого запускающего импульса делает у себя на выходе длинный импульс. Если длинна выходного импульса будет больше длительности дребезга то идея сработает. Одновибратор можно например сделать на основе таймера 555 однако данный таймер имеет некоторые конструктивные недостатки которые мешают сделать на его основе надёжную систему устранения дребезга. На практике хорошо"себя показала" схема на элементах "не":
Однако она делает задержку на выходе относительно первого касания контактов друг друга. Это не всегда бывает большим недостатком (возможно даже бывает достоинством) но если всё же это мешает то можно применить схему на элементах "и-не":
В первой схеме выход одного из элементов соединен со входом другого а выход другого со входом одного через конденсатор. В исходном состоянии (контакты кнопки разомкнуты) на входе первого элемента "не" (который слева) имеется логическая единица и на выходе второго тоже, конденсатор разряжен. Когда кнопка нажимается и начинает дребезжать, конденсатор начинает понемногу заряжаться от выхода второго элемента "не" на котором будет единица до тех пор пока конденсатор не зарядиться достаточно для переключения первого элемента в другое состояние. После этого на выходе появиться ноль и конденсатор будет разряжаться, номиналы деталей д.б. такими чтобы он успел это сделать до того как кнопка будет отпущена т.е. возможно времени у него не много, по этому не стоит делать емкость конденсатора и сопротивление резистора RC цепи слишком большими. Слишком малыми тоже делать не стоит чтобы схема исправно устраняла дребезг. После отпускания кнопки пойдут аналогичные процессы и дребезг (или что там ещё происходит) от отпускания будет устранен тоже. Вторая схема аналогична первой но из за того что один из выводов первого элемента "и-не" соединен с кнопкой напрямую, переключение из лог. единицы в лог. ноль на выходе произойдет после первого касания контактов но перехода обратно не будет после первого размыкания по тому что это элемент "и-не" и для его переключения лог. единица нужна на обоих входах а после первого касания на один из входов попал лог. ноль.
Видео по данной теме:

КАРТА БЛОГА (содержание)