Где разместить конденсатор, чтобы сгладить показания ИК-датчика?

Я знаю, что этот вопрос уже задавали, но ответ, который я ищу здесь, отличается.

Я узнал об этом сообщении на форуме , в котором объясняется, как лучше всего сгладить показания острого ИК-датчика (основываясь на фактах и ​​измерениях, это кажется действительно отличным).

Дело в том, что я мало разбираюсь в электронике, мне интересно, куда мне поставить конденсатор и резистор, описанные в этом посте: 10uf ceramic capacitor and 530 ohm resistor parallel to the capacitor.

«Куда мне его поставить» означает, куда мне его подключить. Спасибо

@endolith это: sparkfun.com/products/242 . Есть 3 контакта: VCC, земля и сигнальный выход.

Ответы (3)

Вам нужен фильтр нижних частот . Фильтр нижних частот пропускает медленные изменения в вашем сигнале, но блокирует более быстрые сигналы. Базовым фильтром нижних частот является этот RC-фильтр :

RC-фильтр

В я Н это сигнал с датчика. В С - это напряжение конденсатора, которое вы можете использовать, например, для подключения к АЦП (аналогово-цифровому преобразователю) микроконтроллера.
Конденсатор действует как резервуар напряжения, который заполняется или опорожняется через резистор. Чем выше значение конденсатора, тем больше времени это займет. Более высокое значение резистора приведет к тому, что меньший ток будет протекать к конденсатору и от него, а также будет препятствовать быстрым изменениям.
Теперь вы можете подумать, что чем выше значения, тем лучше сглаживание, и это правда, но если вы выберете слишком высокое значение, вы также предотвратите нормальные изменения из-за изменения расстояния от датчика. И эти изменения разрешены.
Ключом к поиску правильных значений является частота среза ., то есть частота, начиная с которой фильтр будет блокировать сигнал. Для RC-фильтра:

ф С "=" 1 2 π × р С

Допустим, вы хотите разрешить изменения с частотой 1 Гц, что означает изменения, происходящие за 1 секунду. Тогда по формуле

р С "=" 1 2 π × ф С "=" 1 2 π × 1 "=" 0,16

Если вы выберете значение 1 мю F для конденсатора вам понадобится 160k Ом для резистора.

Вау, отличный ответ! У меня керамический колпачок 0,1 мкФ, поэтому я прав, мне нужно 16 кОм для R, чтобы получить частоту среза 100 Гц (для ИК-датчика расстояния для робота, кажется, примерно так?). Я прав?
@Matthieu - Рад, что тебе нравится. Ваши значения верны для 100 Гц (хотя 100 Гц, вероятно, больше, чем вам нужно для робота). Также значения не очень критичны; 15k - более распространенное значение для резистора, чем 16k.
Это сработало очень хорошо! Я использовал резистор номиналом 22 кОм, что соответствует частоте около 70 Гц. Спасибо

Я добавил диаграмму в ответ C.Zach Martin. Я не редактировал его ответ, так как это сбивает с толку, когда редактируется весь смысл ответа.

  • Насколько я понимаю исходный пост, о котором идет речь, это то, что они предназначались для подключения сигнала к верхней части схемы, а заземление - к нижней.

  • Это не то, что CZR рекомендовал, его ответ предполагает последовательное соединение - сигнал датчика вверху, выход, например, на Arduino внизу.

  • И я предполагаю, что оба варианта не оптимальны.

Что вам нужно, так это «фильтр нижних частот», который удаляет высокочастотные колебания и шум. Вот так - конденсатор заряжается и разряжается через резистор. Медленно меняющиеся сигналы делают это более эффективно, более быстро меняющиеся сигналы меньше влияют на напряжение конденсатора.

введите описание изображения здесь

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

Имея R в 1 кОм и C в 100 мкФ, мы получим постоянную времени 1 миллисекунду. Это может быть недостаточно хорошо. Конденсаторы большего размера будут давать более низкочастотный фильтр. Можно использовать резисторы большего или значительно большего номинала (10 кОм, 100 кОм) , а могут и нет, в зависимости от датчика и нагрузки. Помогите нам помочь вам!.

Даташит - аналоговый датчик GP2Y0A21YK

Даташит - цифровой датчик GP2Y0D21YK

Аналоговый и цифровой в одном листе данных


На этот датчик ссылается Endolith, и он может (а может и не быть) тем, что вы используете. Если это так, то R в схеме, которую я показал выше, не может быть намного больше 1K, если выход (как кажется) «открытый коллектор». Простое добавление конденсатора с выхода на землю имело бы некоторый эффект, но выход с асимметричным возбуждением может вызвать проблемы. Так что сообщите нам, что вы действительно хотите использовать — датчик и нагрузку, и мы сможем уточнить ответ.


Ваш датчик МОЖЕТ быть одним из них. Да?

введите описание изображения здесь

Кажется, здорово! Ссылка на мой датчик уже как комментарий к моему вопросу ;), он действительно есть в списке. На самом деле у меня есть только керамический колпачок 0,1 мкФ, но у меня много резисторов, так что это должно быть хорошо!
Сообщите нам точный номер детали датчика, который вы используете. Когда людям приходится копаться в комментариях других людей, это не идеально и может привести к ошибкам. Есть две версии этого датчика (версии A и D) — какая из них ваша. Какая у вас схема? Используете ли вы подтягивающий резистор на выходе? (согласно техпаспорту в одном случае). Что ты с этим гонишь? (как уже спрашивали). Использование резистора 15K может повлиять на вашу точность в зависимости от того, что вы ведете (как я уже отмечал). И это может привести к значительному снижению производительности, в зависимости от других факторов.
Если вы просто возьмете ответы, которые вам «нравятся», и проигнорируете другие технические данные (как вы это делаете) и не предоставите более подробную информацию, есть реальная вероятность того, что результаты будут не такими, как вы ожидаете. Нужно постараться ответить на все вопросы от людей, которые кажутся технически грамотными. Иногда это дает совершенно неожиданные бонусы или совершенно другой ответ.
Рассел, ты ревнуешь, что я сказал «вау, отличный ответ» на другой ответ? Ваш тоже отличный, и я не пренебрегаю им, я как раз сегодня работал. Теперь вот ответы, которые вы хотели: точная часть, которую я использую, это (как я сказал в единственном комментарии, который я сделал) GP2Y0A21YK (то есть версия A). Моя схема прямо сейчас заключается в том, что я подключил выходной сигнал к аналоговому контакту Arduino. Итак, чтобы ответить на следующий вопрос: нет подтягивающего резистора. При этом я управляю роботом: т.е. при обнаружении препятствия на пороговом расстоянии я останавливаю робота, чтобы избежать столкновения.
Так что я ищу здесь не специальное измерение расстояния, а критическое расстояние, до которого нужно остановиться. Что я заметил, и вам это может показаться интересным, так это то, что сигнал вполне корректен при использовании только датчика. Но когда я запускаю двигатель пылесоса на роботе (да, робот-пылесос), я получаю много шума на датчике. К вашему сведению, Arduino получает питание от USB, но аккумулятор двигателя и заземление USB подключены. Может быть, это источник проблемы? В любом случае, большое спасибо за время, которое вы уделили мне, я ценю это.
Важным моментом является то, что в ответе, где вы сказали «отличный ответ», вы фактически игнорировали мой более ранний технический вклад, который мог повлиять на ваш результат, поэтому вы, возможно, сбились с пути. И вы также явно не предоставили всем (не только мне) столько информации, сколько могли. Информация МОЖЕТ быть скрыта в комментариях, но это неясно для других (и для меня). Ваша «работа» состоит в том, чтобы сделать четкое заявление о ваших требованиях и вашей схеме. Вы сделали это сейчас, но это заняло несколько дней, и вы могли бы сделать это в самом начале.
Я понимаю вашу точку зрения, но прямые вопросы часто работают лучше, чем действительно конкретные вопросы (я имею в виду, чтобы получить ответ). Сначала я не хотел делать это слишком конкретным, но, очевидно, это было ошибкой.

Убедитесь, что вы используете керамический колпачок, чтобы он не был поляризованным. Соедините стороны конденсатора и стороны резистора вместе. Присоедините одну сторону этой комбинации резистор/конденсатор к сигнальному выходу на датчике. прикрепите другую сторону комбинации резистор/конденсатор к тому, что вы хотите использовать для получения данных.

Так

введите описание изображения здесь

РЕДАКТИРОВАТЬ: я думаю, что понимаю, о чем вы сейчас спрашиваете. Я полагаю, вы не уверены, в какой точке находится линия Vo (выход данных)? Мое предложение состояло бы в том, чтобы просто купить этот соединитель за 1,50$. Затем вы можете просто припаять/макетно подключить резистор/колпачок параллельно, как я объяснил выше, к желтой линии. В противном случае вам придется припаять его к задней части датчика.

Спасибо (у меня есть разъем, поэтому я знаю, что желтый - это сигнал). Хотя я не понимаю, что вы подразумеваете под «все, что вы хотите использовать для получения данных». Я подключаю сигнальный выход датчика к контакту Arduino. Итак, с 1 стороной «параллельной комбинации» резистора / конденсатора, подключенной к желтому проводу (сигнал), куда мне подключить другую сторону? :p спасибо (а у меня керамическая кепка).