Страница 6 из 7

Энкодер Pro

Добавлено: 10.09.2021{, 13:57}
Dryundel
Если возникли проблемы с компиляцией Читай пост #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 КБ) 16005 просмотров
Актуальная версия.
.
Энкодер_Pro_V1.5_(Code_-_Professional).ubi
- обновлена библиотека Encoder.h до 1.4.3
- Добавлен псевдо-абсолютный режим работы энкодера.
.
История версий.
.
Энкодер_Pro_V1.4_(Code_-_Professional).ubi
(2.44 МБ) 218 скачиваний
Добавлена возможность ограничения счета вверх и вниз.
.
Энкодер_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 КБ) 222 скачивания
Данный релиз является бета-версией и будет дорабатываться, хотя и полностью работоспособен.
.
Краткое описание:

Энкодер 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 КБ) 16005 просмотров
.
Настройки:

- 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 КБ) 16005 просмотров
.
- Входы Значение предустановки (VP, VP1, VP2, VP3, VP4) - появляются при установленной настройке "Вход предустановки Preset/PresetAll". При высоком логическом уровне на Preset/PresetAll выходы "Count" примут соответствующее значение.
EncPro_Preset.jpg
EncPro_Preset.jpg (21.23 КБ) 16005 просмотров
.

Энкодер Pro

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

Энкодер Pro

Добавлено: 12.11.2022{, 12:52}
starik3000
Я заранее дико извиняюсь.

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

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

Энкодер Pro

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

Энкодер Pro

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

Энкодер Pro

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

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

Энкодер Pro

Добавлено: 22.12.2022{, 15:59}
MM33
starik3000,
попробуйте блок во вложении. считает с удвоением. т.е при датчике на 2500 имп/об выдает 5000 отсчетов.
Вероятно на больших скоростях начнет глючить из за того что я не знаю как на ESP 8266 организовано прямое чтение регистра, а digital Read медленная процедура.
Чтобы использовать в проекте несколько раз придется редактировать блок, изменяя входа .
В блоке сейчас стоят пины D1 и D2.

Энкодер Pro

Добавлено: 23.12.2022{, 09:48}
MM33
starik3000,
прошу прощения, вчера прицепил не тот файл. исправляюсь, см вложение

Энкодер Pro

Добавлено: 23.12.2022{, 09:50}
starik3000
MM33,
Спасибо

Энкодер Pro

Добавлено: 04.03.2023{, 20:01}
Dryundel
Версия блока обновлена. первый пост
Добавлена возможность ограничения счета вверх и вниз.

Энкодер Pro

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

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

Энкодер Pro

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

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

Энкодер Pro

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

Энкодер Pro

Добавлено: 25.03.2023{, 15:25}
gorb
Блок работает с UNO и не работает с ESP8266 и ESP32. Что делать??? Библиотеки удалил, не помогает

Энкодер Pro

Добавлено: 18.04.2023{, 20:06}
baibradarBG
Версия 1.3 работает с ESP32. Версия 1.4 не работает с ESP32

Энкодер Pro

Добавлено: 20.04.2023{, 10:58}
Dryundel
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

.

Энкодер Pro

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

Энкодер Pro

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

Энкодер Pro

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

Энкодер Pro

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

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

Энкодер Pro

Добавлено: 22.11.2023{, 09:53}
Irek
Добрый день! При проверке блока версии 1.5.1 для ESP32 в портативной версии FLPROG 8.2.3 после прошивки скетча есп не работает. постоянно мигает светодиод. версия блока 1.1 аналогично