Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 375
Репутация: 71
|
Может уважаемые знатоки микроконтроллерной техники подскажут, как организовать опрос валкодера? Например, есть валкодер, на выходах которого при вращении вала появляются прямоугольные импульсы, сдвинутые по фазе в ту или иную сторону в зависимости от направления вращения вала. Ну, заведу я эти сигналы на ножки микроконтроллера, а дальше что с ними делать?
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 375
Репутация: 71
|
Хорошо, поставлю вопрос по другому. Как избавиться от необходимости постоянно опрашивать состояние выходов валкодера? Пока что вижу только один путь, в ходе выполнения программы зашитой в микроконтроллер периодически переходить в подпрограмму опроса состояния выходов валкодера, и при если уровни на них меняются, определить последовательность изменения уровней из чего определим направление вращения вала, а затем считать количество изменений, что будет соответствовать углу поворота (или скорости вращения вала). Но, такой способ сожрет немало ресурсов, отнимая их от выполнения контроллером более важных задач. Если учесть, что мне требуется еще опрос клавиатуры, обращение к АЦП и портам, некоторые математические вычисления,боюсь, у контроллера сил не хватит на все Как же все таки организовать считывания данных с валкодера?
|
||
Оценка
|
Гуру
Регистрация: 13.05.2006
Сообщений: 3,908
Репутация: 1246
|
Цитата:
на выходах которого при вращении вала появляются прямоугольные импульсы, сдвинутые по фазе в ту или иную сторону в зависимости от направления вращения вала
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 375
Репутация: 71
|
Вот я ее и решаю в данный момент Надумал следующее, вместо того, что бы заводить сигналы с обоих выходов валкодера на ноги микроконтроллера, попытаюсь сначала подать их на вход фазового детектора, который будет определять направление вращения валкодера. С его выхода ноль или единица (в зависимости от направления вращения) будут подаваться на один из выводов порта микроконтроллера. Контроллеру не придется заниматься задачей определения направления вращения, одного зайца я таким образом убиваю наповал Остается только подсчитывать импульсы с одного из выходов валкодера определяя угол поворота или скорость вращения, все, второй заяц мертв! Как считаете, я ничего лишнего или неосуществимого не напридумывал?
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 375
Репутация: 71
|
В том то и дело, что хочу сделать аппаратный (хотя какой там аппаратный, одна микросхема) фазовый детектор, чтобы не грузить мк лишними циклами. Хотя, программный способ тоже испытаю, нужно сравнить оба метода. А за прерывания спасибо действительно, сейчас только подумал, вместо циклического опроса просто сделать переход в подпрограмму слежения за валкодером по прерыванию, не придется его постоянно контролировать.
|
||
Оценка
|
Новичок
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
|
Я решал эту проблему. Я организовывал опрос валкодера по прерываниям таймера, а затем идет анализ изменения уровней на входах.
Частота опроса примерно 1500Гц. Один микроконтроллер PIC18F452 опрашивал два валкодера. И управлял двумя шаговыми двигателями. Если нужно больше инфи попробую найти из того что осталось после проекта. |
||
Оценка
|
Новичок
Регистрация: 27.10.2009
Сообщений: 1
Репутация: 10
|
Обработка сигнала - при вращении в одну сторону, имеем на двух ногах которые участвуют в опросе валкодера чередование импульсов, грубо - 1,2,1,2,1,2 и т.д. А при вращении в другую -2,1,2,1,2,1 и т.д.
Обычно для подсчета используется табличка "истинности". Очередь импульсов сравнивается с табличкой, в результате знаем в какую сторону крутится ручка. |
||
Оценка
|
Гуру
Регистрация: 13.05.2006
Сообщений: 3,908
Репутация: 1246
|
Цитата:
Очередь импульсов сравнивается с табличкой, в результате знаем в какую сторону крутится ручка
|
||
Оценка
|
Специалист
Регистрация: 16.07.2009
Сообщений: 1,282
Репутация: 278
|
Алгоритм программной обработки валкодера - http://datagor.ru/microcontrollers/3...-valkoder.html
|
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |