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

 
 
5 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Энкодер и дребезг, нужна помощь
BigCoster
сообщение Apr 11 2007, 18:24
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера. Проблема втом что имеется ошибка которая пстоянно имеет
разное значение. Я так понимаю что програмно тут ни чем не поможешь.
Частота сигнала с датчика около 200 Гц.
пытался делать RC-фильтр но при ёмкости С=1мкФ не помогает, а при 2.2
не работает при номинальных оборотах двигателя.
Я начинающий, сильно не ругайте...

Сообщение отредактировал BigCoster - Apr 11 2007, 18:39
Go to the top of the page
 
+Quote Post
Visor
сообщение Apr 11 2007, 18:44
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



Цитата(BigCoster @ Apr 11 2007, 23:24) *
Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера. Проблема втом что имеется ошибка которая пстоянно имеет
разное значение.

Ошибка в "плюс" или в "минус"?
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 11 2007, 18:49
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Visor @ Apr 11 2007, 18:44) *
Ошибка в "плюс" или в "минус"?


Ошибка в "плюс", поэтому и грешу на дребезг
забыл сказать, энкодер стоит на мотор-редукторе
Go to the top of the page
 
+Quote Post
Visor
сообщение Apr 11 2007, 18:58
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 240
Регистрация: 23-03-07
Пользователь №: 26 428



200Гц довольно много. Крыльчатка правильно рассчитана? Фотодатчик имеет достаточное быстродействие?
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 11 2007, 19:21
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Надо посмотреть осциллографом. Тогда будет понятнее.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Apr 11 2007, 19:22
Сообщение #6


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

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
датчик положения (у меня крыльчатка + оптический датчик "на просвет") подключен к счётчику контроллера.
Поясните, что мешает тупо опрашивать обычный цифровой (или аналогово-компараторный) вход и обрабатывать дребезг как обычно? Если Вы подключились к внешнему входу таймера, то там бороться с дребезгом программно невозможно - дребезг обрабатывается аппаратно (внутри чипа) и с несоответствующей данной задаче задержкой (порядка нескольких тактов вместо требуемых нескольких сотен мкс).

Сообщение отредактировал CD_Eater - Apr 11 2007, 19:23
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Apr 11 2007, 22:00
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(BigCoster @ Apr 11 2007, 18:24) *
Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера.

Обычно нужно, чтобы на счетный вход поступал практически идеальный сигнал (с крутыми фронтами).
Иначе на пологом фронте возможно срабатывание счетчика несколько раз от незначительных помех.
Простое добавление интегрирующей цепочки не помогает, естественно.
Попробуйте включить триггер Шмитта между интегрирующей цепочкой и счетным входом, или обработать сигнал программно, как Вам советовали выше.


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
Stas633
сообщение Apr 11 2007, 22:18
Сообщение #8


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

Группа: Свой
Сообщений: 105
Регистрация: 6-01-06
Пользователь №: 12 901



Цитата(BigCoster @ Apr 11 2007, 19:24) *
Подскажите, что делать с дребезгом, если датчик положения
(у меня крыльчатка + оптический датчик "на просвет") подключен
к счётчику контроллера. ..

Считаю, что "дребезгом" называют неустойчивое (быстроменяющееся от min до беск.) сопротивление контактной группы при замыкании/размыкании. В случае использования оптического датчика дребезг не возможен по определению.

Если предположить, что ложные срабатывания вызваны датчиком положения, то на мой взляд возможны две причины. Первая, наиболее вероятная - это очень малый (или отсутсвующий вовсе) гистерезис усилителя тока фотоэлемента. Вторая, очень маловероятная - это малый размер отверстий (прорезей) в крыльчатке. Вторая причина может рассамриваться, если размер отверстий сопоставим с "биениями" (дрожанием) крыльчатки, вызванными вращением двигателя.

Также возможно, что ошибка в подсчете импульсов вызвана ошибкой в программе. Опубликуйте программу..
Go to the top of the page
 
+Quote Post
bgc
сообщение Apr 12 2007, 09:49
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 313
Регистрация: 30-07-06
Из: Москва
Пользователь №: 19 188



много раз делал подобные схемы - заводил на вход таймера ( в том числе и квадратичного ) проблем с дребезгом не бывает .
На входе процессора ставил обычно 2н2 (убрать наведенные иголки)
Частоты от 0Гц до 300КГц.
Ищите проблему в другом.
При верхних частотах возникает проблема с подбором оптопары. На таких частотах (время порядка 5мкс) необходим фотодиод с усилителем, а обычные фотоприемники без него. Либо надо брать быстрый с встроенным усилителем (имеющий задержку меньше 1 мкс) либо городить внешний каскад (я бы так делать не стал) что стоит у Вас.


--------------------
Окружающий мир - не иссякающий источник сюрпризов!
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 10:25
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(Stas633 @ Apr 11 2007, 22:18) *
Считаю, что "дребезгом" называют неустойчивое (быстроменяющееся от min до беск.) сопротивление контактной группы при замыкании/размыкании. В случае использования оптического датчика дребезг не возможен по определению.

Если предположить, что ложные срабатывания вызваны датчиком положения, то на мой взляд возможны две причины. Первая, наиболее вероятная - это очень малый (или отсутсвующий вовсе) гистерезис усилителя тока фотоэлемента. Вторая, очень маловероятная - это малый размер отверстий (прорезей) в крыльчатке. Вторая причина может рассамриваться, если размер отверстий сопоставим с "биениями" (дрожанием) крыльчатки, вызванными вращением двигателя.

Также возможно, что ошибка в подсчете импульсов вызвана ошибкой в программе. Опубликуйте программу..


У меня осцилографом работает звуковая карточка, надеюсь скоро обзавестись настояшим, так что дребезга особо я заметить не могу. sad.gif
Но он проявляется когда крыльчатка останавливается на границе срабатывания оптопары.
Я это вижу на дин. индикации (считает, а двигатель стоит blink.gif )


Цитата(bgc @ Apr 12 2007, 09:49) *
много раз делал подобные схемы - заводил на вход таймера ( в том числе и квадратичного ) проблем с дребезгом не бывает .
На входе процессора ставил обычно 2н2 (убрать наведенные иголки)
Частоты от 0Гц до 300КГц.
Ищите проблему в другом.
При верхних частотах возникает проблема с подбором оптопары. На таких частотах (время порядка 5мкс) необходим фотодиод с усилителем, а обычные фотоприемники без него. Либо надо брать быстрый с встроенным усилителем (имеющий задержку меньше 1 мкс) либо городить внешний каскад (я бы так делать не стал) что стоит у Вас.

Сейчас у меня датчик подключен так:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
ZAO
сообщение Apr 12 2007, 10:27
Сообщение #11





Группа: Новичок
Сообщений: 8
Регистрация: 17-01-06
Пользователь №: 13 289



Цитата(BigCoster @ Apr 11 2007, 19:24) *
Я так понимаю что програмно тут ни чем не поможешь.
Частота сигнала с датчика около 200 Гц.

Как раз программно эту проблему решить проще всего.
Запустите таймерное прерывание с периодом раза в два меньше минимального периода датчика и опрашивайте в нем сигнал с датчика. Если в последовательных прерываниях считываются разные значения - то это является дребезгом.
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 10:40
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(ZAO @ Apr 12 2007, 10:27) *
Как раз программно эту проблему решить проще всего.
Запустите таймерное прерывание с периодом раза в два меньше минимального периода датчика и опрашивайте в нем сигнал с датчика. Если в последовательных прерываниях считываются разные значения - то это является дребезгом.


Всего два таймера/счётчика
Одно из прерываний по таймеру занято индикацией, другое паузами при
достижении счетчиком заданого количества тиков.
Go to the top of the page
 
+Quote Post
ZAO
сообщение Apr 12 2007, 10:46
Сообщение #13





Группа: Новичок
Сообщений: 8
Регистрация: 17-01-06
Пользователь №: 13 289



Цитата(BigCoster @ Apr 12 2007, 11:40) *
Всего два таймера/счётчика
Одно из прерываний по таймеру занято индикацией, другое паузами при
достижении счетчиком заданого количества тиков.

А что за индикация используется? Ее можно посадить, допустим, и на прерывание таймера для датчика или использовать в основном цикле программы.
Go to the top of the page
 
+Quote Post
BigCoster
сообщение Apr 12 2007, 11:00
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 71
Регистрация: 9-03-07
Из: г. Днепропетровск
Пользователь №: 26 009



Цитата(ZAO @ Apr 12 2007, 10:46) *
А что за индикация используется? Ее можно посадить, допустим, и на прерывание таймера для датчика или использовать в основном цикле программы.


Индикация используется вот такая вот:
Прикрепленное изображение

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

Сообщение отредактировал BigCoster - Apr 12 2007, 11:01
Go to the top of the page
 
+Quote Post
ZAO
сообщение Apr 12 2007, 11:41
Сообщение #15





Группа: Новичок
Сообщений: 8
Регистрация: 17-01-06
Пользователь №: 13 289



Вы вполне можете завести одно таймерное прерывание, которое будет фильтровать дребезг и обновлять индикаторы. При каждом вызове обрабатывается один из индикаторов и определяется сигнал от датчика.
Если для обновления индикатора период таймера слишком маленький, Вы можете организовать внутри прерывания счетчик, по достижении определенного значения которого и обрабатывать индикатор.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:13
Рейтинг@Mail.ru


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