Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Можно и покликать по рекламным ссылкам, так будут больше выплаты. Спасибо за понимание!

Набор блоков ЭНКОДЕР

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

Набор блоков ЭНКОДЕР

#1

Сообщение Dryundel » 13.03.2019{, 23:00}

Сколько ни пытался найти удовлетворяющий меня блок энкодера, не получилось.
Выкладываю свои варианты. Здоровая критика приветствуется.
1.jpg
Скачать все одним архивом:
Энкодеры от Dryundel.ubl
(664.68 КБ) 777 скачиваний
Блоки написаны на основе библиотеки Encoder.h
Могут работать на любых пинах, но на пинах поддерживающих прерывание результат самый лучший.
***
Энкодер_импульсный_v1.0_(CODE).ubi
(119.81 КБ) 349 скачиваний
Энкодер_импульсный_v1.1_(CODE).ubi
(135.99 КБ) 478 скачиваний
2.jpg
2.jpg (6.11 КБ) 13321 просмотр
Эти два блока выдают тики на выходах Up и Down (Вперед / Назад)
Отличие Энкодер_импульсный_v1.1 в том, что в нем можно настроить количество импульсов выдаваемых энкодером за один физический шаг.

Описание:
Энкодер_импульсный_v1.0
СпойлерПоказать
Энкодер импульсный 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

Энкодер_импульсный_v1.1
СпойлерПоказать
Энкодер импульсный 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

Другие блоки для энкодера:
Тестер для энкодера
Блок энкодера для одноуровневого меню
Последний раз редактировалось Dryundel 02.09.2019{, 18:30}, всего редактировалось 2 раза.
Пользовательские блоки на сайте FLPROG - BLOCK

Аватара пользователя
Nikan
Майор
Сообщения: 1129
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 87
Откуда: москва

Набор блоков ЭНКОДЕР

#101

Сообщение Nikan » 29.11.2020{, 17:11}

GDAN7777 писал(а):
29.11.2020{, 16:40}
В нормальной версии нет.Все еще пробное.Не знаю,как правильно организовать скелет программы.
это значит не выше фл 6.3
далее, если сравнить картинки двух проектов - то видно, что в первом случае блок меню в цикле будет работать постоянно (вход EN =1)
во втором только по событию с обработчика кнопок. так же не понятно как выводит блок изображение на дисплей, если по изменению переменной один вопрос, если постоянно второй.
GDAN7777 писал(а):
29.11.2020{, 16:40}
Это в ассемблере сделать легко,а здесь???
открыть библу энкодера и вставить ассемблерную вставку на вызов (там таких много)

com
Лейтенант
Сообщения: 440
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 39
Откуда: Тюмень
Имя: Ринат

Набор блоков ЭНКОДЕР

#102

Сообщение com » 07.12.2020{, 20:05}

Похоже, два блока энкодера под один энкодер, в одном проекте не уживаются, даже если пины без прерываний
Вложения
ошибка.flp
(3.26 МБ) 18 скачиваний

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

Набор блоков ЭНКОДЕР

#103

Сообщение Dryundel » 07.12.2020{, 20:52}

com писал(а):
07.12.2020{, 20:05}
Похоже, два блока энкодера под один энкодер, в одном проекте не уживаются, даже если пины без прерываний
Все работает.
В первую очередь ищите ошибку у себя.
Будьте внимательней в проектах.

Вы сделали подтяжку кнопки!
Соответственно:
1. Надо замыкать кнопку на землю.
2. Надо инвертировать выход кнопки в проекте.
Пользовательские блоки на сайте FLPROG - BLOCK

com
Лейтенант
Сообщения: 440
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 39
Откуда: Тюмень
Имя: Ринат

Набор блоков ЭНКОДЕР

#104

Сообщение com » 07.12.2020{, 21:56}

Кнопку не инвертировал, да, верно замечено, но не помогает.
Вложения
энкодер.mp4
(3.16 МБ) 28 скачиваний

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

Набор блоков ЭНКОДЕР

#105

Сообщение Dryundel » 07.12.2020{, 22:00}

com писал(а):
07.12.2020{, 21:56}
Кнопку не инвертировал, да, верно замечено, но не помогает.
Реально?
А у меня ваш проект отлично работает.
Прям не знаю что и посоветовать.
:)
Пользовательские блоки на сайте FLPROG - BLOCK

com
Лейтенант
Сообщения: 440
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 39
Откуда: Тюмень
Имя: Ринат

Набор блоков ЭНКОДЕР

#106

Сообщение com » 07.12.2020{, 22:08}

Dryundel, Возможно косяки в энкодере, не знаю. Придется искать другой путь.
P.S В моем варианте получается так, энкодером набираю цифру на первой строчке до 6, при переключении на вторую строчку, показания на второй строчке увеличивается тоже на 6. Тоесть, второй блок отсчитывает наравне с первым и при переключении выводит эти показания. Хотя блок энкодера не считающий?! Странно.
Последний раз редактировалось com 07.12.2020{, 22:16}, всего редактировалось 1 раз.

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

Набор блоков ЭНКОДЕР

#107

Сообщение Dryundel » 07.12.2020{, 22:15}

com писал(а):
07.12.2020{, 22:08}
Dryundel, Возможно косяки в энкодере, не знаю. Придется искать другой путь
Нет. Перепроверил. Действительно есть глюк. Посмотрим.
Пользовательские блоки на сайте FLPROG - BLOCK

com
Лейтенант
Сообщения: 440
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 39
Откуда: Тюмень
Имя: Ринат

Набор блоков ЭНКОДЕР

#108

Сообщение com » 07.12.2020{, 22:19}

А так, если блок один, то работает изумительно в паре с лсд блоком.

Аватара пользователя
ElectronicRTC
Рядовой
Сообщения: 39
Зарегистрирован: 09.07.2019{, 06:13}
Репутация: 4
Откуда: Москва
Имя: Евгений

Набор блоков ЭНКОДЕР

#109

Сообщение ElectronicRTC » 17.12.2020{, 05:01}

Dryundel, подскажите ваши блоки можно скорректировать под работу с инкрементальным энкодером типа этого: https://aliexpress.ru/item/400112214010 ... hweb201603_
полагаю что не только мне интересен
Промышленная электроника и оборудование

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

Набор блоков ЭНКОДЕР

#110

Сообщение Dryundel » 17.12.2020{, 08:54}

ElectronicRTC писал(а):
17.12.2020{, 05:01}
Dryundel, подскажите ваши блоки можно скорректировать под работу с инкрементальным энкодером типа этого: https://aliexpress.ru/item/400112214010 ... hweb201603_
полагаю что не только мне интересен
Зависит от частного случая. Пишите в личку ваш запрос.
Пользовательские блоки на сайте FLPROG - BLOCK

noanylag
Рядовой
Сообщения: 22
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

Набор блоков ЭНКОДЕР

#111

Сообщение noanylag » 13.01.2021{, 00:19}

shura2 писал(а):
16.09.2020{, 21:55}
походу блок вешает еспешку.
То же самое...На ESP8266 блоки не работают . :(

noanylag
Рядовой
Сообщения: 22
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

Набор блоков ЭНКОДЕР

#112

Сообщение noanylag » 16.01.2021{, 18:03}

noanylag писал(а):
13.01.2021{, 00:19}
shura2 писал(а):
16.09.2020{, 21:55}
походу блок вешает еспешку.
То же самое...На ESP8266 блоки не работают . :(
Понимаю, что нужно применить " ICACHE_RAM_ATTR ", но не знаю как. Недостаточно знаний... Пробовал в энкодере без использования библиотеки - работает,ESPшка перестала вешаться.

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

Набор блоков ЭНКОДЕР

#113

Сообщение starik3000 » 17.01.2021{, 20:45}

noanylag,

этот работает
Вложения
Encoder_Wemos_(Code_-_Basic).ubi
(404.04 КБ) 45 скачиваний

noanylag
Рядовой
Сообщения: 22
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

Набор блоков ЭНКОДЕР

#114

Сообщение noanylag » 18.01.2021{, 23:00}

starik3000 писал(а):
17.01.2021{, 20:45}
noanylag,

этот работает
Что то не загружается - выдает ошибку при попытке загрузить в "пользовательские"...

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

Набор блоков ЭНКОДЕР

#115

Сообщение starik3000 » 18.01.2021{, 23:32}

noanylag,
Вложения
samokatknopka.flp
(512.42 КБ) 29 скачиваний

noanylag
Рядовой
Сообщения: 22
Зарегистрирован: 24.04.2017{, 02:18}
Репутация: 0

Набор блоков ЭНКОДЕР

#116

Сообщение noanylag » 19.01.2021{, 20:46}

starik3000 писал(а):
18.01.2021{, 23:32}
noanylag,
СпойлерПоказать
error.jpg
error.jpg (22.75 КБ) 365 просмотров

Аватара пользователя
Pratak
Сержант
Сообщения: 185
Зарегистрирован: 08.02.2016{, 20:21}
Репутация: 6
Откуда: Севастополь
Контактная информация:

Набор блоков ЭНКОДЕР

#117

Сообщение Pratak » 23.02.2021{, 18:44}

starik3000 писал(а):
17.01.2021{, 20:45}
этот работает
Что то у меня нажатие не работает, хотя мультиметром проверил - кнопка исправна. Кто нибудь сталкивался?
Нет подписи.

Ответить

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