блок для Энкодера.

для отслеживания направления вращения и подсчета импульсов

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#1

Сообщение pan » 06.01.2018{, 21:58}

Изображение Изображение Изображение
*******************************************************************************************************************
блок отслеживает направление вращения энкодера, выдавая импульс на соответствующем выводе
так же есть блок в котором есть выход "count" на котором ведется подсчет количества "щелчков"
считает как в "+" так и в "-"

это значение можно "обнулить" подав сигнал на вход "zero"

в архиве блоки myENCDR2 и myENCDR3 работают абсолютно одинаково, разница лишь в реализации кода.

полное описание , работа и подключение есть здесь
с блоками есть небольшие примеры программ для теста.

в блоке есть настройки которые нужно установить "под себя"

номер прерывания - например для УНО , НАНО прерывание 0 - соответствует пину номер 2.
тоесть указав 0 в этом параметре, один из выводов энкодера нужно подключить ко 2 пину ардуино.
пины и прерывания некоторых платПоказать
Изображение
не путайте номер ПРЕРЫВАНИЯ с номером ПИНА

второй вывод энкодера подключается к любому цифровому пину и номер этого пина указывается во втором параметре.
Вложения
энкодер.zip
(29.1 КБ) 1063 скачивания

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#2

Сообщение pan » 25.01.2018{, 20:36}

обновил архив с блоками. добавлен блок с подсчетом "щелчков"
и входом сброса

oleg555506
Рядовой
Сообщения: 1
Зарегистрирован: 24.02.2018{, 22:15}
Репутация: 0
Имя: Олег

блок для Энкодера.

#3

Сообщение oleg555506 » 24.02.2018{, 22:27}

Здравствуйте, я новичок в Ардуино. Пробую сделать следующий проект.
1. Подключить инкрементальний енкодер с 400 шагами к Ардуино
2. После каждого полного оборота сбрасывать на ноль. 398>399>400>0>1 и так по кругу.
3. Иметь возможность в периоде шагов включать и виключать реле. Например от 150 до 200 включить реле.
4. Будет ли енкодер знать в каком он положение (на каком он шагу стоит) после обесточивание системы?

Скажите пожалуйста, можно сделать такое? Или, возможно кто то уже делал?

Заранее огромное спасибо!

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

блок для Энкодера.

#4

Сообщение Sancho » 24.02.2018{, 22:44}

oleg555506 писал(а):
24.02.2018{, 22:27}
Будет ли енкодер знать в каком он положение (на каком он шагу стоит) после обесточивание системы?
Если задействовать память. Но есть нюансы. По моменту запоминания. Есть на форуме.
Остальное -да.

Отправлено спустя 4 минуты 9 секунд:
Если попросить Алексея (pan), то он сделает Вам блок энкодера с входом reset. А дальше сами...

P.S. Понял. Вопрос снят. Дерзай.
Алексей, дай ссылку на блок, если не здесь.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#5

Сообщение pan » 24.02.2018{, 22:58}

Sancho писал(а):
24.02.2018{, 22:48}
с входом reset
так есть же

Аватара пользователя
belyx
Сержант
Сообщения: 247
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

блок для Энкодера.

#6

Сообщение belyx » 25.02.2018{, 17:31}

месяца 2 назад пробовал блок отсюда-он не пошёл,просто заменил на блок другого автора,
но вопрос почему?-остался
сегодня понял что ошибку допустил в разночтении описания блока
СпойлерПоказать
разночтения.jpg
может это исправить?

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#7

Сообщение pan » 25.02.2018{, 17:37}

belyx, спасибо за заметку. пока сюда добавлю скрин правильной таблицы

Отправлено спустя 3 минуты 30 секунд:
кстати у меня по двойному клику открывает нормальную таблицу. может старый блок?

Аватара пользователя
belyx
Сержант
Сообщения: 247
Зарегистрирован: 24.07.2016{, 20:38}
Репутация: 20
Откуда: Витебск Беларусь

блок для Энкодера.

#8

Сообщение belyx » 25.02.2018{, 18:03}

перепроверил-у меня со смещением(flprog 2.5.1)

texbez
Лейтенант
Сообщения: 355
Зарегистрирован: 20.11.2016{, 19:57}
Репутация: 9
Откуда: Ростов на дону

блок для Энкодера.

#9

Сообщение texbez » 25.02.2018{, 21:36}

Скачал архив но там как был один блок так и есть,нет блока с подсчётом.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#10

Сообщение pan » 25.02.2018{, 22:01}

там 3 блока. удалите если установлен и добавьте заново
будет вот такПоказать
Изображение

texbez
Лейтенант
Сообщения: 355
Зарегистрирован: 20.11.2016{, 19:57}
Репутация: 9
Откуда: Ростов на дону

блок для Энкодера.

#11

Сообщение texbez » 25.02.2018{, 22:17}

Старый удалял и вставлял как у вас всё равно один файл,т.е. без папки.В архиве просто да файла всего,один с примером, другой сам блок.Может ссылка на старый блок?

Отправлено спустя 3 минуты 26 секунд:
texbez писал(а):
25.02.2018{, 22:17}
Старый удалял и вставлял как у вас всё равно один файл,т.е. без папки.В архиве просто да файла всего,один с примером, другой сам блок.Может ссылка на старый блок?
Всё разобрался,извеняюсь-разархивировал не в ту папку.Вопрос снят.
Спасибо!

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

блок для Энкодера.

#12

Сообщение KulibinOrsk » 15.03.2018{, 08:30}

Насколько я понял то блок работает?
Подскажите что я сделал не так, скрин прилагаю.
При этом блок от автора работает и на дисплее выводит показания энкодера.
Вложения
Encoder_err.jpg

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#13

Сообщение pan » 15.03.2018{, 08:41}

KulibinOrsk,
да, блок рабочий. в описании есть ссылка на тему в форуме
зачем конвертировать в строку логическую "1" с выходов up и dn . там просто импульсы длительностью в цикл программы. это первое.
далее, два блока не факт что будут работать вместе. они используют (должны использовать) пины с прерываниями.
в архиве есть небольшой пример для теста

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

блок для Энкодера.

#14

Сообщение KulibinOrsk » 15.03.2018{, 10:14}

Невнимательно я посмотрел. Оказывается для платы NANO(328) не прописан блок. А я эксперименты пока на ней ставлю. В качестве входов выбирал входа с прерываниями 2 и 3.
Насчет конвертации up dn - просто хотел вывести на ЖК чтобы видеть как определяет направление вращения.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#15

Сообщение pan » 15.03.2018{, 10:21}

KulibinOrsk писал(а):
15.03.2018{, 10:14}
Оказывается для платы NANO(328) не прописан блок
кто такое сказал? НАНО считай что УНО. не важно какая плата.
KulibinOrsk писал(а):
15.03.2018{, 10:14}
В качестве входов выбирал входа с прерываниями 2 и 3.
если речь о моём блоке то читайте 1пост, что нужно указывать в настройках блока.
KulibinOrsk писал(а):
15.03.2018{, 10:14}
Насчет конвертации up dn - просто хотел вывести на ЖК чтобы видеть как определяет направление вращения.
лучше использовать счетчик (как в примере) и будет видно прибавляет он или вычитает.
если блок с выходом "count" то там и так будет видно, увеличивается число или уменьшается

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

блок для Энкодера.

#16

Сообщение KulibinOrsk » 15.03.2018{, 11:12}

pan, Еще раз все перепроверил и осмелюсь заявить что не работает ваш блок. В частности проверял myENCDR3. Проверяю все в железе. Блок автора работает, а ваш нет. В блоке автора нет направления потому стал ваш пробовать. Проверьте пожалуйста блок.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#17

Сообщение pan » 15.03.2018{, 11:33}

блок проверен сто раз.
вы кстати по какой схеме подключали?
тут все написано http://forum.flprog.ru/viewtopic.php?f=19&t=2578

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

блок для Энкодера.

#18

Сообщение KulibinOrsk » 15.03.2018{, 11:44}

Читал я тему по ссылке. Подключение простое: сигнал А на пин D2 (int0) сигнал В на пин D3(int1).
Энкодер 1024 импульса на оборот. Необходимо получать количество импульсов и направление вращения.
Блок автора работает. Ваш не хочет... На дисплее всегда выводит=0.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

блок для Энкодера.

#19

Сообщение pan » 15.03.2018{, 11:48}

если используете пины 2 и 3 то в настройках должно быть 0 и 3
Изображение

Отправлено спустя 5 минут 40 секунд:
возможно еще проблемы из-за большого количества импульсов на 1 оборот. блок делался для самого простого, чтоб управлять менбшкой или переменными

KulibinOrsk
Лейтенант
Сообщения: 515
Зарегистрирован: 25.02.2018{, 08:48}
Репутация: 21
Откуда: Оренбург
Имя: Александр

блок для Энкодера.

#20

Сообщение KulibinOrsk » 15.03.2018{, 12:06}

"В настройках должно быть 0 и 3" - действительно ЗАРАБОТАЛО. Но считает очень медленно. Он реально только для менюшек. Не успевает все импульсы фиксировать.Не внимательно я смотрел. Пинайте меня, но не сильно :senile:
Но по моему эту путаницу лучше убрать - номер прерывания-номер пина. Делать так уж или пины или прерывания. Как в блоке автора.
А не могли бы ВЫ в блок автора добавить определение направления ?

Ответить

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