![]() |
![]() |
#11 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Нужно использовать дополнительную переменную , в которой будет хранится состояние клапана вкл/выкл(true/false)
|
![]() |
![]() |
![]() |
#12 |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Можете привести пример где есть такая переменная? Я где-то так и думал, но что-то покаместь не нашел, как правильно работать с такими переменными, или ссылку где это описывается.
|
![]() |
![]() |
![]() |
#13 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Второе реле должно срабатывать при двух условиях:
1. Датчик показывает сухость. 2. Ранее кран был закрыт. В Вашем коде проверяется только первое условие.. Предлагаю в рядом с срабатываением реле на закрытие прописать переменную и поставить в неё значение "1". А во втором условии (вместо else написать еще один if) проверять наличие в этой переменной единицы и сухость датчика через "и". Есть в примерах для ардуино с триггерной кнопкой. Сейчас пишу с телефона, код набивать неудобно... Последний раз редактировалось Tohin; 08.05.2016 в 00:05. |
![]() |
![]() |
![]() |
#14 |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Спасибо, щас гляну пример.
|
![]() |
![]() |
![]() |
#15 |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Привожу скетч, щас проверить нет возможности. Так как оборудование не у меня. Вот как то так:
Скетч: PHP код:
|
![]() |
![]() |
![]() |
#16 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() PHP код:
|
![]() |
![]() |
![]() |
#17 |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Спасибо за скетч, только почему-то теперь у меня оба реле по умолчанию замкнуты, то есть горит зеленый индикатор. Из-за чего это? И можно ли чтоб они были постоянно замкнуты? А так все работает, правда двигатель пришлось наоборот подключить.
PHP код:
|
![]() |
![]() |
![]() |
#18 |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]()
Только что переделал, почему то управляющий вход реле работает наоборот.
Переделал скетч под это: PHP код:
|
![]() |
![]() |
![]() |
#19 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1031 ![]() ![]() ![]() |
![]()
Я добрался до компа...
На истину в последней инстанции не претендую, код не компилил и на работоспособность не проверял. Писал прям тут, могут быть ошибки по синтаксису. И написал бы так: Код:
int sensorPin = A0; int sensorValue = 0; int Relay = 5; //закрытие крана int Relay2 = 6; //открытие крана int Flag = 1; //при инициации считаем, что кран закрыт. тогда при первом включении, при отсутствии воды на полу, кран откроется. void setup() { Serial.begin(57600); pinMode(Relay, OUTPUT); pinMode(Relay2, OUTPUT); digitalWrite(Relay, LOW); // реле выключено digitalWrite(Relay2, LOW); // реле выключено } void loop() { if(Flag==0&& analogRead(sensorPin)< 250 ) //В первую очередь проверяем Flag. ибо если кран уже закрыт, опрашивать датчик смысла нет. { digitalWrite(Relay, HIGH ); // Закрываем кран delay(4000); digitalWrite(Relay, LOW); // прекращаем закрывать кран, но лучше повесить концевик, чтобы убедиться. или манометр после крана. Flag = 1; // напоминалка, что кран закрыт } if(Flag==1&& analogRead(sensorPin)> 250 ) //В первую очередь проверяем Flag. ибо если кран открыт, датчик проверяет предыдущий цикл. { digitalWrite(Relay2,HIGH); // реле включено delay(4000); digitalWrite(Relay2,LOW ); // реле выключено Flag = 0; } // напоминалка, что кран открыт } P.S. Тока щас дошло... А на реле с обратной стороны не написано "Low Level Trigger"? Последний раз редактировалось Tohin; 08.05.2016 в 23:24. |
![]() |
![]() |
![]() |
#20 | |
Junior Member
Регистрация: 05.06.2015
Сообщений: 27
Вес репутации: 0 ![]() |
![]() Цитата:
|
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|