Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
![]() |
Может уважаемые знатоки микроконтроллерной техники подскажут, как организовать опрос валкодера? Например, есть валкодер, на выходах которого при вращении вала появляются прямоугольные импульсы, сдвинутые по фазе в ту или иную сторону в зависимости от направления вращения вала. Ну, заведу я эти сигналы на ножки микроконтроллера, а дальше что с ними делать?
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
![]() |
Хорошо, поставлю вопрос по другому. Как избавиться от необходимости постоянно опрашивать состояние выходов валкодера? Пока что вижу только один путь, в ходе выполнения программы зашитой в микроконтроллер периодически переходить в подпрограмму опроса состояния выходов валкодера, и при если уровни на них меняются, определить последовательность изменения уровней из чего определим направление вращения вала, а затем считать количество изменений, что будет соответствовать углу поворота (или скорости вращения вала). Но, такой способ сожрет немало ресурсов, отнимая их от выполнения контроллером более важных задач. Если учесть, что мне требуется еще опрос клавиатуры, обращение к АЦП и портам, некоторые математические вычисления,боюсь, у контроллера сил не хватит на все
![]() |
||
Оценка
|
Гуру
Регистрация: 13.05.2006
Сообщений: 3,905
Репутация: 1249
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
на выходах которого при вращении вала появляются прямоугольные импульсы, сдвинутые по фазе в ту или иную сторону в зависимости от направления вращения вала
|
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
![]() |
Вот я ее и решаю в данный момент
![]() ![]() |
||
Оценка
|
Знаток
Регистрация: 07.10.2009
Адрес: А кому интересно?
Сообщений: 382
Репутация: 70
![]() |
В том то и дело, что хочу сделать аппаратный (хотя какой там аппаратный, одна микросхема) фазовый детектор, чтобы не грузить мк лишними циклами. Хотя, программный способ тоже испытаю, нужно сравнить оба метода. А за прерывания спасибо
![]() |
||
Оценка
|
Новичок
Регистрация: 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,905
Репутация: 1249
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Очередь импульсов сравнивается с табличкой, в результате знаем в какую сторону крутится ручка
|
||
Оценка
|
Специалист
Регистрация: 16.07.2009
Сообщений: 1,282
Репутация: 282
![]() ![]() ![]() |
Алгоритм программной обработки валкодера - http://datagor.ru/microcontrollers/3...-valkoder.html
|
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |