Здравствуйте. Собрал систему автополива по проекту https://alexgyver.ru/pump-sleep/ Дигиспарк и реле На тестах все вроде работало. Когда начал вводить в продакшн, а точнее опустил помпу на дно 5л бутылки, то реле стала вести себя очень странно. Согласно схеме помпу подключил на выход в реле. Если помпу опустить на одно, реле включается на пол секунды и выключается сразу и так по кругу(помпа дергается и все). Если помпу достать из воды, то работает нормально. Если помпу опустить на дно и подключить напрямую к 5в(соседние выходы на реле), то также качает нормально. Проблема возникает, только когда помпа опущена в воду и подключена к реле. Ничего понять не могу... Все сделано точно, как в инструкции. Использую 4 батарейки, на выходе 5.5в. Куда смотреть, в чем может быть проблема, спасибо.
тс написал - . Собрал систему автополива по проекту https://alexgyver.ru/pump-sleep/ ну и у меня не возникает сомнений к кому обращаться с вопросами - к Гайверу))))
Дело в том, что тут автор то не причем) Тут либо я что-то не понимаю и неправильно делаю или что) Вопрос то общий. Если у меня винда полетела, я же не пишу Майрософту) Есть основные методы диагностики и исправления проблем. Я за этим и обратился сюда.. Думал, может кто работает часто с ардуино, ему будет сразу видна причина.. Видео, как происходит))
а напрасно. Хотя, я тоже, как чонить с Ардуиной случаеца, сразу бегу на форум ближайшего ко мне цветочного магазина и там достаю всех блондинок.
Так тов Гайвер утверждает. И на огонёк слетаются мотыльки, которые "Дело в том, что тут автор то не причем)".
Тут всего два пути - либо ты подготовлен в электротехнике и понимаешь все происходящие внутренние процессы и самоделишь с удовольствием; либо идёшь и покупаешь новое. Когда ничего не понимаешь и пытаешься найти помощь у других, при этом даже не представляешь, как правильно оформить вопрос - тут сразу вспоминается поговорка - не хочешь срать - не мучай жопу.
Мой хрустальный шар патсказываит. Шоу если дело не в коте, то нихватаит силы тока ф батарейках. Йа таг думаю. Когда работаит в холостую все норм, а када опускаити в воду то помпе тижило работать. Тока ни хвотаит и фсе висеть(. Сорри за ошипки я праздник праздную
Код (C++): boolean flag1=0; boolean knop1; //2 нога boolean flag2=0; boolean knop2; //3 нога boolean flag3=0; boolean knop3; //4 нога boolean flag4=0; boolean knop4; //13 нога int btnState; //переменная настройки режимов int regim; //текущий режим boolean flagRegDoliv=0; //переменная состояния режима долива boolean flagRegWindows=0; //переменная состояния режима проветривания boolean flagRegPoliv=0; //переменная состояния режима полива //заполнение бочки boolean flagDoliv=0; //переменная состояния клапана(крана) заполнения бочки int konc1=7; //верхний попловок в бочке подключен ко 7 пину int konc2=8; //нижний попловок в бочке подключен к 8 пину //int doliv=10; //кнопка принудительного долива бочки 10 пин int nasos=10; //клапан (насос)долива бочки 11 пин unsigned long lasttime; //переменная хранения времени срабатывания верхнего попловка unsigned long avtodoliv=5000; //настраиваемое значение таймера долива бочки (сработал верх.попл. но не сработал ниж.попл.) //управление окнами #include "DHT.h" #define DHTPIN 9 // номер пина, к которому подсоединен датчик 9 DHT dht(DHTPIN, DHT11); const int EN=11; const int MC1=7; const int MC2=8; boolean koncUp; //5 нога boolean koncDown; //6 нога int minim=20; int maxim=30; int nasosPoliv=12; //клапан (насос) полива 13 пин unsigned long period=1000*60*60*24; //период полива unsigned long dlitelnost=1000*60*60*1; //продолжительность полива boolean flagPoliv; unsigned long nachaloPoliva=0; //фиксация времени начала полива unsigned long nachaloOschetaDlit; //начало отсчёта длительности void setup() { Serial.begin(9600); pinMode(2,INPUT); pinMode(3,INPUT); pinMode(4,INPUT); pinMode(13,INPUT); pinMode (konc1,INPUT); pinMode (konc2,INPUT); // pinMode (doliv,INPUT); pinMode (nasos,OUTPUT); pinMode(EN,OUTPUT); pinMode(MC1,OUTPUT); pinMode(MC2,OUTPUT); dht.begin(); pinMode(5,INPUT); //boolean koncUp; pinMode(6,INPUT); //boolean koncDown; pinMode (nasosPoliv,OUTPUT); } void loop() { float h = dht.readHumidity(); float t = dht.readTemperature(); digitalWrite(nasos, flagDoliv); digitalWrite(nasosPoliv,flagPoliv); btnState=Obrabot_Knop(); switch(regim){ case 0: //рабочий режим (вывод значений на экран, управление доливом, управление окнами) if (btnState==3){regim=1;} while(flagRegDoliv==1){void dolivBochki();} if (flagRegWindows==1 && (t>maxim || btnState==1) && digitalRead(5)==0){opening();} if (flagRegWindows==1 && (t<minim || btnState==2) && digitalRead(6)==0){closeing();} if (flagRegWindows==0 && btnState==1 && digitalRead(5)==0){opening();} if (flagRegWindows==0 && btnState==2 && digitalRead(6)==0){closeing();} if (flagRegPoliv==1){timerPoliva();} if (flagRegPoliv==0){} break; case 1: //вкл/выкл функции долива if (btnState){ if (btnState==3){regim=2;} if (btnState==4){regim=0;} if (btnState==1){flagRegDoliv=0;} if (btnState==2){flagRegDoliv=1;} } break; case 2: //ручной/авто переключение режима проветривания if (btnState){ if (btnState==4){regim=0;} if (btnState==3 && flagRegWindows==0){regim=5;} if (btnState==3 && flagRegWindows==1){regim=3;} if (btnState==1){flagRegWindows=0;} if (btnState==2){flagRegWindows=1;} } break; case 3: //регулировка температуры закрывания if (btnState){ if (btnState==3){regim=4;} if (btnState==4){regim=2;} if (btnState==1){minim--;} if (btnState==2){minim++;} } break; case 4: //регулировка температуры открывания if (btnState){ if (btnState==3){regim=5;} if (btnState==4){regim=2;} if (btnState==1){maxim--;} if (btnState==2){maxim++;} } break; case 5: //вкл/выкл функции полива if (btnState){ if (btnState==3){regim=6;} if (btnState==4){regim=0;} if (btnState==1){flagRegPoliv=0;} if (btnState==2){flagRegPoliv=1;} } break; case 6: //настройка периода полива if (btnState){ if (btnState==3){regim=7;} if (btnState==4){regim=0;} if (btnState==1){period=period-(1000*60*60);} if (btnState==2){period=period+(1000*60*60);} } break; case 7: //настройка продолжительности полива if (btnState){ if (btnState==3){regim=0;} if (btnState==4){regim=0;} if (btnState==1){dlitelnost=dlitelnost-(1000*60);} if (btnState==2){dlitelnost=dlitelnost+(1000*60);} } break; } Serial.print("режим-"); Serial.print(regim);Serial.print("t мин ");Serial.print(minim);Serial.print(" t макс ");Serial.print(maxim);Serial.print("flagRegPoliv ");Serial.println(flagRegPoliv); } int Obrabot_Knop(){ knop1=digitalRead(2); knop2=digitalRead(3); knop3=digitalRead(4); knop4=digitalRead(13); //while(knop3||knop1||knop2||knop4) if (knop1==1 && flag1==0){flag1=1;return 1;} if (knop1==0 && flag1==1){flag1=0;} if (knop2==1 && flag2==0){flag2=1;return 2;} if (knop2==0 && flag2==1){flag2=0;} if (knop3==1 && flag3==0){flag3=1;return 3;} if (knop3==0 && flag3==1){ flag3=0;} if (knop4==1 && flag4==0){flag4=1;return 4;} if (knop4==0 && flag4==1){ flag4=0;} } void dolivBochki(){ btnState=Obrabot_Knop(); if (digitalRead(konc1)==1){ if (digitalRead(konc2)==1 | btnState==4 | millis()-lasttime > avtodoliv){ flagDoliv=1;} } if (btnState==4){flagDoliv=!flagDoliv;lasttime=millis();} else {flagDoliv=0;lasttime=millis();} } void opening() { digitalWrite(EN, LOW); digitalWrite(MC1,HIGH); digitalWrite(MC2,LOW); digitalWrite(EN, HIGH); } void closeing() { digitalWrite(EN, LOW); digitalWrite(MC1,LOW); digitalWrite(MC2,HIGH); digitalWrite(EN, HIGH); } void brake() { digitalWrite(EN, LOW); digitalWrite(MC1,LOW); digitalWrite(MC2,LOW); digitalWrite(EN, HIGH); } void timerPoliva() { if ((millis()-nachaloPoliva>period)|| btnState==5){flagPoliv=1;nachaloPoliva=millis();nachaloOschetaDlit=millis();} if((millis()-nachaloOschetaDlit)>dlitelnost){flagPoliv=0;} } доброго времени суток. прошу помощи в решении своей проблемы. составил скетч, где по задумке имеется 8 режимов. в каждом режиме включается/отключается какая либо функция устройства, либо настраивается пороговое значение. для удобства ввел функцию обработки нажатий (4 кнопки 1-2 лев.прав. 3-4 низ.верх.) после нажатия кнопки (3) функция обработки нажатий "бомбит" цикл луп без остановки возращаемым значением. режимы листаются сами собой. если успеть щелкнуть (1) или (2) в режимах изменения переменных, то режим фиксируется но переменная ползёт без остановки. подскажите пожалуйста решение проблемы, как заставить отсылать или читать значение единожды? система с поливом поэтому написал в уже созданную тему.
а ты какого хрена влез в чужую тему и просишь помощи ? создай свою и там вопрошай. а здесь СH1PSET пытается решить свой вопросик.....
Чего плодить темы без разбору? 300 страниц тем не многовато-ли? Открыл форум, листаю-может есть типичное решение. Вижу "сис-ма полива". У меня тож полив. Вот и написал. Или если будет отдельная тема, то мне более гарантированно помогут?