Свежие обсуждения
Микроконтроллеры

Еще раз про дребезг при нажатия кнопки

1 3 5

Crot2: На секундомере электронных часов нажать Пуск - Стоп, меньше 10 мс практически не получается...
Сергей К: у меня выходило 0,06...0,15 с (часы/секундомер Montana, действующие).
А я думал, что так только я развлекался , мой рекорд - 0, 09 с.
Сергей К: З.Ы. В одной секунде 100 или 1000 мс?
Приставка "мили" - десять в минус третьей степени

 

ИМХО антидребезг нужно делать "аппаратный" - конденсатор паралллельно контактам.

 

picmaniac: Видимо, следует задаться, например, минимальной длительностью нажатия, равной 50 мс. Или пусть даже 10 мс. А всё, что меньше - считать помехами и не обрабатывать.
Я вот не могу понять каким может быть источник помех для создания наводок на подтягивающем резисторе ~1K достаточной амплитуды для того что бы вызвать ложное срабатывание? Боюсь что если контроллер поместить в условия таких помех, то он просто нежилец или по крайней мере будет идти речь о работоспособности устройства вообще.

Самая надёжная защита от дребезга - подтверждение каждого нажатия кнопки паролем на дополнительной клавиатуре

 

SAK: на подтягивающем резисторе ~1K
Не всегда ведь так бывает. Встроенная подтяжка у PIC - несколько десятков кОм. Помехи могут быть импульсными, очень кратковременными. Разряд статического электричества поблизости, например. Слышали о том, как некоторые контроллеры (не PIC) сбрасывались лишь потому, что по плате чиркнули отвёрткой?
ИМХО, это вопрос, решаемый при составлении техзадания и уточняемый в эксперименте. Например, все импульсы короче 10 мс считать помехами. Или короче 5 мс. Или даже 1 мс. Смотря что устройство должно делать и в каких условиях работать.
И проверить сигналы от реальных кнопок при различных нажатиях при помощи осциллографа - для уточнения.

Отслеживать полезно любое изменение сигнала на входе. С какой частотой потребуется опрашивать вход - опять же зависит от особенностей конкретного устройства. А уже признавать новое положение кнопки по хорошему следует лишь в том случае, если результат нескольких опросов оказался одинаковым. Когда-то этот вопрос обсуждался в "Ликбезе, часть 2", там ещё матрица кнопок рассматривалась.

 

потом зашунтируй контакты конденсатором 0.1 мкФ и опять осциллографом - и все прояснится.

 

Kachipov: сколько МИЛИграмм в грамме ? Или МИЛИлитров в литре ?
Мелкий: Приставка "мили" - десять в минус третьей степени
это меня Crot2 сбил своими "10мс" (и на индикаторе часов отображаются значения от 00 до 99)
Вот это скорость у Crot2 - 10мс! Это ж в 10 раз быстрее чем мы со своими 60...150мс

По поводу дребезга: я также склонен к идее нескольких проверок кнопки в процедуре "антидребезг" (все должны дать "1", иначе начинать процедуру "антидребезг" с начала).

 

Сергей К: я также склонен к идее нескольких проверок кнопки в процедуре "антидребезг" (все должны дать "1", иначе начинать процедуру "антидребезг" с начала).

обычно делают 1 проверку через 40 - 70 мС.

 

Kachipov: антидребезг нужно делать "аппаратный" - конденсатор паралллельно контактам.

Сказали бы уж "можно", а не "нужно". Зачем навязывать?! Не надо под... "косить". Ваш почерк узнаваем!
Kachipov: потом зашунтируй контакты конденсатором 0.1 мкФ

Вот только не надо тут про конденсаторы!

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

 

picmaniac: сбрасывались лишь потому, что по плате чиркнули отвёрткой?
Вот для этого вывод MCLR нельзя оставлять висящим в воздухе, иначе он сбрасывается даже если руку поднести не прикасаясь.
picmaniac: Разряд статического электричества поблизости, например.
При такой постановке задачи вообще странно, что вся техника вокруг нас работает. Вообще-то от статики обычно экраны используют если допускают её наличие. Программная защита никак не поможет если контроллер от разряда помрет.

 

Сергей К: По поводу дребезга: я также склонен к идее нескольких проверок кнопки в процедуре "антидребезг" (все должны дать "1", иначе начинать процедуру "антидребезг" с начала).
Вот именно! Все так и делают! Зачем еще изобретать велосипед? Аль программной памяти не хватает? "Не верю" С.