РЕКЛАМА НА ФОРУМХАУС Была у меня проблемка, оборвало шланг на горячую воду. Пока нас дома не было. Залило весь первый этаж. Ремонт в копеечку. И решил обезопасить свой дом от такой напасти. Поделюсь как сделал. https://ru.aliexpress.com/item/1pcs-motorized-ball-valve-DN25-2-way-electrical-valve/708997483.html Купил кран шаровый с двигателем. На 12 Вольт. Установил его на входе в дом. Кран двухпроводный, со встроенными концевиками. Сделал пару самодельных датчиков протечки. http://www.shaksh.in/2012/05/water-leak-detector/ Ну и собственно мозги. http://www.ebay.com/itm/200957063666?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 Подключал датчики обычной витой парой. Сам скетч писал в программе FLProg. Мне как наладчику язык LAD более понятен чем С+. Код: bool _k1 = 0; bool _tim1I = 0; bool _tim1O = 0; unsigned long _tim1P = 0; bool _ktim1 = 0; bool _k2 = 0; bool _k3 = 0; bool _k4 = 0; bool _k5 = 0; bool _tim2I = 0; bool _tim2O = 0; unsigned long _tim2P = 0; bool _ktim2 = 0; bool _gen1I = 0; bool _gen1O = 0; unsigned long _gen1P = 0; bool _kgen1 = 0; bool _k6 = 0; bool _bounseInput7S = 0; bool _bounseInput7O = 0; unsigned long _bounseInput7P = 0; bool _bounseInput8S = 0; bool _bounseInput8O = 0; unsigned long _bounseInput8P = 0; void setup() { pinMode(7, INPUT); pinMode(1, OUTPUT); pinMode(3, INPUT); pinMode(6, OUTPUT); pinMode(4, INPUT); pinMode(2, INPUT); pinMode(5, OUTPUT); pinMode(0, OUTPUT); pinMode(8, INPUT); _bounseInput7O = digitalRead(7); _bounseInput8O = digitalRead(8); } void loop() { bool _bounceTmp7 = (digitalRead (7)); if (_bounseInput7S) { if (millis() >= (_bounseInput7P + 40)) {_bounseInput7O= _bounceTmp7; _bounseInput7S=0;} } else { if (_bounceTmp7 != _bounseInput7O ) {_bounseInput7S=1; _bounseInput7P = millis();} } bool _bounceTmp8 = (digitalRead (8)); if (_bounseInput8S) { if (millis() >= (_bounseInput8P + 40)) {_bounseInput8O= _bounceTmp8; _bounseInput8S=0;} } else { if (_bounceTmp8 != _bounseInput8O ) {_bounseInput8S=1; _bounseInput8P = millis();} } _k1 = ((_bounseInput7O) || (_bounseInput8O)); _k2 = ((((_k1) || (_k2))) &&((!_k4))); digitalWrite (1, ((_ktim1) || (_k6))); _k3 = (((((digitalRead (3))) || (_k1))) &&((!_ktim2))); if (_k3) { _tim1O = 1; _tim1I = 1; } else { if (_tim1I) { _tim1I = 0; _tim1P = millis(); } else { if (_tim1O) {if ( _isTimer(_tim1P, 4000)) _tim1O = 0; } } } if(_tim1O) {_ktim1 = 1;} else {_ktim1 = 0;} digitalWrite (6, (!_ktim1)); _k4 = (digitalRead (4)); _k5 = (((((digitalRead (2))) &&((!_k2)))) &&((!_ktim1))); if (_k5) { _tim2O = 1; _tim2I = 1; } else { if (_tim2I) { _tim2I = 0; _tim2P = millis(); } else { if (_tim2O) {if ( _isTimer(_tim2P, 4000)) _tim2O = 0; } } } if(_tim2O) {_ktim2 = 1;} else {_ktim2 = 0;} digitalWrite (0, _ktim2); digitalWrite (5, (!_ktim2)); if (((_k2) &&((!_k4)))) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0; } if (_gen1I ) { if ( _isTimer ( _gen1P , 500 )) { _gen1P = millis(); _gen1O = ! _gen1O; } } if(_gen1O) {_kgen1 = 1;} else {_kgen1 = 0;} _k6 = _kgen1; } bool _isTimer(unsigned long startTime, unsigned long period ) { unsigned long endTime; endTime = startTime+period; return (millis() >= endTime); } По началу были ложные срабатывания. Добавил защиту от дребезга, и все заработало как надо. Есть три кнопки, две сигнальные арматурины на 12 вольт. Схема. На схеме номера пинов не соответствуют тем что в скетче. Схема старая, но верная Кнопки - Открыть Закрыть и Сброс. Лампы Открыто и Авария/Закрыто. При срабатывании датчика протечки, Ардуино закрывает задвижку в течении 4 секунд (на всякий случай), и мигает лампа Авария. Сбрасываем Аварию кнопкой Сброс и открываем задвижку кнопкой Открыть. Пока задвижка открывается - горит лампа Открыто. Так же при закрытии задвижки (лампа Авария/Закрыто).
Интересный и полезный топик. Вопрос - а почему шаровый, а не электромагнитный клапан? Давление вроде небольшое, клапан дешевле будет и прощу в управлении.
Не берусь утверждать, но клапану нужно постоянно подавать напряжение. А здесь только 4 секунды. Пока закрывается или открывается.
Все верно - обычно, пока напряжение подано, клапан открыт. Но там расход энергии минимален (4.8 Ватт при стоимости в 200 руб против 700 за шаровый и стоимости киловатта в 3.5 рубля срок окупаемости шарового 40 месяцев ), зато отключает сразу, даже при авариях в электросети и управление Ардуиной нативное - логическим ноликом/единицей и гарантия от заклинивания в каком-либо положении.
Я бы все равно не поставил себе клапан. Я много лет работал наладчиком по профилю КИПиА. Там где нужно перекрывать что то, всегда ставится задвижка. Наверное надежнее. А так если вдруг свет выключится, я без воды останусь. Как то так.
Переубеждать не буду. Просто, раз уж форум -> все читающие должны иметь полную картину, потому раскрою альтернативный вариант. В моем случае (нет центрального водоснабжения, насос у меня) если нет электричества, то нет и воды Но если вдруг сломался сам клапан (кто знает - может, заклинило его в закрытом положении), то в обход клапана должна идти труба с шаровым вентилем (обычно все время закрыт, открывается руками при поломке клапана). В Вашем варианте, кстати, такой "обход" тоже, думаю, необходим - шаровый кран тоже может заклинить в закрытом положении.
А что они бывают какие-то принципиально другие? В моем понимании, у всех именно такие - плата с близкорасположенными непересекающимися дорожками.
Так я и не против. Расскажите только как сделать такие? Что бы с корпусом и так далее! Когда куплю 3Д принтер, тогда буду такие делать.
@seval, я вообще про рисунок дорожек. У большинства датчиков всего два контакта выведено и этим ограничились, яркий пример - нептун. Здесь же площадь сработки гораздо выше, при одинаковом размере датчиков ентот даст аларм раньше.
Я так думаю, что если я сам сделаю такой датчик то долго он не проживет. Медь быстро окислится. Покрыть золотишком в домашних условиях проблематично. Потому датчик из двух проводков ВВГ предпочтительнее. Опять же это только мое мнение.
Прикольная тема. Но я бы поставил датчики расхода воды... точнее их и поставлю ибо не понятно где и когда что то может потечь...
Электромагнитные клапана есть двух видов - нормально закрытые и нормально открытые. В системах типа аквастоп, что на стиралках - стоят нормально закрытые клапана, которые при отсутствии напряжения на входе не пропускают ничего. Нормально открытые работают по инверсной схеме. То есть в зависимости от задач можно применять тот или иной вид клапана. Но, конечно, в вашем случае шаровый с приводом удобнее, на случай перебоев с напряжением. Только для чистоты совести надо предусмотреть опрос положения задвижки, т. к. 4 секунды - это чертовски долго, и как раз за это время могут рубануть свет (беда никогда одна не приходит ), и что там будет в дальнейшем с работой скетча - кто знает?