FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Понедельник, 23.10.2017, 16:44
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 4 из 4«1234
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Энкодер KY-040
Энкодер KY-040
Слимпер Дата: Воскресенье, 10.07.2016, 11:00 | Сообщение # 46
Генерал-лейтенант
Группа: Проверенные
Сообщений: 973
Награды: 54
Репутация: 41
Статус: Online
Цитата DWD ()
Так что не малую роль играет алгоритм обработки.
Ну алгоритм я не сам придумал, скопировал из статьи 
AVR. Учебный Курс. Инкрементальный энкодер.
Но так как в прерываниях я не очень хорошо понимаю, то поискав остановился на библиотеки TimerOne.   

Цитата DWD ()
По этому, показывая свой вариант программы обработки того же энкодера, нужно обязательно указывать и его марку. Для сравнения и анализа.
А на нем не чего не написано, но если судить по картинкам, то вроде "Энкодер KY-040".

К тому же для возможности подстройке под свой, есть два настраиваемых параметра.
 
DWD Дата: Воскресенье, 10.07.2016, 11:23 | Сообщение # 47
Подполковник
Группа: Проверенные
Сообщений: 299
Награды: 14
Репутация: 5
Статус: Offline
Цитата Слимпер ()
Ну алгоритм я не сам придумал, скопировал из статьи

Тем более! В этом случае не учитывается ещё один параметр - программная среда. :)
Ведь одно дело написать прогу на Асме, и совсем другое - на С или FLP.

Цитата Слимпер ()
остановился на библиотеки TimerOne.

Мне лично не подходит Ваш вариант из-за запрета использования ШИМ аж с двух выходов.
Я в последнее время всё больше сталкиваюсь с нехваткой портов... :(

Цитата Слимпер ()
А на нем не чего не написано

Согласен. Свои знаю только потому, что покупал... :)
Ну, тогда, хотя бы, фотку внешнего вида приводить.
В общем, мне кажется, чего-то универсального наверно не получится.




Сообщение отредактировал DWD - Воскресенье, 10.07.2016, 11:24
 
Слимпер Дата: Воскресенье, 10.07.2016, 13:14 | Сообщение # 48
Генерал-лейтенант
Группа: Проверенные
Сообщений: 973
Награды: 54
Репутация: 41
Статус: Online
Цитата DWD ()
В общем, мне кажется, чего-то универсального наверно не получится.
Полностью согласен, и даже не претендую на универсальность.
Делал исходно для себя, но решил выложить, может еще кому пригодится.

Цитата DWD ()
Мне лично не подходит Ваш вариант из-за запрета использования ШИМ аж с двух выходов.Я в последнее время всё больше сталкиваюсь с нехваткой портов... :(
Ну тут особенность работы с использовании прерывания по таймеру. 
Использование TimerOne приводит к тому, что нельзя использовать штатный Arduino ШИМ.
А сама библиотека позволяла реализовать другой ШИМ, сделал Блок и такой блок (ссылку давал выше).
Так что ШИМ на этих выходах использовать можно, но это будет шим с другими параметрами. 
 
Naladchik Дата: Воскресенье, 17.07.2016, 16:40 | Сообщение # 49
Майор
Группа: Проверенные
Сообщений: 164
Награды: 2
Репутация: 1
Статус: Offline
Цитата DWD ()
Ещё один вариант подключения энкодера. Наверное, самый простой. :)
Действительно самый простой и работоспособный, но есть существенный минус, теряет половину "щелчков" энкодера.
Конечно это можно обойти параллельным включением двух счетчиков, на входа одного из них подавая прямые сигналы а на входа другого инвертированные с последующим суммированием результатов но тут сразу возникают сложности с предустановкой и реализацией верхней и нижней границ счета.


Предпочитаю Portable версию.
 
DWD Дата: Воскресенье, 17.07.2016, 18:56 | Сообщение # 50
Подполковник
Группа: Проверенные
Сообщений: 299
Награды: 14
Репутация: 5
Статус: Offline
Naladchik, какой энкодер использовали?
Как подключали к Ардуино (подтягивающие резисторы, фильтрующие цепочки)?
Как программно считали и фиксировали импульсы?


 
Naladchik Дата: Воскресенье, 17.07.2016, 19:23 | Сообщение # 51
Майор
Группа: Проверенные
Сообщений: 164
Награды: 2
Репутация: 1
Статус: Offline
DWD, Энкодер обычный, KY-040, тот, что уже на плате распаян. Никаких фильтров и подтяжек не использовал, так как на плате уже свои подтяжки стоят. Подключение к 2 и 3 входам
Цитата DWD ()
Как программно считали и фиксировали импульсы?
А вот тут вопрос не понятен. Если про Ваш вариант с подключению к обычному счетчику то им и считал. Если вопрос про сам энкодер, то у него 30 фиксируемых положений, 60 состояний.


Предпочитаю Portable версию.


Сообщение отредактировал Naladchik - Воскресенье, 17.07.2016, 19:29
 
DWD Дата: Воскресенье, 17.07.2016, 20:42 | Сообщение # 52
Подполковник
Группа: Проверенные
Сообщений: 299
Награды: 14
Репутация: 5
Статус: Offline
Цитата Naladchik ()
Никаких фильтров и подтяжек не использовал, так как на плате уже свои подтяжки стоят.

Судя по фоткам - подтяжка стоит, но фильтров нет. А должны быть.
Вот типовая схема включения, рекомендованная производителем:

На Ардуино сигнал подаётся через фильтрующую RC цепочку (10КОм, 0,01мкФ).
Без этой цепочки у меня любой энкодер сбоит.

Цитата Naladchik ()
А вот тут вопрос не понятен. Если про Ваш вариант с подключению к обычному счетчику то им и считал.

Это понятно. Имелось в виду, чем смотрели импульсы?
Я, например, состояние счётчика выводил на дисплей и вращая ручку, смотрел как чередуются цифры при медленом или быстром вращении.


 
Naladchik Дата: Воскресенье, 17.07.2016, 21:06 | Сообщение # 53
Майор
Группа: Проверенные
Сообщений: 164
Награды: 2
Репутация: 1
Статус: Offline
Цитата DWD ()
Без этой цепочки у меня любой энкодер сбоит.
Я и хотел добиться того, чтобы без дополнительных элементов получить приемлемую работу энкодера.
Энкодер KY-040 для чего то серьезного явно не годится, а вот для выбора позиции меню на дисплее в самый раз.
Цитата DWD ()
Я, например, состояние счётчика выводил на дисплей и вращая ручку, смотрел как чередуются цифры при медленом или быстром вращении.
Я контролировал точно так же.

В итоге после всех моих экспериментов и переделки блоков Слимпера родил свой вариант (для меня конечный).
Суть в использовании прерываний по входам 2 и 3, т.е. выходы энкодера CLK и DT могут подключаться только на эти входа ардуинки, зато вполне приличное быстродействие и четкость позиционирования. Лично меня устраивает. Сделал в 3х вариантах: вывод значения позиции с пред установкой, значение с пред установкой и направлением вращения и с использованием библиотеки CyberLib.
Любопытная библиотека. Тому, кто гонится за быстродействием стоит обратить внимание.
Прикрепления: _2.rar(375Kb)


Предпочитаю Portable версию.


Сообщение отредактировал Naladchik - Воскресенье, 17.07.2016, 21:35
 
Dryundel Дата: Суббота, 03.06.2017, 12:53 | Сообщение # 54
Сержант
Группа: Проверенные
Сообщений: 32
Награды: 1
Репутация: 0
Статус: Offline
Цитата Слимпер ()
В сообщении №37 я выкладывал блок энкодера, но когда сам его протестировал в реальном проекте понял, что если есть что то кроме самого энкодера, то уже начинаются проблемы.По этому пришлось делать другой блок, работающий на прерываниях по таймеру, так что от величины программы его работа не зависит.

Идея очень даже не плохая.

Цитата Слимпер ()
DT , CLK - номера пинов подключенных одноименные выхода энкодера (можноиспользовать любые пины)

А возможно ли использовать для этого аналоговые пины и если да, то как?
 
Слимпер Дата: Суббота, 03.06.2017, 13:07 | Сообщение # 55
Генерал-лейтенант
Группа: Проверенные
Сообщений: 973
Награды: 54
Репутация: 41
Статус: Online
Dryundel
Цитата Dryundel ()
А возможно ли использовать для этого аналоговые пины и если да, то как?
Давно делал, сейчас уже не помню проверял или нет.
Но по идеи должно работать.
А использовать можно так? на UNO и им подобным платам в коде аналоговые входа можно  использовать задавая в место них следующие коды:
 Вот эти коды и надо попробовать подставить в настройках блока.
 
Форум » Основной » Спросить у знатоков » Энкодер KY-040
Страница 4 из 4«1234
Поиск:

FLProg © 2017
Яндекс.Метрика