Как контролировать обрыв провода датчика (конденсатор на конце)?

Jatixo
Offline
Зарегистрирован: 13.01.2016

Как правильно контролировать обрыв провода датчика протечки воды, на некоторых системах на конце между двумя проводами стоит конденсатор, только неизвестно какая емкость.

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

Думаю многим пригодится.
Спасибо!

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Как реализовано не знаю, но вероятно измеряется емкость, сравнивается с запомненым ранее при калибровке значением и далее реакция на измеренное значение, если сильно отличается от эталона то алярма!

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

На трёх-четырёх проводах - нет проблемм. Как в пожарныой сигнализации:
Контур замыкается на резистор при срабатывании реле стоящем на конце линии.
Плюс в том что от этого напряжения можно что-то запитать

Резистор на конце, резистор на аналоговый пин  на 5 Вольт.
Есть  половина питания- всё в порядке, есть 5 Вольт- обрыв линии, 0 Вольт - короткое на линии.
А датчик делает или обрыв или короткое- как вам захочется.
Или включает свой резистор, тогда чётко узнаете: обрыв, короткое или  срабатывание.

axill
Offline
Зарегистрирован: 05.09.2011

Возьмите телефонный провод с 4мя проводниками

два подключите к датчику, два закоротите. Два закороченных использовать для контроля обрыва кабеля

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

Jatixo
Offline
Зарегистрирован: 13.01.2016

Хотелось бы по 2 проводам сделать, зачем лишнее тянуть, да и если 4 по хорошему надо проверять все 4 тогда, а то может как раз нужный повредится, а проверяемый целый будет. По фото там вроде неполярный конденсатор:

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

Как я понимаю конденсатор в процессе зарядки создает короткое замыкание, а после полной зарядки размыкает цепь. Может как-то на этом свойстве проверку сделать... Типа подать напряжение, как-то проверить есть ли ток сразу пока заряжается, после насыщения проверить еще раз, уже не должно быть такого тока, и можно проверять сопротивление, есть вода или нет...

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

Jatixo пишет:

Типа подать напряжение, как-то проверить есть ли ток сразу пока заряжается, после насыщения проверить еще раз, уже не должно быть такого тока, и можно проверять сопротивление, есть вода или нет...

рой тему, как проводные телефонные станции прозванивают абонентов на обрыв линии обычным звонком на телефонный аппарат.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Jatixo, меня заинтересовала тема. Проснулся спортивный интерес :) Написал сейчас упрощённую программу для измерения ёмкости конденсаторов на компараторе. Принцип работы следующий: с 13ноги ардуино через резистор (я брал 1кОм) заряжается конденсатор. Потом выход переключается на "0", запоминается текущий микрос, и через этот же резистор конденсатор начинает разряжаться. Как только напряжение на конденсаторе достигнет значения 1.1в  срабатывает компаратор, вызывает прерывание, в прерывании запоминается текущий микрос. Результат выдаётся в виде количества микросекунд ушедшее на разряд.  С данным значение резистора и пауз можно измерять конденсаторы от 0,001мкф до ~500мкф. Схема:

Скетч:

uint32_t  m0, m1 ; 
void setup() {                
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(7,INPUT);
ACSR=(1<<ACBG)|(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0); 
}

ISR (ANALOG_COMP_vect) { m1=micros(); }

void loop() {
PORTB|=1<<PB5;
delay(1000);
m0=micros(); PORTB&=~(1<<PB5);
m1=m0;
delay(1000);
Serial.println(m1-m0);
}

При обрыве покажет ноль или какое-то очень малое значение.

Jatixo
Offline
Зарегистрирован: 13.01.2016

А это нормально, что конденсатор заряжать/разряжать так часто, даже если изменить на раз в 30 сек., хотя, как я понимаю, только при заряженном получится измерить сопротивление на контактах есть вода или нет, то есть получится каждые 5 сек. хотя бы так надо делать, заряжать, проверять сопротивление, разряжать-проверять обрыв. Может есть способ проще как-то, постоянно подавать напряжение на него небольшое и что-то проверять в это же время...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

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

ps: Забыл добавить что бы емкость в микрофарадах получить, нужно результат разделить на 1700.0.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Неплохая идея.
Правда собственно датчик ( то что как-бы подключено  к конденсатору) при намокании,
а нам это главное, снизит своё сопротивление до  2-20 кОм ( гадаю).
Такое впечатление что надо мерять напряжение на появившемся делителе.
Тогда схэма простая:

100 кОм сверху, 100 кОм датчик в землю. Сигнал со средней точки.

В норме половина питания, в КЗ  ноль , при намокании что-то между нулём и половиной

А конденсатор там- душить на корню высокочастотные ( и не очень) наводки

Jatixo
Offline
Зарегистрирован: 13.01.2016

trembo пишет:

А конденсатор там- душить на корню высокочастотные ( и не очень) наводки

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

Я еще подумал, постоянный ток через конденсатор не проходит, а переменный то проходит, может шим поможет?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

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

Jatixo
Offline
Зарегистрирован: 13.01.2016

А что если сначала подать напряжение, подождать допустим секунду, сменить выход на вход и через analogRead проверить сколько, если допустим больше 500, то все хорошо, если 0 ну или меньше 500, то обрыв, вот и всё? Только как в это же время замерять сопротивление (хотя это тот же analogRead), наверно надо использовать не одну ножку как вход, выход, а две, одну вход, другую выход, и все равно что-то не соображу, надо как-то потом уже подать на одну линию напряжение, а на другой замерять, вместо земли...

Jatixo
Offline
Зарегистрирован: 13.01.2016

Вот набросал, только не знаю получится или нет...

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

Также, на второй картинке, если вода будет, то конденсатор может разрядиться через нее и тогда не знаю какие показания будут... И вообще через сколько накроется микроконтроллер от такого частого дерганья ножками...

Как думаете прокатит такое или что изменить?

Gres
Gres аватар
Offline
Зарегистрирован: 26.03.2013

Все молодцы, но я бы очень не рекомендовал подключать конденсатор на прямую к портам микроконтроллера...

Jatixo
Offline
Зарегистрирован: 13.01.2016

Всё-таки думаю вряд ли на пользу пойдет частая смена состояния порта вход-выход и вариант trembo неплохой, только для расширения диапазона АЦП я подумал нижний резистор сделать на 1МОм, а верхний внутренний подтягивающий 100К, получается что-то такое:

Кто как думает, нормальный вариант? Единственное, при коротком замыкании через внутренний резистор будет течь ток 50мА (при 5В), не сгорит ли резистор или вообще микроконтроллер или он на это расчитан?

Jatixo
Offline
Зарегистрирован: 13.01.2016

Решил внешний подтягивающий резистор использовать, спокойнее:

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

Jatixo
Offline
Зарегистрирован: 13.01.2016

Не сгорит ли стабилизатор напряжения ардуины, если в верхнее плечо, параллельно резистору 100К я поставлю конденсатор 1мКф ~220В ленточный (других не нашел) и при этом провода датчика будут замкнуты, таким образом получится короткое замыкание + и - стабилизатора конденсатором на несколько мс пока он заряжается?

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012

Хочу присоединится к теме. Интересует контроль целостности линии терморезистора и его самого.

схема включения стандартная.

Клапауций 322
Offline
Зарегистрирован: 31.12.2015

yul-i-an пишет:

Хочу присоединится к теме. Интересует контроль целостности линии терморезистора и его самого.

схема включения стандартная.

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

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Какая целостность?
У вас при максимальном нижнем плече вряд-ли будет половина питания .
Поэтому если появилось полное питание (1023)- обрыв.
Если пришёл "0" ( почти "0")- короткое.

Только пороги сообразить надо.

oleg_kazakof
Offline
Зарегистрирован: 24.04.2015

dimax пишет:

Jatixo, меня заинтересовала тема. Проснулся спортивный интерес :) Написал сейчас упрощённую программу для измерения ёмкости конденсаторов на компараторе. Принцип работы следующий: с 13ноги ардуино через резистор (я брал 1кОм) заряжается конденсатор. Потом выход переключается на "0", запоминается текущий микрос, и через этот же резистор конденсатор начинает разряжаться. Как только напряжение на конденсаторе достигнет значения 1.1в  срабатывает компаратор, вызывает прерывание, в прерывании запоминается текущий микрос. Результат выдаётся в виде количества микросекунд ушедшее на разряд.  С данным значение резистора и пауз можно измерять конденсаторы от 0,001мкф до ~500мкф. Схема:

Скетч:

uint32_t  m0, m1 ; 
void setup() {                
Serial.begin(9600);
pinMode(13,OUTPUT);
pinMode(7,INPUT);
ACSR=(1<<ACBG)|(1<<ACIE)|(1<<ACIS1)|(1<<ACIS0); 
}

ISR (ANALOG_COMP_vect) { m1=micros(); }

void loop() {
PORTB|=1<<PB5;
delay(1000);
m0=micros(); PORTB&=~(1<<PB5);
m1=m0;
delay(1000);
Serial.println(m1-m0);
}

При обрыве покажет ноль или какое-то очень малое значение.

Строка 15 строка 17 так и должно быть?

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

oleg_kazakof, да всё так и задумано, скетч рабочий, я им емкости измерял)  В строчке 15 сбрасывается разница в переменных от предыдущих измерений.