Automatické zavlažovanie pomocou arduina

C,C++,C#

Moderátori: psichac, Moderátori

stulo
Stály člen
Stály člen
Príspevky: 273
Dátum registrácie: 31 Aug 2012, 17:02
Vek: 25

Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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:
0
Spraviť chybu je prejav ľudskosti, ale priznať si ju, to je prejav charakteru. Oliver Dendis

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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-H ... SwBY5a8nkV
0

Používateľov profilový obrázok
eurobastler
Ultimate člen
Ultimate člen
Príspevky: 3903
Dátum registrácie: 19 Apr 2009, 00:00
Bydlisko: BA
Vek: 35

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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.
0
Obrázok

Používateľov profilový obrázok
mihal.dp
Stály člen
Stály člen
Príspevky: 457
Dátum registrácie: 04 Júl 2008, 00:00
Bydlisko: okres VK
Vek: 33
Kontaktovať používateľa:

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa mihal.dp » 04 Jún 2020, 11:36

A tovarenske riesenie zacinajuce od cca 60€? Gardena 6030, Hunter, Rain bird...
0

zylo64
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 21 Apr 2013, 19:38
Bydlisko: Michalovce
Kontaktovať používateľa:

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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ý.
0

stulo
Stály člen
Stály člen
Príspevky: 273
Dátum registrácie: 31 Aug 2012, 17:02
Vek: 25

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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
0
Spraviť chybu je prejav ľudskosti, ale priznať si ju, to je prejav charakteru. Oliver Dendis

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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íľ.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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);
  }
}
0

pavol14pavol
Nový člen
Nový člen
Príspevky: 53
Dátum registrácie: 03 Dec 2018, 21:03
Bydlisko: Žilina

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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
0

mato3000
Power user
Power user
Príspevky: 9767
Dátum registrácie: 04 Jan 2009, 00:00
Bydlisko: BA

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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ť.
0

stulo
Stály člen
Stály člen
Príspevky: 273
Dátum registrácie: 31 Aug 2012, 17:02
Vek: 25

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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();
}
0
Spraviť chybu je prejav ľudskosti, ale priznať si ju, to je prejav charakteru. Oliver Dendis

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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
0

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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;
  }
}
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1146
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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?
0

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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 :-)
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6201
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Používateľov profilový obrázok
misocko
Ultimate člen
Ultimate člen
Príspevky: 4318
Dátum registrácie: 14 Jún 2009, 00:00
Vek: 47

Re: Automatické zavlažovanie pomocou arduina

Príspevok od používateľa 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:
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok