Подводные грабли измерения ёмкости

Тема в разделе "WASM.ELECTRONICS", создана пользователем Black_mirror, 18 ноя 2010.

  1. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Сегодня довёл програмку до работоспособного вида(чтобы не тыкать в схему осцилографом который время заряда уменьшает раза в два), но результаты пока не очень. Видимо нужно специально под это дело плату разводить, а не использовать неизвестно что, с приклеиванием(соплями) конденсатора и резистора к разъёму программирования. Конденсатор был взят примерно на 55нФ, резистор 8.2КОм, с другой стороны к резистору был припаян кусок изолированного провода длиной сантиметров 15. Если схватиться пальцами провод за изоляцию, то время заряда уменьшалось с 3000 циклов до 2500(для детектирования нажатий этого более чем достаточно), а если взяться за оголённый провод, то уменьшалось до 2000 циклов. Если прицепить к проводу железяку площадью в пару квадратных дециметров, то время заряда падало примерно до 2100 циклов. Если к этой железяке приблизить на пару сантиметров ладонь, то время уменьшалось на 100 циклов, если приблизить на такое же расстояние палец, то время уменьшалось примерно на 30-50 циклов, а если приблизить ладонь на 10 сантиметров, то время уменьшалось примерно на 10-20 циклов, это конечно не много, но замеры ёмкости при отключённом питании между входом контроллера и землёй показали примерно 100пФ, что видимо и портит всё дело.
    В общем виде нужно сделать ряд датчиков которые будут обнаруживать приближение к одному из них на 10 сантиметров металической трубы диаметром 5-10 сантиметров в диаметре расположенной перпендикулярно к оси датчиков. Что-то мне подсказывает что если делать схему типа QMatrix то для такого расстояния обнаружения датчик получится сантиметров 30-40 шириной. Или я ошибаюсь?
     
  2. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Black_mirror
    вы сделали терменвокс или датчик присутствия.
    металлоискатель? а сам этот датчик наводок не даст? (экранированная коробка большого размера?)

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

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    мысль пришла, что компенсировать наводки по емкости можно с помощью дополнительной измерительной цепи с эталонным конденсатором сравнимой емкости в непосредственной близости от тестируемого. (например, в ручке щупа)
    и мерить их по очереди. эталонный покажет текущую помеху в той области
     
  4. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    qqwe
    Поковырялся в библиотеке QTouch от Atmel'а. Изучал программку для вот этого безобразия:
    http://www.atmel.com/dyn/resources/prod_documents/A09-0797_QT600-ATTINY88-QT8_sch.PDF
    Как выяснилось SNS(подключена только к конденсатору) и SNSK(к конденсатору и резистору) нужно поменять местами:
    Код (Text):
    1. SNSK=L;
    2. SNS=L;
    3. SNS=Z;
    4. do{
    5.   SNSK=Z;
    6.   SNS=H;
    7.   SNS=Z;
    8.   SNSK=L;
    9. }while(!SNS);
    Здесь при подаче импульса на SNS происходит заряд двух последовательно соединённых конденсаторов, но измеряемый(Cx) заряжается быстрее, так как имеет меньшую ёмкость. В конце цикла измеряемая ёмкость разряжается, и считывается значение с накопительного конденсатора. Время заряда накопительного(Cs) до уровня логической единицы порядока Cs/Cx циклов. У меня же в программе заряжалась паразитная ёмкость, а потом происходил перенос заряда в накопительную, из-за этого количество циклов было больше и несколько больше была амплитуда шумов. На картинке график времени заряда(в циклах), первая яма это приближение(примерно на 10 секунд) к электроду размерами 3x10 см руки на расстояние 10 см, две другие ямы - аналогично, только очень быстро. Приближение руки на 30 сантиметров датчик почти не чувствует, вернее от этого зависит какое из чисел 773 или 774 он будет выдавать чаще. На расстоянии порядка 1 см датчик чувствует даже газету свёрнутую трубочкой, но там изменение сигнала всего пара единиц. Теперь бы еще понять зачем последовательно с Cs включают резистор, как этим управлять и какие это даёт бонусы. А вот схему с передеющим электродом и приёмным наверно делать не стоит, мне кажется что это только в несколько раз размеры конструкции увеличит.
     
  5. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Поковырял программу для этого безобразия(вернее посмотрел только на работу 1й кнопки):
    http://www.atmel.com/dyn/resources/prod_documents/A09-0785_QT600-ATMEGA324-QM64_sch.PDF
    Алгоритм там такой:
    Код (Text):
    1. PD(X)     ? ? L L L   L H H H H L...L H H H H L   L
    2. PC(Y)     ? L L L L   Z Z Z Z L L...Z Z Z Z L L   L
    3. PA(Y1)    L L L L Z   Z Z L Z Z Z...Z Z L Z Z Z   Z
    4. PB3(SMP)  ? ? ? L L   L L L L L L...L L L L L L   H
    Первый блок(5 состояний) это инициализация, последний(1 состояние) это переход к замеру напряжения на накопительном конденсаторе, но я никак не могут понять зачем во время цикла(из 6 состояний, повторяется фиксированное число раз) Y1 замыкается на землю когда X имеет высокий уровень?

    [add]Всё оказалось весьма просто, этот переход как раз и отвечает за основную часть заряда накопительного конденсатора.[/add]