Перейти к содержанию
    

Подскажите, что делать с дребезгом, если датчик положения

(у меня крыльчатка + оптический датчик "на просвет") подключен

к счётчику контроллера. Проблема втом что имеется ошибка которая пстоянно имеет

разное значение. Я так понимаю что програмно тут ни чем не поможешь.

Частота сигнала с датчика около 200 Гц.

пытался делать RC-фильтр но при ёмкости С=1мкФ не помогает, а при 2.2

не работает при номинальных оборотах двигателя.

Я начинающий, сильно не ругайте...

Изменено пользователем BigCoster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, что делать с дребезгом, если датчик положения

(у меня крыльчатка + оптический датчик "на просвет") подключен

к счётчику контроллера. Проблема втом что имеется ошибка которая пстоянно имеет

разное значение.

Ошибка в "плюс" или в "минус"?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ошибка в "плюс" или в "минус"?

 

Ошибка в "плюс", поэтому и грешу на дребезг

забыл сказать, энкодер стоит на мотор-редукторе

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

200Гц довольно много. Крыльчатка правильно рассчитана? Фотодатчик имеет достаточное быстродействие?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, что делать с дребезгом, если датчик положения

(у меня крыльчатка + оптический датчик "на просвет") подключен

к счётчику контроллера.

Обычно нужно, чтобы на счетный вход поступал практически идеальный сигнал (с крутыми фронтами).

Иначе на пологом фронте возможно срабатывание счетчика несколько раз от незначительных помех.

Простое добавление интегрирующей цепочки не помогает, естественно.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, что делать с дребезгом, если датчик положения

(у меня крыльчатка + оптический датчик "на просвет") подключен

к счётчику контроллера. ..

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

много раз делал подобные схемы - заводил на вход таймера ( в том числе и квадратичного ) проблем с дребезгом не бывает .

На входе процессора ставил обычно 2н2 (убрать наведенные иголки)

Частоты от 0Гц до 300КГц.

Ищите проблему в другом.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

У меня осцилографом работает звуковая карточка, надеюсь скоро обзавестись настояшим, так что дребезга особо я заметить не могу. :(

Но он проявляется когда крыльчатка останавливается на границе срабатывания оптопары.

Я это вижу на дин. индикации (считает, а двигатель стоит :blink: )

 

 

много раз делал подобные схемы - заводил на вход таймера ( в том числе и квадратичного ) проблем с дребезгом не бывает .

На входе процессора ставил обычно 2н2 (убрать наведенные иголки)

Частоты от 0Гц до 300КГц.

Ищите проблему в другом.

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

Сейчас у меня датчик подключен так:

post-26009-1176373500_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю что програмно тут ни чем не поможешь.

Частота сигнала с датчика около 200 Гц.

Как раз программно эту проблему решить проще всего.

Запустите таймерное прерывание с периодом раза в два меньше минимального периода датчика и опрашивайте в нем сигнал с датчика. Если в последовательных прерываниях считываются разные значения - то это является дребезгом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как раз программно эту проблему решить проще всего.

Запустите таймерное прерывание с периодом раза в два меньше минимального периода датчика и опрашивайте в нем сигнал с датчика. Если в последовательных прерываниях считываются разные значения - то это является дребезгом.

 

Всего два таймера/счётчика

Одно из прерываний по таймеру занято индикацией, другое паузами при

достижении счетчиком заданого количества тиков.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всего два таймера/счётчика

Одно из прерываний по таймеру занято индикацией, другое паузами при

достижении счетчиком заданого количества тиков.

А что за индикация используется? Ее можно посадить, допустим, и на прерывание таймера для датчика или использовать в основном цикле программы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что за индикация используется? Ее можно посадить, допустим, и на прерывание таймера для датчика или использовать в основном цикле программы.

 

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

post-26009-1176375533_thumb.jpg

и не знаю как посадить её на прерывание от счётчика

энкодера, потому что при обработке прерывания от счётчика

выполняется пауза (пустой цикл) в этом же прерывании,

а основная программа занята тем что считает сколько было остановок,

в какую сторону крутится двигателю, перемещение по вектору пауз и тд

Изменено пользователем BigCoster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы вполне можете завести одно таймерное прерывание, которое будет фильтровать дребезг и обновлять индикаторы. При каждом вызове обрабатывается один из индикаторов и определяется сигнал от датчика.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...