Страница 1 из 1

Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 10:38:53
nikolaykorneeff
Всем здрасте!
Товарищи коты, помогите! Мне для одного проекта необходим джог/шатл как на профессиональных видеомагнитофонах. Нашел я один пульт, выпаял оттуда энкодер, подключил к МК, прочитал значения с ножек, составил таблицу истинности. И завис.
В джоге (центральный вал) логика обычного энкодера. По нему вопросов не имею.
А вот с шатлом (внешний вал) никак в толк не могу взять.. Помогите, пожалуйста, с алгоритмом. Буду очень благодарен.
Работает шатл так: Исходное положение "0" - движок находится в центре. Можно крутить влево или вправо на 21 положение в каждую сторону.
Нужно распознать как сильно наклонен движок в ту или иную сторону и задать соответствующую скорость перемотки.
Изображение

Re: Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 11:11:40
Gudd-Head
Ну так хранить где-то текущее положение шатла чтобы понимать в какую сторону он крутится и принудительно выставлять его в "0" при проходе через ноль.

Re: Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 12:05:14
nikolaykorneeff
То ли заработался, то ли просто туплю, но не могу понять как считать направление движения по 2й и 3ей ногам.
Я, так понимаю, что можно обойтись без 1й ноги, а по 4й определять наличие сдвига с нуля, правильно? Получается главный затык у меня во 2й и 3й ногах.

Re: Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 12:13:09
Gudd-Head
Ну да, теоретически можно обойтись без первой... НО! Вы не отследите перемещение из 0 — в -1 или +1 :dont_know:
А так на самом примитивном уровне, к примеру, стоим на +3:
текущее состояние 001 (по ногам 2,3,4)
если изменилось на 101, значит стало +4
если изменилось на 011, значит стало +2
если проскочило и изменилось на 111, тут уж сами решайте в какую сторону отрабатывать.

Re: Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 12:47:22
nikolaykorneeff
А если привязаться к 111 как к конкретному целому значению? В каждую сторону будет всего по пять режимов перемотки. А промежуточные значения 101, 001 и 011 определять только как направление движения.
Первая ножка, кстати, была обрезана и, соответственно, не распаяна.

Re: Вопрос по энкодеру в Jog/Shuttle

Добавлено: Пн дек 08, 2014 13:03:25
Gudd-Head
Можно и так. Только я бы в качестве целых взял "001" — исчезла бы неопределённость с "+1" и "-1".