реклама на сайте
подробности

 
 
> Обработка инкрементального энкодера
PhX
сообщение Nov 17 2008, 09:15
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 473
Регистрация: 10-09-06
Из: Тольятти. Самарская обл.
Пользователь №: 20 249



Мат. часть: Вал шагового двигателя соединен с оптическим инкрементальным энкодером посредством эластичной трубки. Двигатель работает на холостом ходусо скоростью 2 об/мин.
Энкодер обрабатывается atmegoй следующим образом:
Сигнал с канала A вызывает прерывание INT1. В зависимости от сигнала на ножке PC1 инкрементируется или декрементируется переменная pulses
Код
/* Внешнее прерывание INT1 (счетчик импульсов энкодера) */
// На вход INT1 приходят импульсы от выхода A энкодера
// На вход PC1 приходят импульсы от выхода B энкодера
ISR(INT1_vect)
{
  if (PINC & 0x02) pulses++; else pulses--;
}

Точность ужасная. Погрешность видимо связана с высокочастотным дребезгом вала при завершении шага. Кто что может посоветывать по этому поводу?


--------------------
Если все, то не я...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arisov
сообщение Feb 8 2009, 20:50
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455



Цитата(haker_fox @ Feb 7 2009, 20:24) *
Ваша схема мне показалась все таки несколько сложной. Но может быть у нее есть преимущества перед схемами, которые приводились выше? …

Схема (рис.1) получила такой вид в процессе наладки. Сначала обработка сигналов производилась по опросам таймера (12мкс). И в схеме отсутствовали входные резисторы по 1кОм и элементы для «исключающего ИЛИ». Сигналы брал с самодельного энкодера (120имп/об) состоящего только из щелевых оптопар, фототранзистры были «подтянуты» к +5В через резистор = 4,7кОм. С двигателем на 24В всё прекрасно работало. Но как только подключил двигатель на 110В, то вся «красота» нарушилась. Не то, что пропуски, вообще движок не останавливался. По осциллографу были хорошо заметны наводки, провода были не экранированные. Пробовал с экранированными – помех становилось меньше. С уменьшением нагрузочного резисторов до 1кОм, также амплитуда наводок уменьшалось. С экранированным кабелем и резисторами 1кОм уже более-менее стало работать, но временами всё равно были пропуски (то «недоход», то «переход» позиции). На вход «вешал» кондёры – мало, что менялось. Кардинально помогло только расположение буфера с низким выходным сопротивлением (сначала на «запараллеленых» К561ЛА7, затем на CD4093) непосредственно около оптопар. И резисторы на входе на 1кОм поставил для уменьшения входного сопротивления.
Затем «пришла» мысль о «исключающем ИЛИ», а так как новую печ.плату неохота было делать, то решил обойтись «малой кровью» - использовать по возможности имеющиеся детали (внутренний компаратор) + навесной монтаж. Вот поэтому схема на рис.1 получилась немного «избыточной».
Теоретически с таким вариантом быстродействие выше, что потом косвенно подтвердилось во время одного трудно уловимого программного «глюка» (кратко опишу его проявления – во время «сбоя», перехода в ServoError с прошивкой с опросом по таймеру – ошибка рассогласования была около 20-30 тыс. шагов, а с прерываниями по компаратору – несколько миллионов).
Схема на рис.2 должна её полностью заменить с дополнительными преимуществами – меньше деталей, меньше используемых входов МК.
По сравнению с другими (выше) – я только нашёл «кусок» из микрочиповского AN696. На мой взгляд вариант из AN696 менее помехоустойчив, требует два входа прерывания или надо подавать на входа счётчиков-таймеров. У меня только один таймер свободен и я его «берегу» на будущее. Более лучшую помехоустойчивость схемы по рис.2, должны обеспечить триггеры Шмитта с регулируемыми порогами (за счёт их подстройки) по входам и «защита» от ложных переходов на «искл.ИЛИ».
Если Вы имеете ввиду ещё какие то схемы, то дайте пожалуйста непосредственные ссылки.

Цитата(_Pasha @ Feb 8 2009, 15:23) *
Вопрос с подвохом : а всегда ли сигналы с энкодера имеют амплитуду 5 вольт wink.gif Может, надо еще обратить внимание на стандартные входы IEC61131-2 или немножечко их сдвинуть в область 5-вольт ?

Всё делается и делалось для конкретного применения (для энкодера с Uпит.=5V) поэтому и такая схема, но для других напряжений ничто не мешает поставить защитный стабилитрон или BAV99 с токоограничивающим резистором.
При описанной выше настройке (еб…) мне так и хотелось «задрать» напряжение сигнальных линий до 24В и поставить оптроны для развязки, тем более входа управления (Step/Dir) уже были так подключены. Но потом получилось с буфером – и я не стал дальше «извращаться».

Сообщение отредактировал arisov - Feb 8 2009, 20:59
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 9 2009, 11:11
Сообщение #3


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(arisov @ Feb 9 2009, 00:50) *
Если Вы имеете ввиду ещё какие то схемы, то дайте пожалуйста непосредственные ссылки.
Оптимистический пример из тупого принтера Epson Stylus Photo R270. Энкодер от 3.3 вольт. RC-цепь 1к+100пФ, подтяжка 6к8 на 3.3вольта. Все! напряжение ШИМ 42 вольта. Помехоустойчивость еще хуже! Но при этом на кабель надет феррит. Попробуйте и Вы ферритовые прибамбасы и/или витые пары проводов. 
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- PhX   Обработка инкрементального энкодера   Nov 17 2008, 09:15
- - haker_fox   Цитата(PhX @ Nov 17 2008, 17:15) Мат. час...   Nov 17 2008, 09:43
|- - PhX   Цитата(haker_fox @ Nov 17 2008, 13:43) Гм...   Nov 17 2008, 09:50
|- - haker_fox   Цитата(PhX @ Nov 17 2008, 17:50) Штука вс...   Nov 17 2008, 10:08
||- - PhX   Цитата(haker_fox @ Nov 17 2008, 14:08) ну...   Nov 17 2008, 10:14
||- - haker_fox   Цитата(PhX @ Nov 17 2008, 18:14) Да почем...   Nov 18 2008, 03:27
||- - PhX   Цитата(haker_fox @ Nov 18 2008, 07:27) Вс...   Nov 18 2008, 04:05
||- - evgeny_ch   Цитата(PhX @ Nov 18 2008, 08:05) Ну для д...   Nov 18 2008, 04:22
|||- - PhX   Цитата(evgeny_ch @ Nov 18 2008, 08:22) Ес...   Nov 18 2008, 04:31
||||- - evgeny_ch   Цитата(PhX @ Nov 18 2008, 08:31) Евгений,...   Nov 18 2008, 04:52
|||- - dxp   Цитата(evgeny_ch @ Nov 18 2008, 10:22) Ес...   Nov 18 2008, 05:11
|||- - dpss   Цитата(dxp @ Nov 18 2008, 08:11) Только (...   Nov 18 2008, 17:04
|||- - haker_fox   Цитата(dpss @ Nov 19 2008, 01:04) у таких...   Nov 19 2008, 03:22
|||- - dpss   Цитата(haker_fox @ Nov 19 2008, 06:22) ИМ...   Nov 19 2008, 18:12
|||- - haker_fox   Цитата(dpss @ Nov 20 2008, 02:12) Посмотр...   Nov 20 2008, 02:45
|||- - PhX   Цитата(haker_fox @ Nov 20 2008, 06:45) По...   Nov 20 2008, 04:09
|||- - haker_fox   Цитата(PhX @ Nov 20 2008, 12:09) Я знаю ч...   Nov 20 2008, 07:03
||- - haker_fox   Цитата(PhX @ Nov 18 2008, 12:05) p.s. Да,...   Nov 18 2008, 08:45
|- - Adviser   Цитата(PhX @ Nov 17 2008, 12:50) Спасибо ...   Nov 17 2008, 11:01
- - _Pasha   Цитата(PhX @ Nov 17 2008, 13:15) Точность...   Nov 17 2008, 11:22
|- - PhX   Цитата(_Pasha @ Nov 17 2008, 15:22) Вы то...   Nov 17 2008, 11:34
- - evgeny_ch   Цитата(PhX @ Nov 17 2008, 13:15) Мат. час...   Nov 17 2008, 11:40
|- - PhX   Цитата(evgeny_ch @ Nov 17 2008, 15:40) Уж...   Nov 17 2008, 11:56
|- - evgeny_ch   Цитата(PhX @ Nov 17 2008, 15:56) Абсолютн...   Nov 17 2008, 12:57
- - Vokchap   Обработку на логике ИМХО сделать удобнее всего, ес...   Nov 17 2008, 11:59
|- - PhX   Цитата(Vokchap @ Nov 17 2008, 15:59) Обра...   Nov 17 2008, 12:51
|- - Vokchap   Цитата(PhX @ Nov 17 2008, 15:51) Что-то с...   Nov 17 2008, 13:04
- - Alex11   Вот еще вариант программной реализации. Код вызыва...   Nov 18 2008, 11:10
- - evgeny_ch   ЦитатаAny sin/cos-encoder, with analog output sign...   Nov 19 2008, 04:03
- - PhX   Добавление НЧ фильтра не помогло. Хотя прямоугольн...   Nov 19 2008, 04:11
- - MaslovVG   Цитата(PhX @ Nov 17 2008, 12:15) Мат. час...   Nov 19 2008, 08:18
|- - PhX   Цитата(MaslovVG @ Nov 19 2008, 12:18) У в...   Nov 19 2008, 09:05
|- - haker_fox   Цитата(PhX @ Nov 19 2008, 17:05) Вот СПАС...   Nov 19 2008, 09:13
|- - PhX   Цитата(haker_fox @ Nov 19 2008, 13:13) Да...   Nov 19 2008, 09:49
- - arisov   При изготовлении своего варианта сервоконтроллера ...   Feb 7 2009, 13:00
|- - haker_fox   Цитата(arisov @ Feb 7 2009, 21:00) При из...   Feb 7 2009, 17:24
- - blackfin   Может, уже была ссылка на обсуждение, но все же: ....   Feb 7 2009, 13:35
|- - arisov   Итогов пока я там не заметил, но может плохо искал...   Feb 7 2009, 13:55
- - _Pasha   Вопрос с подвохом : а всегда ли сигналы с энкодер...   Feb 8 2009, 12:23
- - arisov   Спасибо, про ферриты как то подзабыл, хотя своё вр...   Feb 9 2009, 11:33
|- - _Pasha   Цитата(arisov @ Feb 9 2009, 14:33) Надо ...   Feb 9 2009, 11:41
- - arisov   Да я видел такие схемы на SN75115N, например. Толь...   Feb 9 2009, 11:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th June 2025 - 06:51
Рейтинг@Mail.ru


Страница сгенерированна за 0.01423 секунд с 7
ELECTRONIX ©2004-2016