Здравствуйте. Решил обратиться, ибо моих знаний уже не хватает.
Необходимо реализовать управление проходным светом (из 2х-3х точек) именно с диммеров-поворотнонажимных. Диммеры уже есть и у них есть особенность- зависание контактов 1 и 2 в положении ВКЛ. (Это и есть суть проблеммы). Провода тоже уже проложены 5 жил. Управление светом-программное через WB-LED. Крутилки соединяются с WB-MCM8.
Подключение по одной крутилке на канал (1,2,3, iGND) проходит успешно. Все работает.
НО, нужно больше одной.
Что успел попробовать:
Шлейф всех крутилок (на 4 провода) на одно реле = при зависании пары контактов одного из энкодеров все остальные перестают давать сигнал. Не рабочий вариант.
Шлейф проводов 1,2,3 и шлейф этих же проводов между двумя реле. Разные iGND. = Куча ложных срабатываний в т.ч. при повороте одной, другая замыкает все 3 контакта. Не рабочий вариант.
К варианту 2, установил 10кОм резисторы перед iGND с каждой крутилки. Весь шум пропал, контакты 1,2 работают на обоих, но есть странный глюк: при нажатии кнопки на одной крутилке сигнал дублируется, как будто нажали обе (*просто снял с одного реле вход 3). Решение почти рабочее.
НО! Если контакты одной крутилки зависли, счетчик второй крутит только вверх! Т.е. куда не крути положение энкодера идет только в +. Но повернув на 1 щелчек вторую крутилку, все снова работает как надо.
Пробовал программно отключить входы 1 и 2 одной крутилке (на 3 сек) если меняется положение другой. Не получилось… (вернее работает с реле, но не работает на входах 1 и 2).
Нужен код который будет именно глушить показания/ или вообще снимать питание с входов реле в тот момент когда работает другое (полное обесточивание реле тоже приемлемо). Естественно временно.
Шлейф. Всего есть 5 жил, использую как 1 и 2-положения энкодера, 3-кнопка и разные земли-2шт. Устройства соединены последовательно одноименными выходами. Остальная часть УД соединена по модбасу.
Так точно не будет работать. У квадратурного энкодера в любой момент времени один из выходов активен. Также питанием входов управлять нельзя.
Пожалуй оптимальный вариант - подключить каждый из энкодеров к своим входам отдельными линиями.
Либо, если прокладка затруднена - реализовать для каждого энкодера подключение через делитель. Например, грубо, резистор от 5 вольт 1кОм.
Энкодер 1 - 2кОм.Энкодер 2 - 1кОм.
Получим матрицу напряжений для состояний:
Обо неактивны -5 вольт.
Первый активен - 3,3В
Второй активен - 2,5В
Оба активны - 2В.
Если взять ардуинку работающую на 16МГц то получить длительность цикла АЦП 35мкс для 8бит значения - просто. Считая по 4 преобразования на 1 тик знкодера получим минимальное время замыкания 140мкс. Для энкодера управляемого человеком - более чем достаточно. Естественно вывод кнопок можно опрашивать реже
То есть можно распознавать вращение обоих энкодеров совершенно независимо.
Плюсы -просто и предсказуемо работает.
Минусы - это DIY и потребует несколько часов на отладку. Ну и на сборку.
Вот примерно так.
На таком принципе делал поделючение клавиатуры - оно работало.
Еслти б не требования скорости - то можно и в 1 провод ужать, но получится 2^6 состояний, не уверен что в соотношение разрядности и скорости уложиться получится.
Э, нет.
В Если для энкодера - согласен, можно один между C и общим… А хотя нет - могут быть замкнуты оба (и A и B) одноврениеено. И тогда неопределенность будет.
У меня именно такие. На четный тик замыкаются оба (поочередно), на нечетный размыкаются. В любом случае, большое вам спасибо, за совет. Варианты буду пробовать, пока тему оставлю открытой, может еще какие идеи появятся.