Набор блоков ЭНКОДЕР
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Набор блоков ЭНКОДЕР
Тема устарела и морально и технически.
Новый блок EncoderPro здесь.
Сколько ни пытался найти удовлетворяющий меня блок энкодера, не получилось.
Выкладываю свои варианты. Здоровая критика приветствуется. Скачать все одним архивом: Блоки написаны на основе библиотеки Encoder.h
Могут работать на любых пинах, но на пинах поддерживающих прерывание результат самый лучший.
*** Эти два блока выдают тики на выходах Up и Down (Вперед / Назад)
Отличие Энкодер_импульсный_v1.1 в том, что в нем можно настроить количество импульсов выдаваемых энкодером за один физический шаг.
Описание:
Энкодер_импульсный_v1.0
[spoiler]Энкодер импульсный v1.0
EncTic v1.0 - отслеживает импульсы датчиков энкодера, используея квадратурный медот подсчета импульсов и определяет напавление вращения.
В зависимости от направления вращения, на выходах Up или Down формируются импульсы, соответствующие одному физическому шагу энкодера..
В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера.
Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.
Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.
При использовании длинных проводов между энкодером и платой можно поставить подтягивающий резистор 1К.
Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
На основе библиотеки http://www.pjrc.com/teensy/td_libs_Encoder.html[/spoiler]
Энкодер_импульсный_v1.1
[spoiler]Энкодер импульсный v1.1
EncTic v1.1 - отслеживает импульсы датчиков энкодера, используея квадратурный медот подсчета импульсов и определяет напавление вращения.
В зависимости от направления вращения, на выходах Up или Down формируются импульсы, соответствующие одному физическому шагу энкодера..
В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера.
2. Установить значение TicStep соответствующее количеству тиков на один физический шаг энкодера.
Пример: При использовании энкодера EC-11 ( KY-040) на один физический шаг EncTic выдает 2 тика, поэтому надо поставить TicStep = 2.
Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.
Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.
При использовании длинных проводов между энкодером и платой можно поставить подтягивающий резистор 1К.
Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
На основе библиотеки http://www.pjrc.com/teensy/td_libs_Encoder.html
[/spoiler]
Другие блоки для энкодера:
Тестер для энкодера
Блок энкодера для одноуровневого меню
Новый блок EncoderPro здесь.
Сколько ни пытался найти удовлетворяющий меня блок энкодера, не получилось.
Выкладываю свои варианты. Здоровая критика приветствуется. Скачать все одним архивом: Блоки написаны на основе библиотеки Encoder.h
Могут работать на любых пинах, но на пинах поддерживающих прерывание результат самый лучший.
*** Эти два блока выдают тики на выходах Up и Down (Вперед / Назад)
Отличие Энкодер_импульсный_v1.1 в том, что в нем можно настроить количество импульсов выдаваемых энкодером за один физический шаг.
Описание:
Энкодер_импульсный_v1.0
[spoiler]Энкодер импульсный v1.0
EncTic v1.0 - отслеживает импульсы датчиков энкодера, используея квадратурный медот подсчета импульсов и определяет напавление вращения.
В зависимости от направления вращения, на выходах Up или Down формируются импульсы, соответствующие одному физическому шагу энкодера..
В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера.
Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.
Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.
При использовании длинных проводов между энкодером и платой можно поставить подтягивающий резистор 1К.
Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
На основе библиотеки http://www.pjrc.com/teensy/td_libs_Encoder.html[/spoiler]
Энкодер_импульсный_v1.1
[spoiler]Энкодер импульсный v1.1
EncTic v1.1 - отслеживает импульсы датчиков энкодера, используея квадратурный медот подсчета импульсов и определяет напавление вращения.
В зависимости от направления вращения, на выходах Up или Down формируются импульсы, соответствующие одному физическому шагу энкодера..
В параметрах пользователя необходимо:
1. Указать 2 пина к которым подключены CLK и DT энкодера.
2. Установить значение TicStep соответствующее количеству тиков на один физический шаг энкодера.
Пример: При использовании энкодера EC-11 ( KY-040) на один физический шаг EncTic выдает 2 тика, поэтому надо поставить TicStep = 2.
Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - используются два пина поддерживающие прерывания.
2. Хорошая производительность - один из пинов поддерживает прерывания.
3. Низкая поизводительность - оба пина не поддерживают прерывания.
Ограничения:
1, Не рекомендуется использовать пины к которым подключена светодиодная индикация (в большинстве случаев Pin 13)!!!
2. Если одним энкодером задействованы два пина пина поддерживающие прерывание, то в проекте нельзя использовать более одного блока. Если хотя бы один из пинов к которому подключен энкодер не поддерживает прерывание, ограничение снимается.
При использовании длинных проводов между энкодером и платой можно поставить подтягивающий резистор 1К.
Пины поддерживающие прерывания на различных платах Arduino:
UNO - Pin 2,3
LEONARDO - Pin 0,1,2,3
MEGA - Pin 2,3,18,19,20,21
DUE - все
На основе библиотеки http://www.pjrc.com/teensy/td_libs_Encoder.html
[/spoiler]
Другие блоки для энкодера:
Тестер для энкодера
Блок энкодера для одноуровневого меню
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Dryundel 10 сен 2021, 14:44, всего редактировалось 3 раза.
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Хорошо, когда всё в кучку собрано.
А есть количественные оценки быстродействия разных вариантов подключения?
А есть количественные оценки быстродействия разных вариантов подключения?
С уважением,
Евгений Бобков
Евгений Бобков
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Набор блоков ЭНКОДЕР
Что означает "количественные оценки", я так и не понял.
Про разные варианты подключения: Блоки можно подключать тремя вариантами. Все работают весьма удовлетворительно.
1. Используются два пина поддерживающие прерывания. В этом случае энкодер работает нормально, даже если контроллер весьма нагружен. Но есть в данном подключении одно ограничение. Нельзя использовать в проекте более одной копии блока. Перестает работать либо один либо другой. Предполагаю, что не всем понятно зачем несколько копий одного блока (с одинаковыми пинами подключения) в проекте. А между тем это весьма полезная штука.
Пример: Ну или ваще так:
[spoiler] [/spoiler]
Как я не пытался заставить такой вариант работать, когда энкодер подключен к двум пина поддерживающим прерывания, у меня не получилось. Однако если хотя бы один из подключенных пинов не поддерживает прерывание, схема работает на ура.
В связи с чем, вопрос к гуру. Может кто подскажет как исправить данный недочет?
2. Один из пинов поддерживает прерывания.
3. Оба пина не поддерживают прерывания.
Последние два варианта в разной степени реагируют на загруженность контроллера. Хотя в тестовом варианте, когда в коде нет емких процессов, все варианты работают отлично. Исходя из этого, я пришел к выводу - если хочется большое хорошее меню управляемое энкодером, надо реализовывать его на отдельном контроллере. И если лишние 100-200р для проекта не накладно, это лучший вариант.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Набор блоков ЭНКОДЕР
Итак продолжаем.
Как следует из названия, блоки считают количество импульсов. Энкодер_считающий v 2.1 отличается тем, что в нем можно настроить количество импульсов выдаваемых энкодером за один физический шаг. Это бывает полезно когда на один физический шаг энкодера приходится два импульса, как например у распространенного и дешевого EC-11 ( KY-040).
[spoiler] [/spoiler]
Оба блока работают более чем адекватно. Имеют в коде всего пару строчек, всю работу делает библиотека Encoder.h

[spoiler] [/spoiler]
Оба блока работают более чем адекватно. Имеют в коде всего пару строчек, всю работу делает библиотека Encoder.h
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Набор блоков ЭНКОДЕР
для энкодера более чем достаточно одного прерывания. я в упор не понимаю для чего пытаются задействовать оба прерывания.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Набор блоков ЭНКОДЕР
Ну если библиотека так написана, значит ее автор имел на то основание. И практика показывает, что его основания не безосновательны.pan писал(а): 14 мар 2019, 12:05для энкодера более чем достаточно одного прерывания. я в упор не понимаю для чего пытаются задействовать оба прерывания.

.
Ответ здесь.
Последний раз редактировалось Dryundel 14 сен 2021, 23:07, всего редактировалось 1 раз.
Набор блоков ЭНКОДЕР
мало ли кто и как пишет.
библиотека для энкодера эт ваще весело...
там кода 2 строчки надо.
я уверяю что 1 прерывания более чем достаточно.
Отправлено спустя 4 минуты 23 секунды:
всё что нужно для нормальной работы, это пара конденсаторов маленькой емкости. и всё будет работать прекрасно.
а 2 прерывания ( не удивлюсь если в библиотеку засунули программную защиту от дребезга для добавления тормозов ардуине) это видимо от не понимая что и как работает, или хз по какой причине.
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Когда Вы говорите:
- это качественная оценка.Dryundel писал(а): 13 мар 2019, 23:00Есть три варианта подключения (из описания библиотеки):
1. Лучший результат - ...
2. Хорошая производительность - ...
3. Низкая поизводительность - ...
А когда Вы скажете:
- при первом варианте частота энкодера может достигать 30кГц; на DUE - 120кГц;
- при втором - 25 кГц;
- при третьем - 5 кГц.
это будет количественная оценка. (цифры я взял с потолка).
За одно уж скажите сколько импульсов выдают Ваши блоки за один квадратурный период - 1, 2 или 4?
С уважением,
Евгений Бобков
Евгений Бобков
Набор блоков ЭНКОДЕР
Так блоки на библиотеке сделаны. Правильно все вопросы задавать автору библиотеки вот здесь Encoder Libraryeugeneb писал(а): 14 мар 2019, 17:16За одно уж скажите сколько импульсов выдают Ваши блоки за один квадратурный период - 1, 2 или 4?
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Набор блоков ЭНКОДЕР
Народ, смысл библиотеки:
Пины прерываний заняты, а их у нано всего 2, к примеру фазорезом и сигналом от микрухи расширения, вот автор библиотеки и предложил свой вариант.
Возможно, в нём используются прерывания, обозначенные на картинках как PCINT (Pin Change Interrupts).
Отправлено спустя 2 минуты 25 секунд:
Вот нормально описано
Отправлено спустя 1 минуту 56 секунд:
Написать себе свой энкодер по этой азбуке, думаю, не составит труда.
Пины прерываний заняты, а их у нано всего 2, к примеру фазорезом и сигналом от микрухи расширения, вот автор библиотеки и предложил свой вариант.
Возможно, в нём используются прерывания, обозначенные на картинках как PCINT (Pin Change Interrupts).
Отправлено спустя 2 минуты 25 секунд:
Вот нормально описано
Отправлено спустя 1 минуту 56 секунд:
Написать себе свой энкодер по этой азбуке, думаю, не составит труда.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Набор блоков ЭНКОДЕР
это все понятно.
я про то ,что весь смысл определения направления, это во время прерывания одного пина "посмотреть" на состояние второго пина. ВСЁ! ))
чё там еще прерывать..
и мне почему то кажется так даже быстрее будет..
я про то ,что весь смысл определения направления, это во время прерывания одного пина "посмотреть" на состояние второго пина. ВСЁ! ))
чё там еще прерывать..
и мне почему то кажется так даже быстрее будет..
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
Набор блоков ЭНКОДЕР
а как себя будет вести промышленный энкодер ? не будет пропусков ? в проекте управлением станком у меня оба на прерываниях сидят и супер.Увидел у меня не эти блоки стоят

Отправлено спустя 46 минут 11 секунд:
не одно и тоже?Dryundel писал(а): 14 мар 2019, 11:23Предполагаю, что не всем понятно зачем несколько копий одного блока (с одинаковыми пинами подключения) в проекте. А между тем это весьма полезная штука.
Пример:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Да это я так, разговор поддержать

Не ответит ТС. Не исследовал он свои блоки на промышленных энкодерах.
Судя по фоткам - только с простыми (читай "медленными") "ручниками".
С уважением,
Евгений Бобков
Евгений Бобков
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Это смотря какое разрешение хочешь получить от энкодера. Иногда критически важно реагировать на каждый фронт и каждый спад обоих квадратурных каналов.
С уважением,
Евгений Бобков
Евгений Бобков
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Например, в станке с ЧПУ (в настоящем, не домашнем) разрешение энкодера определяет МИНИМАЛЬНО возможную скорость по этой оси. А от этого критически зависит точность станка при резании некоторых деталей (на пологих траекториях).
С уважением,
Евгений Бобков
Евгений Бобков
Набор блоков ЭНКОДЕР
во первых, по моему вы путаете понятия. но не суть.
я просил пример необходимости
я просил пример необходимости
eugeneb писал(а): 14 мар 2019, 19:51реагировать на каждый фронт и каждый спад обоих квадратурных каналов.
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Я и привёл пример необходимости.
Что бы сделать точный станок с ЧПУ, нужен энкодер с максимальным разрешением. Приведёные блоки делят максимально возможное разрешение ЛЮБОГО энкодера на четыре, то есть ухудшают его характеристики. Обычно это допустимо. Но иногда - нет.
Что бы сделать точный станок с ЧПУ, нужен энкодер с максимальным разрешением. Приведёные блоки делят максимально возможное разрешение ЛЮБОГО энкодера на четыре, то есть ухудшают его характеристики. Обычно это допустимо. Но иногда - нет.
С уважением,
Евгений Бобков
Евгений Бобков
Набор блоков ЭНКОДЕР
[ref]eugeneb[/ref], мы говорим о разных вещах.
блоки ни чего не делят.
а вот
но я думаю эти (и подобные блоки) для использования энкодеров "крутилок". и они с этим прекрасно справляются.
а если взять пром энкодер с высоким разрешением в несколько тысяч имп. на оборот, умноженных на 4 и который будет быстро вращаться, то ардуина "окуклится". да и не предназначена для этого.
блоки ни чего не делят.
а вот
это для умножения количества импульсов на 4.eugeneb писал(а): 14 мар 2019, 19:51реагировать на каждый фронт и каждый спад обоих квадратурных каналов.
но я думаю эти (и подобные блоки) для использования энкодеров "крутилок". и они с этим прекрасно справляются.
а если взять пром энкодер с высоким разрешением в несколько тысяч имп. на оборот, умноженных на 4 и который будет быстро вращаться, то ардуина "окуклится". да и не предназначена для этого.
- eugeneb
- Лейтенант
- Сообщения: 486
- Зарегистрирован: 15 авг 2016, 11:20
- Откуда: Нижний Новгород
- Имя: Евгений
- Благодарил (а): 1 раз
Набор блоков ЭНКОДЕР
Как это не делят! Они из четырёх последовательных состояний энкодера делают один импульс (вместо четырёх). Именно делят.
Дк я и просил количественную оценку - чтоб знать когда "окуклится"

С уважением,
Евгений Бобков
Евгений Бобков
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя