Перейти к содержанию

Опрос Валкодера


Рекомендуемые сообщения

Все привет!

Вопрос такой:

В системе стоит механический валкодер. Опрашиваю его я вот так

signed char ReadEncoder(void)

{

register signed char temp = 0;

encoder = (~PIN_Coder & 0x03);//i?iaa?yai PD0,PD1

if(status != encoder)

{

switch(encoder)

{

case 0:

if(status == 1) temp = 1;

else if(status == 2) temp = -1;

break;

case 1:

if(status == 3) temp = 1;

else if(status == 0) temp = -1;

break;

case 2:

if(status == 0) temp = 1;

else if(status == 3) temp = -1;

break;

case 3:

if(status == 2)temp = 1;

else if(status == 1) temp = -1;

break;

}

status = encoder;

}

return temp;

}

Єту программку скачал с нета. При медленном вращении валкодера показания на индикаторе меняются стабильно, а при быстром вращении - не изменяются.

Похоже на дребезг контактов. Как можно от этого избавиться?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Какая максимальная частота следования импульсов?

Валкодеры, их два, подключены по такой схеме

post-7136-1195111063_thumb.jpg

Длительность строба 2 мс

Вместе с валкодерами подключены и кнопки. Валкодеры опрашиваются, когда на их средний вывод приходит "0".

Опрос валкодера, если незадействованы кнопки 1раз в 12 мс

Ссылка на комментарий
Поделиться на другие сайты

Вряд ли это из-за дребезга. Скорей всего слишком редкий опрос. По хорошему сигналы от валкодёра надо сажать на прерывания. Если не позволяет железо, тогда просто сделай чаще опрос. К сожалению, в Си не шарю и с кодом помочь не смогу....

Ссылка на комментарий
Поделиться на другие сайты

А на какой частоте у вас работает процесор? Дело в том что чем выше частота - там выше скорость... Если непзволяет скорость процесора - то можно часть собрать на логике и выход подать на счётчики реверсные а процесором уже высчитывать смещение с прошлого и актуального состояния счётчика...

Ссылка на комментарий
Поделиться на другие сайты

А ограничения по скорости опроса есть? Я имею в виду максимум.

Да по идее, ограничений нет. Но наверно есть смысл делать это в разумных пределах, ведь МК ещё какими-то делами должени заниматься.

Надо просто опытным путём найти достаточную частоту опроса.

Вот смотрел на приведённый тобой код... Логика там примерно такая:

1) считывается состояние порта PD, оставляются младшие два бита, остальные обнуляются, результат сохраняется в переменной encoder

2) encoder сравнивается с status, в которой храниться предыдущее состояние. Если изменений нет, то выход из процедуры.

3) дальше идет ветвление в зависимости от значения encoder на case 0 ... case 3. И в каждом case переменной temp присваевается 1 или -1 в зависимости от status.

4) в конце в status пишется encoder.

В каждом case проверяются два соседних состояния. Если вращать так, что одно состояние не будет успевать считываться, то ничё меняться и не будет. Кстати, если умудриться вращать так быстро, что будут пропускаться 4 состояния, то считать начнёт в противоположную сторону.

Изменено пользователем YurkaM
Ссылка на комментарий
Поделиться на другие сайты

Опрос валкодера, если незадействованы кнопки 1раз в 12 мс

Сам по себе период опроса мало о чём говорит, нужно его сравнивать с частотой смены кода валкодера. Но чисто интуитивно 12мс (чуть меньше 100Гц) это очень мало.

Ссылка на комментарий
Поделиться на другие сайты

я это уже во втором посту советовал, никто валкодеры на контактах не делает, дребезг будет большой, хотя есть схемы подавляющие любой дребезг но частота опроса из-за схем антидребезга упадёт до 10 Гц

на оптике, правдо не на мк а на логике, я делал до 2000 оборотов/мин раскручивал дрель с лепестком всё отлично работает, оно бы и быстрее работало только движка такого нет

Изменено пользователем rizz
Ссылка на комментарий
Поделиться на другие сайты

Кодеры с контактами могут работать только на низких частотах... Если глючит - то как пишут вверху - надо переходить на оптику... Кстати это главная проблема колеса на некоторых мышках - там кодер механический и от этого все глюки...

Ссылка на комментарий
Поделиться на другие сайты

Датчики от мыши - дёшево и сердито. Согласен. Ещё лучше использовать их вместе с родной схемой, правда надо будет научить МК общаться с мышью.

А вот что

никто валкодеры на контактах не делает
не совсем согласен. Сколько хочешь механических. Например, в MiniDisc-проигрывателях, в DJ-ских пультах (невысокой ценовой категории), да и в тех же мышках колёсико часто с механическими контактами. Главный недостаток механики (имхо) - быстрый износ, а вовсе не дребезг. Надо просто нормально писать программу обработки валкодёра и всё будет тик-так.
Ссылка на комментарий
Поделиться на другие сайты

Ну так ведь именно от износа - плохой контакт и соответственно страшо дребезжит - я проверял осцилографом - износ = дребезг причём у меня дребезг отстраняется 8 тригерами... Там проблема да не в том что дребезг а втом что дребезг и сопротивление прыгает.. а с этим уже никто неможет бороться :)

Ссылка на комментарий
Поделиться на другие сайты

>>и сопротивление прыгает

это уже шорох, вобще фиг уберёшь

помоему механика более сложна в исполнении и установке на месте, поэтому более дорогая, плюс оптимизация программы/схемы под дребезг, плюс износ, загрязнения.. у оптики всех этих недостатков нет, кроме загрязнений если она не загерметизирована

Ссылка на комментарий
Поделиться на другие сайты

Всё это понятно. Но проблема у автора была в следующем:

...При медленном вращении валкодера показания на индикаторе меняются стабильно, а при быстром вращении - не изменяются.

Если бы это был дребезг, то значение менялось бы хаотически и в разные стороны. Поэтому просто заменить механику на оптику ничего не даст (если частоты смены кода в обоих вариантах близки). Так что ИМХО, в первую очередь надо довести софт до ума.

ps: Если есть значительный запас по тактовой МК, можно для проверки "гипотезы" о недостаточной частоте опроса, попробовать

повысить тактовую МК раза в 1.5...2, если конечно основная прога позволит такой эксперимент.

Изменено пользователем YurkaM
Ссылка на комментарий
Поделиться на другие сайты

Так ведь в том линке который я выкладывал выше написано как человек росщитал максимальную частоту для своего камешка - кто вам мешает пощитать это применительно к своему???

Ссылка на комментарий
Поделиться на другие сайты

К кому, собсственно, вопрос? :huh:

На счёт ссылки... Оно конечно интересно, но не факт, что автор темы "на ты" с английским.

А я предложил простейший способ (поменять кварц - 1минута). Если увеличив клок, получим глюки, - никаких полезных выводов из этого не следует. Зато если получим стабильный результат на бОльших скоростях вращения, чем раньше, - однозначно проблема в частоте опроса.

Ссылка на комментарий
Поделиться на другие сайты

Всем привет.http://forum.cxem.net/style_emoticons/default/rolleyes.gif

http://forum.cxem.net/style_emoticons/default/rolleyes.gif

Полностью поддерживаю валкодер оптический из мыши.

Сейчас делаю счетчик оборотов на МК PIC. Так вот эти обороты считаю валкодером, после него

стоит логика, потом импульсы поступают на вход МК на делитель с нужным коэфф. деления и т.д...

Вариантов в ИНЕТЕ много - выбирай нужный. Я в окне поисковика набрал слово "валкодер"

получил более 500 ссылок.http://forum.cxem.net/style_emoticons/default/biggrin.gif

http://forum.cxem.net/style_emoticons/default/biggrin.gif

Ссылка на комментарий
Поделиться на другие сайты

Я тут провёл один эксперимент. На макетке собрал схему: ATmega16, валкодер, индикация, кварц на 16 МГц. Валкодер подсоединил так: Выводы А и В на PA2 и PA3, средний вывод на землю.

Код привожу, если кому-то интересно.

Результаты такие: энкодер начал нормально работать , не так , как в предыдущих постах.

Начал эксперементировать с задержкой. До 2мс энкодер работает хорошо, потом начинаются глюки.

Теперь хочу посадить средний вывод на стробирование. Результаты отпишу позже.Valcoder.rar

Ссылка на комментарий
Поделиться на другие сайты

Провёл следующий эксперимент.

Результаты те же, при опросе 1р в 10 мс и выше - глюки, ниже - лучше. Вывод сделал такой: средний вывод валкодера нужно цеплять только на землю!!

Ссылка на комментарий
Поделиться на другие сайты

Вывод какой-то ... типа методом научного тыка - работает вроде и ладно. А причины неинтересно выяснить?

А может в варианте со стробом у тебя между выставлением строба и считыванием слишком мала задержка? Или её ВООБЩЕ НЕТУ?! и читаешь в следующем такте МК???

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...