Энкодер Pro

Encoder EncoderPro EncPro

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Энкодер Pro

#1

Сообщение Dryundel » 10.09.2021{, 13:57}

Если возникли проблемы с компиляцией Читай пост #12 (временно)
Энкодер Pro (EncPro)
(AVR, ESP)
.
На самом деле эта тема является логическим продолжением:
Набор блоков ЭНКОДЕР
.
Новый блок EncPro содержит возможности всех ранее представленных блоков вместе взятых.
Полностью переработан алгоритм работы с используемой библиотекой Encoder, благодаря чему повысилась эффективность и надежность работы блока.

ВНИМАНИЕ! Для корректной работы блока, удалите старые библиотеки, такие как Encoder, Encoder-master, Encoder1.4.1. Данный блок работает с последней версией - Encoder1.4.2 Устанавливать ничего не нужно, библиотека вшита в блок.
Пути для удаления (по умолчанию):
1. ...\FLProg\ideV7\libraries
2. ...\FLProg\ideV7\portable\sketchbook\libraries

.
EncPro_1.jpg
EncPro_1.jpg (7.36 КБ) 15889 просмотров
Актуальная версия.
.
Энкодер_Pro_V1.5_(Code_-_Professional).ubi
- обновлена библиотека Encoder.h до 1.4.3
- Добавлен псевдо-абсолютный режим работы энкодера.
.
История версий.
.
Энкодер_Pro_V1.4_(Code_-_Professional).ubi
(2.44 МБ) 214 скачиваний
Добавлена возможность ограничения счета вверх и вниз.
.
Энкодер_Pro_V1.3_(Code_-_Professional).ubi
(2.35 МБ) 324 скачивания
- Исправлен конфликт, возникавший при использовании двух и более блоков в проекте. (19.07.2022)
.
Энкодер_Pro_V1.1_(Code_-_Professional).rar
(58.62 КБ) 445 скачиваний
- Добавлен параметр "Дополнительные настройки"
- Оптимизирован алгоритм компиляции
- Исправлена ошибка компиляции при отсутствии выходов Up и Down
.
Энкодер_Pro_V1.0_(Code_-_Professional).rar
(54.07 КБ) 221 скачивание
Данный релиз является бета-версией и будет дорабатываться, хотя и полностью работоспособен.
.
Краткое описание:

Энкодер Pro (EncPro) это универсальный блок с возможностью настройки.
Все настройки интуитивно понятны и имеют описание и подсказки.
Благодаря отличному алгоритму библиотеки Encoder (https://github.com/PaulStoffregen/Encoder/releases),
которую я по праву считаю лучшей в своем классе, пропуск шагов практически исключен.
В описании библиотеки гарантирована работа на частоте до 100 кГц - 127 кГц.
Если у вас нормальный, не убитый энкодер, имеющий RC фильтры, то при подключении
сигнальных пинов на пины контроллера, поддерживающие прерывания, качественная работа
блока гарантирована. Если же такой возможности нет, то используйте хотя бы один пин
поддерживающий прерывания. У таких контроллеров как UNO и NANO это D2 и D3.
Счетный выход блока Count выдает результат моментально.
Скорость работы импульсных выходов Up и Down зависит от вашей программы.
Блок физически не может выдавать больше одного импульса за два цикла.
Однако импульсов будет ровно столько, сколько покажет моментальный выход Count,
хотя они могут совершаться с задержкой.

Блок выдает количество шагов, направление и импульсы для каждого шага.

Возможности блока и работа с ним:

Пользовательские настройки блока позволяют настроить блок под свои нужды.
Код генерируемый блоком, включает в себя только включенные функции.
Внешний вид блока, так же не имеет ничего лишнего согласно примененных настроек.

Варианты настройки блока:
EncPro_Варианты.jpg
EncPro_Варианты.jpg (40.03 КБ) 15889 просмотров
.
Настройки:

- Pin1 и Pin2 - выбор пинов контроллера к которым подключены дата-пины энкодера (DT, CLK).
- Тиков на шаг - Количество тиков, выдаваемых энкодером, за один физический шаг(щелчок). Энкодер типа EC-11 ( KY-040) выдает 4 или 2 тика на шаг. Зависит от производителя. Если энкодер не имеет дискретного (ступенчатого) шага, можно ввести количество тиков, кратно которому будет выдаваться один импульс.
- Выходы импульсные Up и Down - это инкрементный и декрементный выходы. При правильно настроенном энкодере,на одном из этих выходов, в зависимости от направления вращения энкодера, появляются импульсы.
Один импульс на один шаг.
- Выход счетчика Count - это числовой выход счетчика импульсов. При вращении в одну стороку значение на нем увеличивается, в другую - уменьшается. Значения могут быть как положительными так и отрицательными. Макс и мин ограничены long ( -2 147 483 648 до 2 147 483 647 ).
- Вход сброса Reset - это вход сброса счетчика. При наличии на нем логической единицы, выход Count принимает значение "0".
- Вход предустановки Preset - это вход предустановки. При наличии на нем логической единицы, выход Count принимает значение со входа VP (Value Preset). Работает только с локальным выходом Count.
Это например, может быть актуально для использования начального значения из EEPROM.
- Количество групп выходов / входов - Блок может иметь несколько счетчиков и групп Up/Down.
Это актуально если с одного энкодера требуется передавать данные на разные блоки (входы блоков).
При использовании более одной группы таких выходов, Reset и Preset работают с активной группой.
Кроме этого можно использовать ResetAll и PresetAll - Общиt сброс и предустановка для всех счетчиков.
- Вход общего сброса ResetAll и Вход общей предустановки PresetAll - эти входы аналогичны Reset и Preset, но действуют на все группы выходов/входов одновременно.
Дополнительные настройки - Настраивается оптипизация прерываний и поднятие рабочей частоты до 127 кГц (только для AVR) или отключаются совсем (актуально если пины с прерыванием не задействованы, уменьшает размер).
Внимание! При оптимизации прерываний, другие прерывания в проекте, если таковые есть, перестанут работать.

- Вход Номер группы(NumGroup) появляется когда количество групп выходов/входов больше одного. В этом случае активной группой будет та, номер которой присутствует на этом входе.

Пример выбора номера активной группы с помощью штатного блока "Шифратор"
EncPro_Выбор группы.jpg
EncPro_Выбор группы.jpg (11.16 КБ) 15889 просмотров
.
- Входы Значение предустановки (VP, VP1, VP2, VP3, VP4) - появляются при установленной настройке "Вход предустановки Preset/PresetAll". При высоком логическом уровне на Preset/PresetAll выходы "Count" примут соответствующее значение.
EncPro_Preset.jpg
EncPro_Preset.jpg (21.23 КБ) 15889 просмотров
.
Последний раз редактировалось Dryundel 20.04.2023{, 11:01}, всего редактировалось 11 раз.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Энкодер Pro

#101

Сообщение Dryundel » 19.07.2022{, 18:08}

oskar писал(а):
19.07.2022{, 17:55}
Подскажите а он по умолчанию работает с прерываниями?
Да. Если подключен к пинам с прерываниями, то автоматом по умолчанию с прерываниями.
oskar писал(а):
19.07.2022{, 17:55}
Вобщем у меня проект на Меге, использую три энкодера ЛИР 158А ( 10000 имп/об) скорость вращения энкодера примерно 1градус / сек , подключены к 2, 3, 18,19,20,21 пинам ( все поддерживают прерывания) при вращении недосчитает примерно 100 импульсов на оборот, не знаю что с этим делать, вроде по заявленным характеристикам (120 КГЦ) должен все четко считать...
Проект.

starik3000
Рядовой
Сообщения: 72
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 5
Имя: Павел

Энкодер Pro

#102

Сообщение starik3000 » 12.11.2022{, 12:52}

Я заранее дико извиняюсь.

Но может кто поделится блоком енкодера для 8266. которую можно использовать несколько раз в проекте.

Версия 1,3 на 8266 не работает. После прошивки контроллер не стартует , и мигает диодом

Faza888
Рядовой
Сообщения: 5
Зарегистрирован: 05.01.2022{, 19:04}
Репутация: 0
Имя: Вадим

Энкодер Pro

#103

Сообщение Faza888 » 19.12.2022{, 23:58}

Добрый день. Подскажите как заставить работать этот блок с atmega 16, выдает вот такие ошибки:
IMG_20221219_235633_973.jpg
IMG_20221219_235647_593.jpg

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Энкодер Pro

#104

Сообщение Ingwar » 20.12.2022{, 01:37}

Faza888 писал(а):
19.12.2022{, 23:58}
Подскажите как заставить работать этот блок с atmega 16, выдает вот такие ошибки:
Красавчик :smile9:
Думаю следующий рубеж - бумажные письма ...
СпойлерПоказать
Безымянный.png
viewforum.php?f=246
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Энкодер Pro

#105

Сообщение aidar_i » 20.12.2022{, 19:26}

Faza888 писал(а):
19.12.2022{, 23:58}
Добрый день. Подскажите как заставить работать этот блок с atmega 16, выдает вот такие ошибки:
IMG_20221219_235633_973.jpg

IMG_20221219_235647_593.jpg
Лучше проектик, можно файл со скетчем с Ардуино Иде, тк этот МК не очень изучен нами.
Ingwar писал(а):
20.12.2022{, 01:37}
Красавчик
Думаю следующий рубеж - бумажные письма ...
Будьте добрее и снисходительнее . На правила можете указывать, но не нужно язвить и остроумничать!

MM33
Рядовой
Сообщения: 41
Зарегистрирован: 23.06.2021{, 11:52}
Репутация: 7
Имя: Михаил

Энкодер Pro

#106

Сообщение MM33 » 22.12.2022{, 15:59}

starik3000,
попробуйте блок во вложении. считает с удвоением. т.е при датчике на 2500 имп/об выдает 5000 отсчетов.
Вероятно на больших скоростях начнет глючить из за того что я не знаю как на ESP 8266 организовано прямое чтение регистра, а digital Read медленная процедура.
Чтобы использовать в проекте несколько раз придется редактировать блок, изменяя входа .
В блоке сейчас стоят пины D1 и D2.
Вложения
энкодер esp8266.flp
(312.14 КБ) 36 скачиваний

MM33
Рядовой
Сообщения: 41
Зарегистрирован: 23.06.2021{, 11:52}
Репутация: 7
Имя: Михаил

Энкодер Pro

#107

Сообщение MM33 » 23.12.2022{, 09:48}

starik3000,
прошу прощения, вчера прицепил не тот файл. исправляюсь, см вложение
Вложения
энк ММ на ESP8266.flp
(163.9 КБ) 43 скачивания

starik3000
Рядовой
Сообщения: 72
Зарегистрирован: 06.04.2020{, 10:53}
Репутация: 5
Имя: Павел

Энкодер Pro

#108

Сообщение starik3000 » 23.12.2022{, 09:50}

MM33,
Спасибо

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Энкодер Pro

#109

Сообщение Dryundel » 04.03.2023{, 20:01}

Версия блока обновлена. первый пост
Добавлена возможность ограничения счета вверх и вниз.

Abay1
Рядовой
Сообщения: 31
Зарегистрирован: 01.03.2022{, 08:03}
Репутация: 0
Имя: Александр

Энкодер Pro

#110

Сообщение Abay1 » 04.03.2023{, 21:11}

Dryundel писал(а):
04.03.2023{, 20:01}
Версия блока обновлена. первый пост
Добавлена возможность ограничения счета вверх и вниз.
- "как часы"!!!
С экономией внешних блоков!
В тяжелых (и скоростных, местами) проектах под Arduino Uno и ESP8266 NodeMcu v3.

"Благодарность пред строем" - за самый стабильный, надежный и крос-платформенный ПБ "просто Энкодер"!!!!!

arisov77
Рядовой
Сообщения: 54
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 8
Откуда: Инза

Энкодер Pro

#111

Сообщение arisov77 » 04.03.2023{, 21:40}

Dryundel писал(а):
04.03.2023{, 20:01}
...Добавлена возможность ограничения счета вверх и вниз...
Спасибо, как раз работаю над проектом, где использую Ваш блок, но для ограничения числа пришлось пользоваться внешним счётчиком.

При использовании энкодера и больших чисел столкнулся с проблемой: мне, например, надо менять числа (на экране LCD1602) от 0 до 100 000 и энкодером замучишься крутить в этом диапазоне. Если было это на кнопках, то там это легко решается временем удержания кнопки и изменением шага. Вот и с энкодером сейчас думаю как это реализовать - чтобы когда долго и быстро крутишь, шаг изменения чисел (должен быть задаваемым) был бы большим, а когда крутишь медленно - изменения чисел было по 1ед.
Или ещё как вариант (скорее всего его буду реализовывать) для изменения десятичного разряда числа использовать внутреннею кнопку энкодера - один раз нажал замигал младший разряд, ещё раз нажал кнопку перешёл к старшему разряду и т.д. "по кругу". Если при кручении (вверх/вниз) число в разряде превысило 0, то мигание (изменяемый разряд) переходит к старшему/младшему разряду. (пример работы https://youtu.be/hQSzAGt6iw8?t=324 с 5мин.24сек.)
Dryundel , нельзя ли что то подобное внедрить в этот блок энкодера?

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Энкодер Pro

#112

Сообщение Dryundel » 05.03.2023{, 00:13}

Abay1 писал(а):
04.03.2023{, 21:11}
Dryundel , нельзя ли что то подобное внедрить в этот блок энкодера?
Попробую реализовать чуть позже.

gorb
Рядовой
Сообщения: 1
Зарегистрирован: 25.03.2023{, 15:21}
Репутация: 0
Имя: Юрий

Энкодер Pro

#113

Сообщение gorb » 25.03.2023{, 15:25}

Блок работает с UNO и не работает с ESP8266 и ESP32. Что делать??? Библиотеки удалил, не помогает

baibradarBG
Рядовой
Сообщения: 12
Зарегистрирован: 26.12.2022{, 12:23}
Репутация: 0
Имя: Dimitar

Энкодер Pro

#114

Сообщение baibradarBG » 18.04.2023{, 20:06}

Версия 1.3 работает с ESP32. Версия 1.4 не работает с ESP32

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Энкодер Pro

#115

Сообщение Dryundel » 20.04.2023{, 10:58}

baibradarBG писал(а):
18.04.2023{, 20:06}
Версия 1.3 работает с ESP32. Версия 1.4 не работает с ESP32
Версия блока обновлена до Энкодер_Pro_V1.5

Новое в версии
- обновлена библиотека Encoder.h до 1.4.3
- Добавлен псевдо-абсолютный режим работы энкодера.
Энкодер_Pro_V1.5_(Code_-_Professional).ubi

.

oskar
Рядовой
Сообщения: 12
Зарегистрирован: 18.07.2022{, 22:36}
Репутация: 0
Имя: Евгений

Энкодер Pro

#116

Сообщение oskar » 10.08.2023{, 23:03}

Подскажите пожалуйста, нужно что бы счёт от 0 мог так же осуществляться с отрицательным значением по нарастанию
Например кручу вправо: 0,1,2,3,...и.т.д
Кручу влево : 0,-1,-2,-3,..и.т.д
Как это можно реализовать?

aidar_i
Полковник
Сообщения: 3122
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

Энкодер Pro

#117

Сообщение aidar_i » 11.08.2023{, 06:23}

oskar писал(а):
10.08.2023{, 23:03}
Подскажите пожалуйста, нужно что бы счёт от 0 мог так же осуществляться с отрицательным значением по нарастанию
Например кручу вправо: 0,1,2,3,...и.т.д
Кручу влево : 0,-1,-2,-3,..и.т.д
Как это можно реализовать?
Блок масштабирования.

oskar
Рядовой
Сообщения: 12
Зарегистрирован: 18.07.2022{, 22:36}
Репутация: 0
Имя: Евгений

Энкодер Pro

#118

Сообщение oskar » 11.08.2023{, 23:16}

Так, что то не догоняю как это сделать, наведите на мысль пожалуйста.
Сейчас блок работает так: ( если старт с 0)
Кручу вправо: 0,1,2,3..и.т.д
Кручу влево: 65535,65534,65533..и.т.д
Т.е при повороте влево он от большего значения идёт к меньшему
А как при помощи блока масштабирования сделать что бы он при повороте влево начинал считать с низких отрицательных значений по нарастающей не пойму

Garrison
Рядовой
Сообщения: 19
Зарегистрирован: 09.12.2015{, 21:54}
Репутация: 0
Откуда: Ярославль
Имя: Garrison

Энкодер Pro

#119

Сообщение Garrison » 27.08.2023{, 18:03}

Уважаемые знатоки, подскажите. Пытаюсь использовать этот блок на ESP 32 но вот незадача, если отрубить в настройках блока прерывания то вроде работает но естественно пропускает импульсы при быстром (рукой) вращении энкодера. А включаешь оптимизацию прерывания или "по умолчанию" контроллер после загрузки скетча ничего не делает. Вообще ничего, зависает похоже... Проект пробую пустой совершенно так что коллизии с другими библиотеками исключены вроде. Библиотека для энкодера 1.4.3 других в папке нет. Вот версия ядра для ESP 2.0.9 (в описании к блоку автор рекомендует 2.0.2) Заранее спасибо за советы.

З.Ы. Собственно откатил версию ядра до 2.0.2 посыпалась куча ошибок с "flprogUtilites.h" но блок энкодера с включёнными прерываниями заработал.

Irek
Рядовой
Сообщения: 9
Зарегистрирован: 06.06.2021{, 19:08}
Репутация: 0
Откуда: Дюртюли
Имя: Ирек

Энкодер Pro

#120

Сообщение Irek » 22.11.2023{, 09:53}

Добрый день! При проверке блока версии 1.5.1 для ESP32 в портативной версии FLPROG 8.2.3 после прошивки скетча есп не работает. постоянно мигает светодиод. версия блока 1.1 аналогично
Вложения
Электро.7z
(321.08 КБ) 12 скачиваний

Ответить

Вернуться в «Датчики и энкодеры»