Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Automatick├ę zavla┼żovanie pomocou arduina

Automatick├ę zavla┼żovanie pomocou arduina

C,C++,C#

Moderátori: psichac, Moderátori

Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod stulo » 02 J├║n 2020, 20:32

Zdrav├şm p├íni, na┼íiel by sa tu na f├│re, nejak├Ż ┼íikovnej┼í├ş program├ítor, ktor├Ż by mi vedel pom├┤c┼ą? Ke─Ć┼że s├ím to nezvl├ídam, r├íd to prenech├ím niekomu kto vie ─Źo rob├ş..samozrejme odmena je jasn├í vec...─Äakujem, ke─Ć nie─Źo p├ş┼íte SS. :agree:
Spravi┼ą chybu je prejav ─żudskosti, ale prizna┼ą si ju, to je prejav charakteru. Oliver Dendis
stulo
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 273
Vek: 21.24
Zalo┼żen├Ż: 31.08.2012
Bydlisko: ─îierny balog
Karma: 1

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod mato3000 » 03 J├║n 2020, 19:14

eBay --- WiFi relay module ... a vyber si ak├ę chce┼í

-- Spojen├Ż pr├şspevok 03 J├║n 2020, 18:16 --

a aby som nezabudol, hladaj tak├ę ─Źo pou┼ż├şva SW na chytr├Ż mobil ... napr├şklad eWeLink

─Ćalej to dok├í┼że aj cvi─Źen├í opica ... pr├şpadne si kukni na Tvojej Trubke

-- Spojen├Ż pr├şspevok 03 J├║n 2020, 18:21 --

P.S:: do tretice , aby si nepovedal ┼że som xxxx .. tak├ętzo nie─Źo ... https://www.ebay.com/itm/Smart-Switch-Home-Relay-Module-Sonoff-WiFi-Wireless-5V-12V-Self-locking-K/282958277560?hash=item41e1a0abb8:g:x04AAOSwBY5a8nkV
mato3000
Obr├ízok pou┼ż├şvate─ża
Power user
Power user
Pr├şspevky: 9754
Zalo┼żen├Ż: 04.01.2009
Bydlisko: BA
Karma: 125

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod eurobastler » 03 J├║n 2020, 22:46

A mohol by si nap├şsa┼ą po┼żiadavky, ktor├ę m├í┼í na zavla┼żovac├ş automat?

Ak si d├í┼í do googlu "arduino irrigation system", pr├şpadne "arduino irrigation controller", dostane┼í ve─ża v├Żsledkov a mo┼żno by ti niektor├í kon┼ítrukcia pasovala.
Obrázok
eurobastler
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3884
Vek: 31.33
Zalo┼żen├Ż: 19.04.2009
Bydlisko: BA
Karma: 11

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod mihal.dp » 04 J├║n 2020, 11:36

A tovarenske riesenie zacinajuce od cca 60ÔéČ? Gardena 6030, Hunter, Rain bird...
mihal.dp
Obr├ízok pou┼ż├şvate─ża
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 433
Vek: 29.9
Zalo┼żen├Ż: 04.07.2008
Bydlisko: okres VK
Paragraf: 23
Karma: 4

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod zylo64 » 04 J├║n 2020, 12:30

Pred troma rokmi som rie┼íil podobn├Ż probl├ęm s automatikou na zavla┼żovanie z├íhrady. Bol tu na f├│re man├şk, ktor├Ż si cel├Ż syst├ęm vyrobil, no na m├┤j dotaz o pr├şpadn├ę podelenie sa s danou problematikou nereagoval. Po dlh┼íom h─żadan├ş a rozhodovan├ş sa, som si k├║pil "Raind Bird ST8I-wifi" na amazone (m├í 8 v├Żstupov na ventily, ja zatia─ż vyu┼ż├şvam 6, 2 ost├ívaj├║ ako rezerva), lebo v tom ─Źase sa u n├ís tento model s wifi e┼íte nepred├íval. Mysl├şm, ┼że v s├║─Źasnosti sa u┼ż pred├íva aj na Slovensku. Zatia─ż som s n├şm spokojn├Ż.
zylo64
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 354
Zalo┼żen├Ż: 21.04.2013
Bydlisko: Michalovce
Karma: 2

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod stulo » 06 J├║n 2020, 11:43

mato3000: ─Ćakujem, ale zrejme budem musie┼ą nap├şsa┼ą ob┼í├şrnej┼í├ş popis mojej po┼żiadavky aby sme sa pochopili. Ja u┼ż HW riadenia m├ím, taktie┼ż WiFi relay module je mi na ni─Ź ke─Ć┼że potrebujem ma┼ą aj nejak├ę anal├│gov├ę vstupy, podla ktor├Żch sa m├í riadi┼ą program vetrania a zavla┼żovania (teplota, vhkos┼ą). navy┼íe pri sklenn├şku nem├ím dosah WiFi (repeter u┼ż je ozaj ─Ćal┼íia zbyto─Źn├í komplik├ícia). :roll:

eurobastler: h─żadal som toho ve─ża, aj anglicky, ale ja m├ím jeden konkr├ętny probl├ęm, ktor├Ż sa mi zatia─ż nepodarilo n├íjs┼ą a ani vyrie┼íi┼ą - potrebujem ─Źerpadlo zap├şna┼ą v pravideln├Żch ─Źasov├Żch intervaloch, samozrejme aj s otvoren├şm ventilu (jednoduch├í vec blink without delay). Len┼że: ventil potrebujem otvo├íra┼ą aj v inom ─Źasovom intervale a tu u┼ż som narazil na probl├ęm, preto┼że 2 intervaly na jeden digital output mi u┼ż robili hl├║posti. Navy┼íe som teraz dos┼ą velmi pracovne vy┼ąa┼żen├Ż tak┼że som sem nap├şsal rovno s t├Żm, ┼że ak n├íjdem niekoho schopn├ęho ─Źo to bude vedie┼ą nap├şsa┼ą (pod─ża podrobnej┼í├şch po┼żiadaviek) tak nem├ím probl├ęm dan├ęho ─Źloveka zaplati┼ą..

mihal.dp: tov├írensk├ę kontol├ęry mi ned├ívaj├║ mo┼żnos┼ą si to nejak moc prisp├┤sobova┼ą, ─Źo by som ja pr├íve ┼że potreboval.. toto je mysl├şm odpove┼ą aj pre: zylo64.

A nakoniec, priklad├ím sch├ęmu m├┤jho "v├Żtvoru" , pros├şm v├ís, koment├íre ohladom line├írnych stabiliz├ítorov nechajme "za dverami" s├║ tam mysl├şm dos┼ą opodstatnene, ke─Ć┼że bez nich mi ─Źerpadielko "zanieslo bordel do nap├íjania" a resetovalo proc├í─Źik..Jednoducho, takto HW funguje bez najmen┼í├şch probl├ęmov a 100% mi vyhovuje. :lol:

-- Spojen├Ż pr├şspevok 06 J├║n 2020, 10:44 --

Ka┼żdop├ídne, ─Ćakujem za n├ípady, ak m├íte nejak├ę ─Ćal┼íie, sp─║┼łaj├║ce popis, sem s nimi. :thanks:
Pr├şlohy
schematic-v1.0.png
Spravi┼ą chybu je prejav ─żudskosti, ale prizna┼ą si ju, to je prejav charakteru. Oliver Dendis
stulo
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 273
Vek: 21.24
Zalo┼żen├Ż: 31.08.2012
Bydlisko: ─îierny balog
Karma: 1

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod peterple » 06 J├║n 2020, 13:05

E┼íte ┼że si to dal do sekcie C a nie do potrebujem nie─Źo vyrobi┼ą. Ako vid├ş┼í dnes nevyrob├ş nikto ni─Ź ani za peniaze. Bu─Ć si k├║p, alebo si urob s├ím. V tvojom pr├şpade absol├║tne nevid├şm probl├ęm. Dva intervaly na jednom v├Żstupe nem├┤┼żu by┼ą v ┼żiadnom pr├şpade probl├ęm. Daj sem t├Żch 10 riadkov k├│du s ktor├Żm je probl├ęm a ver├şm ┼że sa to tu vyrie┼íi za p├ír chv├ş─ż.
Uk├í┼ż m├║dremu chybu a on sa ti po─Ćakuje. Uk├í┼ż chybu hlup├íkovi a on sa uraz├ş.
peterple
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 2031
Vek: 53.62
Zalo┼żen├Ż: 25.06.2013
Bydlisko: Krajn├ę
Karma: 54

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod misocko » 06 J├║n 2020, 13:31

kedze ja mam v tomto smere jednoduhsie myslenie (prelinanie casov a rozne kombinacie, uz teraz mi stoja chlpy) , riesil by som to pomocnou premennou a prioritu pre otvaranie ventilu by som dal cerpadlu. Asi takto (samozrejme tie casy vypnutia a zapnutia treba nahradit tvojou podmienkou aku tam realne pouzivas a cisla pinou som si tiez iba vymysle):
K├│d: Vybra┼ą v┼íetko
bool cerpadlo_bezi = 0;
static byte pin_cerpadla = 8;
static byte pin_ventilu = 9;

void setup() {
pinMode(pin_cerpadla, OUTPUT);
pinMode(pin_ventilu, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
// cerpadlo a ventil
if (cas_zapnutia_cerpadla)              // podmienka ktora u teba zapina cerpadlo
  {
    digitalWrite(pin_cerpadla, HIGH);
    cerpadlo_bezi = 1;
  }

if (cerpadlo_bezi)
  {
    digitalWrite(pin_ventilu, HIGH);
  }
 
if (cas_vypnutia_cerpadla)
  {
    digitalWrite(pin_cerpadla, LOW);
    digitalWrite(pin_ventilu, LOW);
    cerpadlo_bezi = 0;
  }

// iba ventil
if (cas_otvorenia_ventilu)            //tvoja casova podmienka otvorenia ventilu , ak uz je nahodou otvoreny lebo bezi cerpadlo , nic sa nedeje
  {
    digitalWrite(pin_ventilu, HIGH);
  }

if (cas_zatvorenia_ventilu && (cerpadlo_bezi == 0))    //ked nastal cas zavretia ventilu a cerpadlo nebezi (ked cerpadlo bezi , ventil sa zatvori az dobehne cerpadlo)
  {
    digitalWrite(pin_ventilu, LOW);
  }
}
misocko
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3403
Vek: 43.71
Zalo┼żen├Ż: 14.06.2009
Bydlisko: Hlohovec
Karma: 28

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod pavol14pavol » 06 J├║n 2020, 16:29

Ak to mozem ta odkazat na arduino.php5.sk ja som mal od neo raz jeden projekt na zavlazovanie a celkom v pohode fungoval a vsetko fungovalo aj cez web
len teraz som uz zakupil original jednotku . Neviem ci ju este ma realnu este ale za opytanie nic nedas
pavol14pavol
Okoloid├║ci
Okoloid├║ci
Pr├şspevky: 37
Zalo┼żen├Ż: 03.12.2018
Bydlisko: ┼Żilina
Karma: 0

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod mato3000 » 06 J├║n 2020, 18:40

stulo nap├şsal:mato3000: ─Ćakujem, ale zrejme budem musie┼ą nap├şsa┼ą ob┼í├şrnej┼í├ş popis mojej po┼żiadavky aby sme sa pochopili. Ja u┼ż HW riadenia m├ím, taktie┼ż WiFi relay module je mi na ni─Ź ke─Ć┼że potrebujem ma┼ą aj nejak├ę anal├│gov├ę vstupy, podla ktor├Żch sa m├í riadi┼ą program vetrania a zavla┼żovania (teplota, vhkos┼ą). navy┼íe pri sklenn├şku nem├ím dosah WiFi (repeter u┼ż je ozaj ─Ćal┼íia zbyto─Źn├í komplik├ícia). :roll:


no treba hne─Ć naza─Źiatku nap├şsa┼ą ─Źo vlasne chce┼í .. ale aj napriek tvojim po┼żiadakam sa mi hento zd├í najjednoduch┼íie a najre├íonej┼íie, s tou vlhkos┼ąou ti to aj ta nebude fungova┼ą , robil som zop├ír projektov a vlasne aj rob├şm, vlhkomer je dos┼ą probl├ęm aby ─Źasom fungoval ako m├í. Najlap┼íia verzia je ru─Źn├ę za├şnanie, aj ke─Ć ma teraz za to zdrbe┼í. ─îasom rokmi na to pr├şde┼í a bude┼í to aj tak zap├şna┼ą ru─Źne,alebo cez WiFi. Ka┼żdop├ídne, rie┼íenie, ─Źo som ti p├şsal by si u┼ż mal hotov├ę a fungoalo by ti to, takto sa bude┼í tr├ípi┼ą roky a aj tak to nikdy nezlad├ş┼í, lebo by si musel niekoho st├íle otravova┼ą a aj tak to bude blbn├║┼ą. Samozrejme neni probl├ęm spravi┼ą DPS s MCU a nahodi┼ą program, je to tak na mesiac pr├íce, ale podla m┼ła tu nen├íjde┼í nikoho seri├│zneho ─Źo to bude pre teba robi┼ą.
mato3000
Obr├ízok pou┼ż├şvate─ża
Power user
Power user
Pr├şspevky: 9754
Zalo┼żen├Ż: 04.01.2009
Bydlisko: BA
Karma: 125

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod stulo » 07 J├║n 2020, 16:10

mato3000: tak nejak├ę drobnosti si u┼ż viem aj s├ím doladi┼ą..hlavne potrebujem, dobr├Ż a funk─Źn├Ż z├íklad, preto som v─Ća─Źn├Ż za ka┼żd├║ radu/pomoc k veci :P

misocko: ─Äakujem, ┼że si si dal t├║ n├ímahu to nap├şsa┼ą, "zakomponoval" som tvoj k├│d do toho svojho, tu je v├Żsledok ale bohu┼żia─ż, nejak sa ni─Ź nedeje. M├ím tam nejak├║ o─Źividn├║ chybu? :oops:

K├│d: Vybra┼ą v┼íetko
#include <Time.h>
#include <LiquidCrystal_I2C.h>
#include <DS3231.h>


DS3231  rtc(SDA, SCL);  // Init the DS3231 using the hardware interface
LiquidCrystal_I2C lcd(0x27, 20, 4);  // set the LCD address to 0x27 for a 16 chars and 2 line display
Time t;

//digital pins
const int fan3 = 11; //REL230V1
const int fan = 5; //REL24V1
const int buttonUP = 7;
const int buttonDOWN = 8;
const int buttonOK = 9;
const int buttonBACK = 10;
const int fan2 = 12; //REL230V2
const int pin_cerpadla = 2; //REL12V2
const int pin_ventilu = 3; //REL12V1

//display & RTC are on A4,A5 pins I2C

//analog pins
const byte pHpin = A0;
const int sensorTV = A1;
const int sensorTS = A2;

//program variables
int OnHour = 14; //SET TIME TO ON RELAY (24 HOUR FORMAT)
int OnMin = 33;
int OffHour = 23; //SET TIME TO OFF RELAY
int OffMin = 25;

bool cerpadlo_bezi = 0;
int buttonPushCounter = 0;
float pH = 10;
int celvmax = 28;

unsigned long previousMillis1 = 0;        // will store last time LED was updated
long OnTime1  = 20000;           // cas po ktorom sa zapne cerpadlo
long OffTime1 = 10000;          // cas zapnutia cerpadla = kolko ostane zapnute

unsigned long previousMillis2 = 0;        // predchadzajuce milisekundy
long OnTime2  = 16000;           // cas po ktorom sa otvori ventil/ak nebezi cerpadlo
long OffTime2 = 3000;          // cas otvorenia ventilu = kolko ostane otvoreny

void setup() {
  Serial.begin(9600);
  rtc.begin();
  lcd.begin();
  pinMode(buttonDOWN , INPUT_PULLUP);
  pinMode(buttonUP , INPUT_PULLUP);
  pinMode(buttonBACK , INPUT_PULLUP);
  pinMode(buttonOK , INPUT_PULLUP);

  pinMode(fan , OUTPUT);
  pinMode(pin_cerpadla , OUTPUT);
  pinMode(fan3 , OUTPUT);
  pinMode(pin_ventilu , OUTPUT);
  pinMode(fan2 , OUTPUT);

  digitalWrite(pin_cerpadla , LOW);
  digitalWrite(fan , LOW);
  digitalWrite(pin_ventilu , LOW);
  digitalWrite(fan3 , LOW);
  digitalWrite(fan2 , LOW);
}

// - funkcny void cas
// The following lines can be uncommented to set the date and time
//rtc.setDOW(MONDAY);     // Set Day-of-Week to SUNDAY
//rtc.setTime(9, 27, 00);     // Set the time to 12:00:00 (24hr format)
//rtc.setDate(27, 4, 2020);   // Set the date to January 1st, 2014
void timer() {
  t = rtc.getTime();
  lcd.setCursor(0, 0);
  lcd.print(rtc.getDateStr());
  lcd.print("|");
  lcd.print(rtc.getTimeStr());
  delay (1000);
}
void faN() {
  if (t.hour == OnHour && t.min == OnMin) {
    digitalWrite(fan3, HIGH);
    lcd.setCursor(0, 1);
    lcd.print("FAN ON");
  }

  else if (t.hour == OffHour && t.min == OffMin) {
    digitalWrite(fan3, LOW);
    lcd.setCursor(0, 1);
    lcd.print("FAN OFF");
  }
}
// funkcny void PH
void ph() {
  float Po;
  Po = (1023 - analogRead(pHpin));
  //Calibration values:
  //405@pH7
  //290@ph4
  float pHm = map(Po, 290, 406, 400, 700); //maps voltage(Po) from calibration values at 4.00 and 7.00 pH
  float pH = (pHm / 100);
  lcd.setCursor(9, 1);
  lcd.print(" | Ph=");
  lcd.print(pH);
}

// - funkcne voidy teplota
void tempV() {
  float valv;
  float mvv;
  float celv;
  valv = analogRead(sensorTV);
  mvv = (valv / 1024.0) * 5000;
  celv = mvv / 10;
  lcd.setCursor(0, 2);
  lcd.print("Tepl. hore:");
  lcd.print(celv);
  lcd.print("*C");
  if (celv > celvmax) {
    digitalWrite(fan2, HIGH);
    digitalWrite(fan, HIGH);
  }
  else {
    digitalWrite(fan2, LOW);
    digitalWrite(fan, LOW);
  }
  delay(10);
}

void tempS() {
  float vals;
  float mvs;
  float cels;
  vals = analogRead(sensorTS);
  mvs = (vals / 1024.0) * 5000;
  cels = mvs / 10;
  lcd.setCursor(0, 3);
  lcd.print("Tepl. dole:");
  lcd.print(cels);
  lcd.print("*C");
  delay(10);
}

void cerpadlo() {
  // cerpadlo a ventil
  unsigned long currentMillis1 = millis();
  unsigned long currentMillis2 = millis();

  if (currentMillis1 - previousMillis1 > OnTime1)              // podmienka ktora u teba zapina cerpadlo
  {
    previousMillis1 = currentMillis1;
    digitalWrite(pin_cerpadla, HIGH);
    cerpadlo_bezi = 1;

  }

  if (cerpadlo_bezi)
  {
    digitalWrite(pin_ventilu, HIGH);
  }

  if (currentMillis1 - previousMillis1 > OffTime1)
  {
    previousMillis1 = currentMillis1;
    digitalWrite(pin_cerpadla, LOW);
    digitalWrite(pin_ventilu, LOW);
    cerpadlo_bezi = 0;
  }

  // iba ventil
  if (currentMillis2 - previousMillis2 > OnTime2)            //tvoja casova podmienka otvorenia ventilu , ak uz je nahodou otvoreny lebo bezi cerpadlo , nic sa nedeje
  {
    previousMillis2 = currentMillis2;
    digitalWrite(pin_ventilu, HIGH);
  }

  if (currentMillis2 - previousMillis2 > OffTime2 && (cerpadlo_bezi == 0))    //ked nastal cas zavretia ventilu a cerpadlo nebezi (ked cerpadlo bezi , ventil sa zatvori az dobehne cerpadlo)
  {
    previousMillis2 = currentMillis2;
    digitalWrite(pin_ventilu, LOW);
  }
}

void loop()
{
timer();
faN();
cerpadlo();
tempV();
tempS();
ph();
}
Spravi┼ą chybu je prejav ─żudskosti, ale prizna┼ą si ju, to je prejav charakteru. Oliver Dendis
stulo
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 273
Vek: 21.24
Zalo┼żen├Ż: 31.08.2012
Bydlisko: ─îierny balog
Karma: 1

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod misocko » 07 J├║n 2020, 17:19

tak v takychto pripadoch si ja necham vypisat premenne na seriovy monitor
aj teraz , a
problem mas v tom ze vypnutie cerpadla nastane vzdy skor ako zapnutie cerpadla , pouzita ta ista casova konstanta a este aj "znulovana" v oboch pripadoch (zapnuti aj vypnuti)
treba si uvedomit ze to MCU sa nikde nezastavuje ... (to je na zaciatok to najtazsie)
nerad robim s millis a mikro... , velmi tomu nerozumiem , ale ak sa nikto nenajde kto by Ti s tymto jednoduchym kodom pomohol , skusim to nejako preluskat (podotykam ze som uplny amater v tomto) :D
misocko
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3403
Vek: 43.71
Zalo┼żen├Ż: 14.06.2009
Bydlisko: Hlohovec
Karma: 28

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod misocko » 07 J├║n 2020, 20:16

dal som si to ako vyzvu :D
verim tomu ze sa to da napisat ovela elegantnejsie , ale moja hlava na tie casy nieje, skusal som si to aj nakreslit ale nakoniec mi z toho vypadlo iba toto , aj to musel pouzit sialene nazvy premennych aby som sa v tom uplne nestratil
K├│d: Vybra┼ą v┼íetko
bool cerpadlo_bezi = 0;
bool ventil_otvoreny = 0;

static byte pin_cerpadla = 2;
static byte pin_ventilu = 4;

unsigned long cas_startu_cerpadla = 0;
unsigned long cas_otvorenia_ventilu = 0;
unsigned long predchadzajuci_cas_startu_cerpadla = 0;
unsigned long predchadzajuci_cas_otvorenia_ventilu = 0;
unsigned long aktualny_cas;

static int T_Periody_cerpadla = 20000;
static int T_Periody_ventilu = 10000;
static int T_ON_PUMP = 2000;
static int T_ON_VALVE = 3000;

void setup() {
pinMode(pin_cerpadla, OUTPUT);
pinMode(pin_ventilu, OUTPUT);
Serial.begin(9600);
}

void loop()
{
aktualny_cas = millis();

// cerpadlo a ventil
if ((aktualny_cas - predchadzajuci_cas_startu_cerpadla ) > T_Periody_cerpadla )   //start cerpadla
  {
    cas_startu_cerpadla = aktualny_cas;
    predchadzajuci_cas_startu_cerpadla = aktualny_cas;
    digitalWrite(pin_cerpadla, HIGH);
    cerpadlo_bezi = 1;
/*    Serial.println(aktualny_cas);
    Serial.println("cerpadlo ON");*/
  }

if (cerpadlo_bezi)
  {
/*    Serial.println(aktualny_cas);
    Serial.println("ventil ON");*/
    digitalWrite(pin_ventilu, HIGH);
  }

if (((aktualny_cas - cas_startu_cerpadla) > T_ON_PUMP) && cerpadlo_bezi)
  {
    digitalWrite(pin_cerpadla, LOW);
    digitalWrite(pin_ventilu, LOW);
    cerpadlo_bezi = 0;
    ventil_otvoreny=0;
/*   Serial.println(aktualny_cas);
    Serial.println("cerpadlo OFF");
    Serial.println("ventil OFF");*/
  }


// iba ventil
if ((aktualny_cas - predchadzajuci_cas_otvorenia_ventilu) > T_Periody_ventilu )            //tvoja casova podmienka otvorenia ventilu , ak uz je nahodou otvoreny lebo bezi cerpadlo , nic sa nedeje
  {
    predchadzajuci_cas_otvorenia_ventilu = aktualny_cas;
    cas_otvorenia_ventilu = aktualny_cas;
    digitalWrite(pin_ventilu, HIGH);
/*    Serial.println(aktualny_cas);
    Serial.println("ventil ON");*/
    ventil_otvoreny=1;
  }

if (((aktualny_cas - cas_otvorenia_ventilu) > T_ON_VALVE) && !cerpadlo_bezi && ventil_otvoreny)    //ked nastal cas zavretia ventilu a cerpadlo nebezi (ked cerpadlo bezi , ventil sa zatvori az dobehne cerpadlo)
  {
    digitalWrite(pin_ventilu, LOW);
/*    Serial.println(aktualny_cas);
    Serial.println("ventil OFF");*/
    ventil_otvoreny=0;
  }
}
misocko
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3403
Vek: 43.71
Zalo┼żen├Ż: 14.06.2009
Bydlisko: Hlohovec
Karma: 28

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod Atlan » 07 J├║n 2020, 20:36

Na tlacidla pouzi pullup rezistory 1k bude to odolnejsie, res vobec pouzitelne (bolo by fajn k tlacidlam kondik 10n pre zicher) . Nikde tam nevidim 4k7 odpory na i2c zbernici, budeme verit ze su na rtc alebo i2c displeji. Ok
Natrrpat priamo analogove vstupy do uP ja ti neviem, ake maju senzory rozhranie chcelo by to osetrit. Tak ze analogove, daj tam nejaky ochrany odpor na vstup a fitruj vstup komdenzatorom. Ono je pekne ze ide spriemerovat hodnotu zo vstupu, ale to ti bude figu platne ked ti nejake rusenie zhodi procesor.
A nie softverom HW neokabatis. Vypomsti sa ti to.

Mllis nemozes pouzivat = lebo program sa niekde zdrzi a podmienka nikdy nenastane, pouzi => vtedy nebude vadit ze mas nastaveney cas 1000milis a hodiny v case podmienky budu mat 1005 (ano o 5 viacej ale to nieje tu podstatne hlavne ze vypne cerpadlo)
Ako budes mat osetrete pretecenie toho milis?
Atlan
Obr├ízok pou┼ż├şvate─ża
St├íly ─Źlen
St├íly ─Źlen
Pr├şspevky: 331
Zalo┼żen├Ż: 01.02.2008
Karma: 0

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod peterple » 07 J├║n 2020, 21:07

─Źo pla┼í├ş┼í. Nikde nevid├şm ┼że by mali pou┼żit├ę testovanie pomocou rovn├í sa (==) maj├║ tam v├Ą─Ź┼í├ş. A prete─Źenie millis je vyrie┼íen├ę t├Żm v├Żpo─Źtom ktor├Ż je tam pou┼żit├Ż. Je to OK.
Uk├í┼ż m├║dremu chybu a on sa ti po─Ćakuje. Uk├í┼ż chybu hlup├íkovi a on sa uraz├ş.
peterple
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 2031
Vek: 53.62
Zalo┼żen├Ż: 25.06.2013
Bydlisko: Krajn├ę
Karma: 54

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod misocko » 07 J├║n 2020, 21:12

so vsetkym suhlasim
okrem "millis nemozes pouzivat s "=" ", mozes, lebo "=" je priradenie , na porovnanie musis dat "==" , takze to mame OK
ale v podstate millis sa mi niekolkokrat vypomstili ked som mal jednoduchy kod a nechapal som co sa deje, potom som si dal vypis a jednej milisekunde kod zbehol aj 5 krat :-)
misocko
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3403
Vek: 43.71
Zalo┼żen├Ż: 14.06.2009
Bydlisko: Hlohovec
Karma: 28

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod pocitujlasku » 07 J├║n 2020, 21:58

misocko. ano, a preto by sa mala pouzivat podmienka milis + nejaka bool premenna, ktora hovori o tom, ze uz dana podmienka bola zaznamenana a prave sa vykonava.
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedn├şm z nejv─Ťt┼í├şch projev┼» ned┼»v─Ťry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 4984
Vek: 37.34
Zalo┼żen├Ż: 20.07.2007
Bydlisko: Poprad
Karma: 19

Re: Automatick├ę zavla┼żovanie pomocou arduina

Odosla┼ąod misocko » 07 J├║n 2020, 22:25

ked nemusim tak millis (micro....) nepouzivam, proste mi nejdu, ale zas na moje domace hranie...
dokonca som pre vypis na displej (aktualizujem v jednom "projekte" kazdu sekundu) pouzil sekundovy vystup RTC na prerusenie do arduina a na zaklade prerusenia robim vypis :lol:
misocko
Obr├ízok pou┼ż├şvate─ża
Ultimate ─Źlen
Ultimate ─Źlen
Pr├şspevky: 3403
Vek: 43.71
Zalo┼żen├Ż: 14.06.2009
Bydlisko: Hlohovec
Karma: 28


Nasp├Ą┼ą na C,C++,C#

Kto je pr├ştomn├Ż

U┼ż├şvatelia prezeraj├║ci si toto f├│rum: ┼Żiadny registrovan├Ż pou┼ż├şvate─ż a 1 hos┼ą.

Forums ©
Autor str├ínky je Ondrej Z├ívodsk├Ż(zawin), o graficky design sa star├í ─Żubo┼í Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
─îas potrebn├Ż k spracovaniu str├ínky 0.93 sek├║nd