-
- Нужно перейти к цифрам. Если период опроса в два раза выше ширины
импульса дребезга - все просто. Cкpипaч(398 знак., 31.03.2022 09:05)
- Вот именно. Можно фильтровать шум в цифре, но для этого потребуется непозволительно много ресурсов для такой второстепенной задачи. При быстром вращении ручного энкодера импульсы идут с частотой более килогерца, а дребезг в десятки раз выше. RC цепочки + триггеры Шмитта (которые во многих процах встроены на каждом входе), и будет надежно работать самый тупой алгоритм, не отжирающий практически ничего из ресурсов - Yurasvs(31.03.2022 13:29)
- Не. Всё не так. Фильтровать дребезг -- словно уговаривать хулигана.
Нужна задержка на время дребезга. Типа "упс, чё-то дёрнулось, а
ну-ка ну-ка, посмотрим. Ага, дёрнулось". - Бapбoc(30.03.2022 23:31)
- Да, где так. Нужно в течении какого-то времени ждать повторяющихся
значений (по минимуму - 2 раза подряд, а лучше 3 раза подряд).
Такое событие принимать за истинное значение уровня, а дальше ждать
такого же истинного уровня противоположной "полярности". Т.е. без
счета времени (или без строгой периодичности опросов) здесь не
обойтись, т.к. с помощью прерываний по фронтам невозможно
подсчитывать число повторяющихся значений. - Kceния(30.03.2022 23:44)
- Без таймера программно дребезг не давится никак, можно аппаратно, как Yurasvs gпредложил, но тогда нужен самодельный триггер Шмидта с большим гистерезисом. Или опрашивать таймером в несколько раз быстрее, чем минимальное время перехода и мажоритарка. - Andreas(31.03.2022 09:11)
- Это вам, сударыня, не приходилось клавку опрашивать. - Бapбoc(30.03.2022 23:53)
- Бог миловал :) - Kceния(31.03.2022 00:11)
- А если там биения? Сколько смотреть-то? По мне - если энкодер
дребезжит (или то, что его приводит во вращение), то он (или вся
конструкция в целом) выбран не соответственно задаче. Забарывание
дребезга должно срабатывать раз в тысячу импульсов. Или в миллион
импульсов. Но никак на каждом шаге. - POV(30.03.2022 23:35)
- Так энкодеры бывают разные
голубые красные. Оптические не дребезжат. Видел диск энкодера с кодом Грэя на десять бит? Красивая штучка. Изячная. - Бapбoc(30.03.2022 23:51)- А вот у моего энкодера, если питания на (+) не подавать, а A и B
подпирать только подтяжкой от контроллера (PULL_UP), то шум очень
сильный. Если подать на (+) 3.3V, то шум заметно уменьшается, а
если подать на (+) 5V, то становится совсем редким. Впечатление
такое, что шум возникает из-за плохого контакта, тогда как более
высокое напряжение этот промежуток пробивает. Kceния(1 знак., 31.03.2022 00:22, картинка)
- Если есть проблемы с контактом, имеем смысл поднимать ток вплоть до
10мА. Не имею большой статистики, но полагаю, что не обязательно
большое напряжение, важно, чтобы обеспечивался ток. Nikolay_Po(101 знак., 31.03.2022 12:43)
- Угу, когда паяют перед отмывкой такое бывает. - Andreas(31.03.2022 12:53)
- вы когда нибудь интересовались сопротивлением PULL_UP-ов? ну а это
можно в .... отлить - Впечатление такое, что шум возникает из-за плохого контакта,
тогда как более высокое напряжение этот промежуток пробивает. - m16(31.03.2022 00:31)
- Да, у меня это 30 К. А в энкодере стоят 10 К. - Kceния(31.03.2022 01:15)
- Если есть проблемы с контактом, имеем смысл поднимать ток вплоть до
10мА. Не имею большой статистики, но полагаю, что не обязательно
большое напряжение, важно, чтобы обеспечивался ток. Nikolay_Po(101 знак., 31.03.2022 12:43)
- А вот у моего энкодера, если питания на (+) не подавать, а A и B
подпирать только подтяжкой от контроллера (PULL_UP), то шум очень
сильный. Если подать на (+) 3.3V, то шум заметно уменьшается, а
если подать на (+) 5V, то становится совсем редким. Впечатление
такое, что шум возникает из-за плохого контакта, тогда как более
высокое напряжение этот промежуток пробивает. Kceния(1 знак., 31.03.2022 00:22, картинка)
- Так энкодеры бывают разные
- Да, где так. Нужно в течении какого-то времени ждать повторяющихся
значений (по минимуму - 2 раза подряд, а лучше 3 раза подряд).
Такое событие принимать за истинное значение уровня, а дальше ждать
такого же истинного уровня противоположной "полярности". Т.е. без
счета времени (или без строгой периодичности опросов) здесь не
обойтись, т.к. с помощью прерываний по фронтам невозможно
подсчитывать число повторяющихся значений. - Kceния(30.03.2022 23:44)
- Глаза аналоговые. А разрешения (скорости обработки фронтов) МК
хватит? Вон УАРТ считает 16 тактов чтобы принять решение об уровне
сигнала. Значит надо безо всяких прерываний по фронту делать
выборку (и обработку) с порта с частотой в 16 раз выше максимальной
частоты импульсов... впрочем, это КО говорит, не я. - POV(30.03.2022 23:27)
- А почему бы его и не использовать? - ILYAUL(30.03.2022 23:50)
- Нужно перейти к цифрам. Если период опроса в два раза выше ширины
импульса дребезга - все просто. Cкpипaч(398 знак., 31.03.2022 09:05)