MegaD-328 и энкодер
MegaD-328 и энкодер
Всем привет. А кто-то пробовал прикрутить енкодер к МегаД? я так понимаю нужен скрипт, сам в программировании не очень силен, может кто поможет реализовать. Идея в том что бы при вращении енкодера можно было плавно менять ШИМ (соответственно димировать светодиоды) Это удобнее, чем нажимать кнопочки.
Re: MegaD и енкодер
Неужели никто еще не прикрутил энкодер к МегаД? удобнее же крутить ручку, чем давить на кнопки. В Ардуине я знаю как сделать, а вот в PHP не силен. Скажите, это хоть реально сделать?
-
- Сообщения: 213
- Зарегистрирован: 16 авг 2011, 14:07
- Откуда: Россия,Тюмень
- Контактная информация:
Re: MegaD и енкодер
Есть вариант у ТНК. На форуме посмотрите
Re: MegaD и енкодер
Тот вариант видел, но дело не в том, как подключить энкодер. У ТНК прошивка другая. Дело в том чтоб прицепить энкодер на два входа in MegaD, которые будут запускать скрипт на сервере, а он будет управлять ШИМом. У меня проблема в написании скрипта... Вот я и подумал, может кто-то уже реализовал что-то подобное.
Re: MegaD и енкодер
vgolinsky, какой энкодер вы используете? Каков принцип его работы? Они разные бывают.
Крутим в одну сторону - выдает импульсы в один канал, крутим в другую - в другой? Или как?
Крутим в одну сторону - выдает импульсы в один канал, крутим в другую - в другой? Или как?
Re: MegaD и енкодер
Энкодер подключается на два входа. при вращении почередно срабатывют входы как на прикрепленной картинке
- Вложения
-
- enc.GIF (2.05 КБ) 12983 просмотра
Re: MegaD и енкодер
Принципиально этот скрипт очень похож на тот, что в демо-интерфейсе используется для определения длительных нажатий.
Скажите модель (модели) энкодера, если в ближайшем ларьке будет - напишу под него скрипт.
Скажите модель (модели) энкодера, если в ближайшем ларьке будет - напишу под него скрипт.
Re: MegaD и енкодер
vgolinsky, зашел в ларек, взял ECW1J-R19-AC0024L.
Самая главная проблема для данной модели в том, что время контакта очень маленькое и программная защита от дребезга просто "режет" эти срабатывания.
Чтобы работал энкодер, нужен изменять параметры защиты от дребезга в сторону уменьшения минимального времени контакта, причем существенно (более чем в 2 раза). А это влечет за собой серьезные последствия ввиду того, что к используемому таймеру, привязана другая функциональность. Ну и, кроме того, это значительно ухудшит ситуацию собственно с дребезгом контактов. Вот даже не знаю что тут можно предпринять.
Для ECW1J-R19-AC0024L время контакта, насколько я понимаю, 5 мс. Нужен энкодер с бОльшим временем контакта.
Самая главная проблема для данной модели в том, что время контакта очень маленькое и программная защита от дребезга просто "режет" эти срабатывания.
Чтобы работал энкодер, нужен изменять параметры защиты от дребезга в сторону уменьшения минимального времени контакта, причем существенно (более чем в 2 раза). А это влечет за собой серьезные последствия ввиду того, что к используемому таймеру, привязана другая функциональность. Ну и, кроме того, это значительно ухудшит ситуацию собственно с дребезгом контактов. Вот даже не знаю что тут можно предпринять.
Для ECW1J-R19-AC0024L время контакта, насколько я понимаю, 5 мс. Нужен энкодер с бОльшим временем контакта.
Re: MegaD и енкодер
Я использую EC11-1B-18T (купленый на ebay) По даташиту 10 мс и меньше... а какое нужно время контакта, что бы фильтр дребезга пропускал сигнал?
Re: MegaD и енкодер
vgolinsky, нужно 10 мс и больше. С вашим, наверное, должно работать.
Только у меня такого нет. Ну я могу, наверное, написать программу и со своим, изменив временно параметры дебоунсинга. Попробую.
Только у меня такого нет. Ну я могу, наверное, написать программу и со своим, изменив временно параметры дебоунсинга. Попробую.
Re: MegaD и енкодер
vgolinsky, попробовал написать такой скрипт (с модифицированной прошивкой).
Если крутить ручку энкодера медленно, то все работает. А вот если быстро - получается мягко говоря не очень. Связка "защита от дребезга - отправка запроса на сервер - вызов скрипта - обработка параметров - отправка команды на устройство" не успевает отрабатывать за те миллисекунды, которые дает ей энкодер при активном кручении ручки. Поэтому вопрос пока остается.
Если крутить ручку энкодера медленно, то все работает. А вот если быстро - получается мягко говоря не очень. Связка "защита от дребезга - отправка запроса на сервер - вызов скрипта - обработка параметров - отправка команды на устройство" не успевает отрабатывать за те миллисекунды, которые дает ей энкодер при активном кручении ручки. Поэтому вопрос пока остается.
-
- Сообщения: 400
- Зарегистрирован: 21 сен 2013, 00:38
Re: MegaD и енкодер
Вот я тоже давно "хожу вокруг да около" энкодеров, и хочется использовать, и сложно совместить с имеющимися устройствами.
Думаю что хорошо бы энкодер нажимной поставить в корпус от диммера, а для обработки - отдельный МК в тот же корпус... и туда хорошо бы или экранчик небольшой, или светодиодное колечко (из синего в красный например переходящее, или с двумя светодиодами - чтобы оттенок сделать), в качестве обратной связи. Покрутил ручку, установил примерно (по кольцу) или точно (по экрану) значение, скажем, температуры. Отпустил ручку - оно через несколько секунд передалось на сервер. Или по нажатию "на голову".. Или нажать и повернуть (защита от детей?).. Тут никаких портов Меги не хватит, да и жалко железку на это тратить. Можно это всё сваять на радиоканале, но не сторонник я беспроводных технологий, когда дело идёт о автоматизации жилища. Если речь идет о новой проводке то можно заложить UTP провод, и как-то передавать. Может даже Ethernet,
P.S. сорри за оффтоп. Может тему отддельную? или есть уже?
Думаю что хорошо бы энкодер нажимной поставить в корпус от диммера, а для обработки - отдельный МК в тот же корпус... и туда хорошо бы или экранчик небольшой, или светодиодное колечко (из синего в красный например переходящее, или с двумя светодиодами - чтобы оттенок сделать), в качестве обратной связи. Покрутил ручку, установил примерно (по кольцу) или точно (по экрану) значение, скажем, температуры. Отпустил ручку - оно через несколько секунд передалось на сервер. Или по нажатию "на голову".. Или нажать и повернуть (защита от детей?).. Тут никаких портов Меги не хватит, да и жалко железку на это тратить. Можно это всё сваять на радиоканале, но не сторонник я беспроводных технологий, когда дело идёт о автоматизации жилища. Если речь идет о новой проводке то можно заложить UTP провод, и как-то передавать. Может даже Ethernet,
P.S. сорри за оффтоп. Может тему отддельную? или есть уже?
Re: MegaD и енкодер
В общем я написал PHP-скрипт, который прекрасно работает с моим энкодером. Просто замечательно.
Но обязательным условием работы этого скрипта является отсутствие защиты от дребезга.
Таким образом (может быть) необходимо предусмотреть настройку входа, которая бы эту защиту для определенных портов отключала.
Но обязательным условием работы этого скрипта является отсутствие защиты от дребезга.
Таким образом (может быть) необходимо предусмотреть настройку входа, которая бы эту защиту для определенных портов отключала.
-
- Сообщения: 400
- Зарегистрирован: 21 сен 2013, 00:38
Re: MegaD и енкодер
Режим "E"? В добавление к P,R,P&R?
Re: MegaD и енкодер
Почему "Ы"? Что б никто не догадался!
E - от слова энкодер?
Можно попробовать и E. Только надеюсь не понадобиться режим E&R...
E - от слова энкодер?
Можно попробовать и E. Только надеюсь не понадобиться режим E&R...
Re: MegaD и енкодер
Как это не понадобиться. Е - энкодер. R - нажали выключить.
Re: MegaD и енкодер
Для выключения в энкодере придется использовать 3-ий вход, который можно и P&R настроитьzelevova писал(а):Как это не понадобиться. Е - энкодер. R - нажали выключить.
Re: MegaD-328 и энкодер
Собственно, вот.
viewtopic.php?f=1&t=635&start=560#p16197
viewtopic.php?f=1&t=635&start=560#p16197
Re: MegaD-328 и энкодер
Что-то не заработал у меня скрипт. Точнее некоректно заработал. При вращении энкодера ШИМ меняется произвольно в любую сторону. Еще заметил у себя глюк - работает только тот скрипт, что прописан в главном меню настройки, а тот что пишется в Net Action входа не срабатывает, не знаю почему. Еще подскажите, пожалуйста, правильные фьюзы при тактировании от 16 МГц кварца?
А вот плавное включение ШИМа просто бомба. Спасибо огромное за реализацию этого, очень упростило жизнь. ))))
А вот плавное включение ШИМа просто бомба. Спасибо огромное за реализацию этого, очень упростило жизнь. ))))
Re: MegaD-328 и энкодер
vgolinsky, давайте восстановим условия, при которых у меня работает.
Оба порта, которые подключены к энекодеру сконфигурированы так: Raw включен, Action пусто, NetAction пусто (это важно)
PWM порты - Smooth отключено.
Скрипт прописан только основной. В NetAction портов энкодера ничего нет.
Компьютер, который выполняет скрипт энкодера, должен быть относительно производительным.
То есть на моем древнем тестовом Celeron 2.2Ггц работает. На мини-ПК не тестировал.
Если вы говорите о NetAction на "энкодерных" портах, то это скорее всего нормально. Слишком много формируется пакетов за единицу времени, а у стэка нет очереди. Но как-нибудь проверю.
Фьюзы, наверное, те же самые:
Low: 0x60
High: 0xD8 (если есть загрузчик)
В тестовом скрипте есть два параметра, которые могут влиять на работоспособность. Это "0.05" в строчках 43 и 45 и "10000" в строчке 74. Можно пробовать изменять эти значения в ту или иную сторону и смотреть что получается.
Оба порта, которые подключены к энекодеру сконфигурированы так: Raw включен, Action пусто, NetAction пусто (это важно)
PWM порты - Smooth отключено.
Скрипт прописан только основной. В NetAction портов энкодера ничего нет.
Компьютер, который выполняет скрипт энкодера, должен быть относительно производительным.
То есть на моем древнем тестовом Celeron 2.2Ггц работает. На мини-ПК не тестировал.
Если вы говорите о NetAction на "энкодерных" портах, то это скорее всего нормально. Слишком много формируется пакетов за единицу времени, а у стэка нет очереди. Но как-нибудь проверю.
Фьюзы, наверное, те же самые:
Low: 0x60
High: 0xD8 (если есть загрузчик)
В тестовом скрипте есть два параметра, которые могут влиять на работоспособность. Это "0.05" в строчках 43 и 45 и "10000" в строчке 74. Можно пробовать изменять эти значения в ту или иную сторону и смотреть что получается.