Страница 1 из 1

Debounce Analog (Аналоговый антидребезг)

Добавлено: 28 мар 2019, 11:50
Dryundel
.
DАналоговый Антидребезг v.3.0
Аналоговый Антидребезг.jpg
Аналоговый_Антидребезг_V.3.0_(Code_-_Professional)
.

Аналоговый Антидребезг это по сути фильтр входного сигнала.
Исправляет дребезг потенциометров и фильтрует помехи аналогового сигнала.
Может работать с Integer, Long integer и Float

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

В новой версии сильно сокращен и оптимизирован алгоритм.
Добавлена возможность работы с данными Float


------------------------------------

Загрузите простые тестовые проекты с потенциометром и сравните результат.

Тест 1Тест 2


Debounce Analog v.2.0
1.jpg
Debounce_Analog_v.2.0_(CODE).ubi
dB(A) - служит для защиты от ложных импульсов и помех при переключении контактов. Предназначение схоже с встроенным блоком Bounce, только для аналогового входа, когда например к одному аналоговуму входу подключено несколько кнопок.
Принцип действия основан на задержке передачи значения со входа на выход, пропуская время "дребезга" контактов, а так же фильтрации помех возникающих при работе оборудования. Блок не просто дает задержку, а ждет окончания дребезга и если в течении таймаута (параметр TimeLoyal) не произошло изменений подает входное значение на выход.


Принцип работы:
Корридор лояльности АЦП (параметр Loyal) удерживает неизменным выходное значение пока входные экстремумы не превышают пороговых значений +-Loyal в течении таймаута TimeLoyal.
Испытания показали, что Debounce Analog v.2.0 стабильно держит уровни АЦП отличающиеся на 30 шагов что соответствует перепаду 0,15 V при напряжении на делителе 5 V удерживая от ложных срабатываний в условиях жестких помех. Что теоретически дает возможность подключать на один аналоговый вход до 30 кнопок.

Параметры пользователя:
Loyal - Корридор лояльности АЦП
TimeLoyal - Таймаут срабатывания (Лояльная задержка) ( ms )

Увеличение Loyal (Корридора лояльности АЦП) повышает помехоустойчивость но снижает количество шагов делителя (количество кнопок)
Увеличение TimeLoyal (Таймаута срабатывания) так же повышает помехоустойчивость но приводит к задержке срабатывания.

Испытания:
Испытания проводились в условиях достаточно жестких помех. На провода кнопок, вплотную, была положена ручная электрическая дрель, которая постоянно включалась и выключалась внося ощутимые помехи в сигнал на входе АЦП.
На графике видно как происходит четкое переключение с одного уровня на другой и стабильное значение на выходе.
Так же видно игнорирование вносимых помех.
3.jpg
Отправлено спустя 1 час 32 минуты 14 секунд:
При работе с потенциометром сигнал на выходе имеет дискретность но за то прекрасно фильтруются внешние помехи. Уменьшить дискретность можно уменьшив параметры Loyal иTimeLoyal. Но следует помнить, что при уменьшении этих параметров снижается и помехо-защищенность.

Пример работы потенциометра 10k.

Loyal = 5 TimeLoyal = 40
[spoiler]
4.jpg
[/spoiler]

Loyal = 3 TimeLoyal = 25
[spoiler]
5.jpg
[/spoiler]

Debounce Analog

Добавлено: 28 мар 2019, 12:46
Sancho
[ref]Dryundel[/ref], Очень интересны последние графики, и не важна дискретность(она, на мой взгляд не соответствует подписям) - при изменении вверх, потом вниз - значения разные :) было 520, стало 519, потом 521.

Debounce Analog

Добавлено: 28 мар 2019, 13:04
Dryundel
Sancho писал(а): 28 мар 2019, 12:46 Dryundel, Очень интересны последние графики, и не важна дискретность(она, на мой взгляд не соответствует подписям) - при изменении вверх, потом вниз - значения разные :) было 520, стало 519, потом 521.
Не совсем понял в чем проблема. Крутилась ручка потенциометра с произвольного значения и конечное значение тоже произвольное.
Что и каким подписям не соответствует? Поясните пожалуйста.

Отправлено спустя 8 минут :
Аааа... Кажись понял. Вы имеете ввиду что дискретность не постоянна. Так это же потенциометр, а не энкодер. Задача не ставилась сделать четкую дискретность в данном случае. Имелось ввиду что изменения на выходе меняются дискетно, а не плавно. А попасть потенциометром в одно и то же значение на практике невозможно. Помехи и шумы не дадут этого сделать. Блок дает возможность зафиксировать значение в определенных пределах, что бы оно не скакало вместе с шумами и помехами.

Debounce Analog

Добавлено: 28 мар 2019, 14:04
Sancho
Dryundel писал(а): 28 мар 2019, 13:04 Задача не ставилась сделать четкую дискретность в данном случае.
Ответ ясен.

Debounce Analog (Аналоговый антидребезг)

Добавлено: 07 апр 2020, 14:26
Arslan
db(a) - служит для защиты от ложных импульсов и помех при переключении контактов.

Здравствуйте. ПОдскажите может есть блок от шума для аналогового входа только с маленьким значением шумоподавления? у меня термистр на 4 градуса скачет при каждом шорохе?) Заранее спасибо)

Debounce Analog (Аналоговый антидребезг)

Добавлено: 19 ноя 2022, 06:13
WildCat
Что-то не заработал у меня этот блок (
Esp32.
На выходе 0 при любых настройках полосы лояльности и тайм-аута.
Может хитрость есть какая?

Debounce Analog (Аналоговый антидребезг)

Добавлено: 16 апр 2023, 13:24
Dryundel
Версия блока обновлена

В новой версии сильно сокращен и оптимизирован алгоритм.
Добавлена возможность работы с данными Float
Аналоговый Антидребезг.jpg
Аналоговый_Антидребезг_V.3.0_(Code_-_Professional)
.