Почему у моего самодельного конденсатора явная полярность?

Проблема

Я сделал несколько простых конденсаторов, чтобы использовать их в качестве прижимных колодок на лестнице дома — цель состоит в том, чтобы освещать лестницу, когда вы поднимаетесь по ней — вот она в действии . Но я получаю от них странные показания, но только при одностороннем подключении.

Аппаратное обеспечение

Я построил их, приклеив кусок кухонной фольги к каждой стороне куска картона, а затем прикрепив зачищенный провод к обеим сторонам. Затем они подключаются к небольшой печатной плате через разъем Molex KK («ДАТЧИК»), схема которого приведена ниже.принципиальная схема

Порты DATA_IN и DATA_OUT подключаются к другим аналогичным печатным платам. RA0 выводит данные в последовательном формате со скоростью 57600 бод. RA2 подключается к RA1 «нисходящей» платы и позволяет устройствам самостоятельно перечислять и управлять использованием последовательной шины.

Питание обеспечивается батареей, а данные считываются через rasberry pi через оптопару, поэтому за пределами этой системы нет электрического соединения.

Прошивка

Прошивка PIC сначала устанавливает низкий уровень RA4 на миллисекунду, чтобы разрядить конденсатор. Затем RA4 становится входом и подключается к компаратору, который сравнивает внутреннее опорное напряжение (4/5 Вдд). Теперь RA5 становится высоким, и мы запускаем таймер и измеряем, сколько времени требуется, чтобы напряжение достигло опорного. Когда к датчику прикладывается вес, карта сжимается, емкость увеличивается, а для зарядки требуется больше времени.

Полученные результаты

Большинство из них работают нормально, и для зарядки до 4/5 Вдд требуется около 800 мкс. Но некоторые дают действительно странные показания, колеблющиеся от 30 мкс до 4000 мкс для зарядки - и они меняются при каждом отдельном чтении. Еще более странно, если я возьму разъем, прикрепленный к разъему "SENSOR" на плате, и поменяю полярность датчика - он начнет нормально работать.

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

Возможно, «изменение полярности» на самом деле просто устраняет прерывистое соединение. Можем ли мы проверить ваши зажимы, чтобы убедиться, что они хорошо прикреплены.
Какие соединения у вас есть для заземления?
Ничто не подключено к земле, как к штырю в земле - контакты 1 в DATA_IN и DATA_OUT подключены к отрицательным клеммам батареи - и они подключены к плоскости заземления на обратной стороне печатной платы.
Просто предположение, но работают ли они нормально, если сторона, на которой вы стоите, подключена к RA4/RA5, но не при подключении к минусу?
Я предполагаю, что у вас есть большая антенна для полей E линейной частоты и нет экранирования для 0 В или заземления. Отсюда плохой дизайн. Попробуйте ввести часы и измерьте связь сигнала с нагрузкой и связью, регулируемой давлением, с полосовым фильтром, чтобы подавить гул.
Трудно сказать! Я выработал эту схему только потому, что датчики были установлены под ковром. Датчики ведут себя странно, даже когда на них никто не стоит, а это они делали и до укладки ковра. Я действительно не обращал особого внимания на ориентацию, так как считал очевидным, что они не поляризованы.
@ Тони Стюарт. Я попытался подключить все к земле через raspberry pi, но это, казалось, ухудшило ситуацию, поэтому я использовал оптопару и источник питания от батареи. Я новичок в электронике, поэтому не знаком с вашими терминами - вы имеете в виду шум 50 Гц под «частотой сети». Как это может вызвать проблемы с датчиком, прикрепленным в одну сторону, а не в другую?
Шум 50 Гц будет исходить от таких вещей, как сетевые кабели, проходящие рядом с датчиками, или соединительные кабели. Поскольку одна сторона датчика является «общей», это будет иметь тенденцию экранировать «сигнальную» сторону, если она находится ближе к источнику помех. Я предполагаю, что кабели к датчикам не экранированы?
Я бы порекомендовал обработать ваш сигнал, поступающий от вашей нажимной панели, с помощью пары логических элементов, а затем отправить его в однократную схему таймера 555, чтобы импульсировать вашу картинку.
Я также ожидаю, что изменение емкости при наличии рядом человека (например, емкостного сенсорного датчика) будет значительным.
@drtechno Он занимается емкостным зондированием - улавливает изменения емкости, измеряя время зарядки. Предлагаемые вами изменения не соответствуют этой концепции.
«Я построил их, приклеив кусок кухонной фольги к каждой стороне куска картона, а затем прикрепив зачищенный провод к обеим сторонам». Вы не могли ожидать хорошего непрерывного контакта с низким сопротивлением, прикрепляя провод к кухонной фольге из алюминия. На алюминиевой фольге всегда есть оксидный слой. Лучше использовать медную фольгу и припаять к ней провод. Используйте три слоя фольги, оба внешних слоя должны быть соединены с землей, чтобы защитить внутренний слой.
@JRE да, это сработает. Я думаю, что проблема связана с длиной провода. Было бы трудно объяснить схему, не нарисовав ее, поэтому я нарисую ее и опубликую то, о чем говорю.
Январь 2020: Сработало? Что исправило? Был ли вклад Олина ответом?

Ответы (2)

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

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

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

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

Вот метод прописной буквы, который я чаще всего использую:

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

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

Для моих кнопок с датчиком крышки (не деформирующихся, так что проблема немного отличается от вашей) я управляю общей линией выхода и линией, которую я хочу чувствовать, обе высокие. Переключите линию считывания на аналогово-цифровой вход, установите низкий уровень на линии возбуждения, подождите чуть дольше, чем время сбора данных аналого-цифрового преобразования, и выполните преобразование. Затем сделайте то же самое снова, за исключением того, что обе линии начинаются с низкого уровня, а линия возбуждения получает высокий шаг. Суммируя, насколько первый упал с высокого уровня и насколько второй поднялся с низкого уровня, синфазный шум значительно снижается. Делая это часто, каждый раз меняя полярность, вы получаете хорошую помехозащищенность в целом после фильтрации нижних частот.

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

У меня есть демонстрационная плата с ограничением по кепке, где случайный шум после всей обработки составляет около ± 1 отсчета, который просто сидит там. Твердое касание пальцем дает значения около 200-350. Другими словами, с помощью этого метода я получаю надежное соотношение сигнал/шум 100:1.

Дальнейшее исследование моей системы показало ответ на этот вопрос - связь 50 Гц с линиями электропередач в доме (как говорили все остальные). Каждый датчик на самом деле показывает некоторую вариацию между выборками, и занесение всех чисел в электронную таблицу показывает синусоидальную вариацию с периодом примерно в 1 секунду. Некоторые датчики имеют гораздо больше различий в одной ориентации, чем в другой, вероятно, из-за их физической ориентации по отношению к источнику помех.

Для обработки каждого сэмпла требуется около 5 мс, а затем он ожидает 250 мс, пока не будет выполнен следующий сэмпл. Это дает нам период 255 мс, или 12¾ циклов при 50 Гц, которые будут обрабатывать сетевой сигнал каждые 4 семпла (или одну секунду).

Я решил эту проблему для себя, заставив PIC отслеживать пульсацию 50 Гц и синхронизировать образец с пиком пульсации. Это привело к устойчивым показаниям датчика.

Решение Olin на самом деле намного лучше этого, и я реализую его дальше, если столкнусь с какими-либо проблемами.