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

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

Пользовательские блоки расширяющие базовый функуионал программы по работе с различными датчиками и энкодерами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
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 скачивания

bamik
Рядовой
Сообщения: 8
Зарегистрирован: 14.02.2018{, 01:20}
Репутация: 0
Имя: Андрей

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

#21

Сообщение bamik » 06.04.2018{, 07:22}

Есть маленькая ошибочка в коде. Если энкодер крутить ну ооочень быстро, то на выходах up и dn будут 1, как я понимаю. Защиты от дребезга тут нет, потому вполне возможна такая ситуация.
 ! Сообщение из: модератор
читаем правила размещения блоков
Последний раз редактировалось bamik 06.04.2018{, 09:23}, всего редактировалось 2 раза.

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

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

#22

Сообщение pan » 06.04.2018{, 08:24}

bamik писал(а):
06.04.2018{, 07:29}
то на выходах up и dn будут 1
не правильно понимаете. защита от дребезга (программная) считаю это самой не нужной вещью, она умышленно не делалась.
лишний код и заторможенность обработки.
далее, блок на одном прерывании и не предназначен для ооооочень быстрого вращения.
если вы переходили по ссылке с полным описанием, там есть схема, на которой указаны конденсаторы от дребезга.
с ними прекрасно работает.
по поводу центральной кнопки... я не нашел нужным добавлять лишний код в блок, поскольку центральная кнопка энкодера -
это просто обычная кнопка, которая может подавать как +питания так и - .

п.с. вверху красными буковками написаны правила, если не заметили.
свои блоки оформляйте отдельно.

bamik
Рядовой
Сообщения: 8
Зарегистрирован: 14.02.2018{, 01:20}
Репутация: 0
Имя: Андрей

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

#23

Сообщение bamik » 06.04.2018{, 09:22}

pan писал(а):
06.04.2018{, 08:24}
п.с. вверху красными буковками написаны правила, если не заметили.
свои блоки оформляйте отдельно.
Хорошо, так и сделаю. Просто думал, что это небольшое дополнение к Вашему проекту. В основе код Ваш.
ЗЫ: Кнопка является элементом конструкции, потому блок, описывающий эту конструкцию, по моему мнению должен содержать и обработку кнопки.
ЗЫЗЫ: Спасибо за разъяснения на счет дребезга. В других примерах такая защита тоже отсутствует.

Аватара пользователя
benic
Сержант
Сообщения: 175
Зарегистрирован: 07.01.2018{, 13:47}
Репутация: 4

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

#24

Сообщение benic » 05.10.2018{, 20:33}

Простой блок энкодера.
Подключать пины 3 и 4.
enc_inter_1_(CODE).ubi
(22.68 КБ) 182 скачивания

Аватара пользователя
ViktorPetrov
Лейтенант
Сообщения: 677
Зарегистрирован: 09.04.2018{, 23:56}
Репутация: 49
Имя: Виктор

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

#25

Сообщение ViktorPetrov » 05.10.2018{, 21:30}

Защита от механического дребезга контактов на триггере Шмитта (74HC14) ,кто нибудь использовал? Как насчет вот такого шилда?
СпойлерПоказать
триггере Шмитта 74HC14.jpg
Восстанавливает импульс по фронту и спаду

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

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

#26

Сообщение pan » 05.10.2019{, 21:11}

много раз просили сделать блок "быстрее"
но сделать при этом хоть немного универсальным на тот момент не получалось.

недавно пришло вдохновение :smile171:
и написал блок. пока только для "ардуин" на atmega328.
один пин как обычно обязательно с прерыванием, второй любой, при этом используется прямой доступ к регистрам.
поэтому результат должен быть не хуже чем в блоках на двух прерываниях
блок тут

Ответить

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