Stránka 2 z 4

Re: Řízení ventilace-nelze zkompilovat

Napsal: 06 kvě 2018, 23:01
od gilhad
Tady pisou, ze DTH22 potrebuje az 2s na inicializaci a nacteni dat - to ale neznamena, ze musis cekat v delay(2000) a nic nedelat. Klidne mezitim muzes delat cokoli jineho a data si nacist az budou pripravena.
http://phgame.cz/PHGame_serialy/serialy ... zor-dht-22

Tady je datasheet, kde pisou, ze komunikace sama trva 5ms
http://www.adafruit.com/datasheets/DHT22.pdf

takze klidne muzes nahodit vsechna DTH naraz, pak si zobrazit menu, precist si DS18B20 cidla, zareagovat na menu a az utecou 2 sec, tak nacist hodnoty z kazdeho DTH22, zase mu rict at meri znova, zobrazit hodnoty, reagovat na vstup od uzivatele, ... po delsi dobe si zase precist ty nestastny DTH22 atd atd ...

Re: Řízení ventilace-nelze zkompilovat

Napsal: 07 kvě 2018, 07:09
od Lubomir
Ano.
Delay nepoužívám nikde,jen previousMillis,kdy se program nezastavuje.Ale přes to,program dojede až k DHT a čeká na všechna čidla a při tom se nedá pohybovat v menu.Výsledek je že reakce na joystik trvá přez 1 s

Re: Řízení ventilace-nelze zkompilovat

Napsal: 07 kvě 2018, 10:58
od gilhad
Pak je otazka, jak to DHT ovladas, jestli ta knihovna, kterou jsi pouzil, umoznuje poslat inicializaci zvlast a zvlast cist vysledek, nebo jestli to spoji do jedine operace, behem niz trapne ceka na vysledek a blokuje rozumne pouzivani
(jako to treba dela analogRead() ze zakladnich funkci - taky posle inicializaci cteni hodnoty z pinu a trapne ceka na vysledek, zatimco by arduino klidne mohlo pracovat, nez se ta analogova hodnota nacte a pak ji jen rychle precist)

Pripadne zda ta knihovna neumoznuje oboji pristup nejak (nebo pokud sis to psal sam, tak jak to cteni delas).

Pokud ta knihovna umoznuje jen blokujici cteni (hanba, fuj), tak mas tri zakladni moznosti:
- pouzit lepsi knihovnu
- opravit tu stavajici
- napsat si to cele sam

Re: Řízení ventilace-nelze zkompilovat

Napsal: 22 kvě 2018, 18:59
od Lubomir
Ahoj
Zase dotaz na Dht22 senzor.
Mám k jednomu čidlu stíněný kabel asi 16m,u senzoru 4k7 na signální vodič a ještě blokující kond.100n.
I tak se mi občas stane že vypadne jeden cyklus spojení a na displeji se zobrazí (nan).
To by vůbec nevadilo,ovšem při tom krátkém výpadku,se zastaví i ventilátory!
Lze čidlu domluvit aby při takovém výpadku použilo předešlá data bez zastavení ventilátoru??
Díky

Re: Řízení ventilace-nelze zkompilovat

Napsal: 22 kvě 2018, 20:21
od Lubomir
Tak jsi odpovím.
Našel jsem v DHT knihovně pomoc "isnan",která přes proměnnou lze zpětně vyvolat.
Tak to nějak zkusím zapsat.
:oops:

Re: Řízení ventilace-nelze zkompilovat

Napsal: 03 čer 2018, 15:49
od Lubomir
Ahoj
Mám ještě prosbu o (nakopnutí).
Jak by šla zavézt hystereze,u proměnného vstupu CO2 a přepínání výkonu pomocí 4x relé? :?

Kód: Vybrat vše

        else if(CO2 > CO2_min && CO2 < CO2_max )
      {
        digitalWrite(R_1_IN, HIGH);
        digitalWrite(R_2_IN, LOW);
        digitalWrite(R_1_OUT, HIGH);
        digitalWrite(R_2_OUT, LOW);
        state_Sfan = 1;
        state_Efan = 1;
      }
       
            
      else if ( CO2 > CO2_max )
      {
        digitalWrite(R_1_IN, LOW);
        digitalWrite(R_2_IN, HIGH);
        digitalWrite(R_1_OUT, LOW);
        digitalWrite(R_2_OUT, HIGH);
        state_Sfan = 2;
        state_Efan = 2;


Re: Řízení ventilace-nelze zkompilovat

Napsal: 03 čer 2018, 22:07
od rejze69
Myslíš určitou minimální hysterezi,která nebude vždy na stejných hodnotách? Tedy rozdíl mezi min a max třeba 10 jednotek, ale s možností posouvat ji škálou?

Re: Řízení ventilace-nelze zkompilovat

Napsal: 05 čer 2018, 20:13
od Lubomir
Ahoj
Ano,přesně tak,
Malá hystereze 10 PPm CO2,aby nedocházelo k neustálemu cvakání rele a zatěžování ventilátoru,
U jednoho rele to není problém,ale u 2 a více rele které se zapínají a vypínají v návaznosti si nevím rady.
Zatím testuju s pevnýma hodnotama dosazenýma místo CO2-Min a CO2-max.Jen mě nenapadá jak hysterezy vřadit mezi 2 rele.
Díky

Re: Řízení ventilace-nelze zkompilovat

Napsal: 06 čer 2018, 01:23
od rejze69
Něco podobného jsem řešil.

Kód: Vybrat vše

//--------------------------------------------------------------
void pressSetup() {
  byte HiPress=EEPROM.read(11); //promenne pro nastaveni tlaku
  byte LoPress=EEPROM.read(10);
  switch(Set) {
    case 1:
    HiPress=(EEPROM.read(11)+krok); //Inkrementace od puvodni hodnoty
    if(HiPress > 50) { //nastaveni horni meze
      HiPress=50;
      krok--;
    }
    else if(HiPress < LoPress+10) { // vymezeni minimalni hystereze 1 bar
      HiPress=(LoPress+10);
      krok++;
    }
    if (EnterFlag == true) {      //po stisku enter
      EEPROM.update(11, HiPress); // uloz hodnotu
      Set++;                      //prejdi na dalsi polozku
    }
    break;
    case 2:
    LoPress=(EEPROM.read(10)+krok); //inkrementace puvodni hodnoty
    if(LoPress < 20) { //nastaveni spodni meze
      LoPress=20;
      krok++;
    }
    else if(LoPress > HiPress-10) { // minimalni hystereze 1 bar
      LoPress=(HiPress-10);
      krok--;
    }
    if (EnterFlag == true) { //po stisku enter
      EEPROM.update(10, LoPress); //uloz hodnotu
      Set++; //prejdi na default
    }
    break;
    default: // vynulovani pro dalsi cyklus nastaveni
    krok=0;
    Set=1;
    mod=0; // a navrat do hlavniho programu
Je to snad srozumitelně okomentované. V mém případě jde o nastavování hodnot podle kterých má spínat čerpadlo. Při tom je potřeba,aby nastavované hodnoty zůstaly v povolených mezích 2-5bar,aby rozdíl mezi horní a dolní hodnotou byl min 1bar(hystereze),ale zároveň ta hystereze nebyla v pevně stanoveném místě. Když tedy s horní hodnotou ustoupím nahoru,spodní se k ní zase může přiblížit až na 1bar,pokud pak chci s horní dolů musím nejdřív snížit spodní na rodíl větší než 1bar. Chtělo by to ještě kdybys popsal jestli jde o ukládání přednastavených hodnot,nebo přímo práci s měřenými hodnotami. Co se měří je jedno,ale potřeboval bych vědět co porovnáváš a co za jakých okolností spínáš a vypínáš.Víc přibliž co to má dělat.

Re: Řízení ventilace-nelze zkompilovat

Napsal: 06 čer 2018, 20:24
od Lubomir
Ahoj
To je pěkně a jednoduše napsané,smekám.
Zkoušel jsem různé (mrtvé) body,které cvakání spíše zvětšilo,ale takto nee.
Samozdřejmě je nejdůležitější aby se neseply obě relé najednou-to se ventilátoru fakt nelíbí.
Spínám dvě rychlosti dvou ventilátoru(každá rychkost jedním relé),pro rekuperační jednotku.Umí 4 rychlosti ale zatím zkouším jen 2 abych se v tom neztratil.
Je to zatím na základě čidla CO2.Větší hodnota CO2 -vyšší rychlost.
Později přidám ovládání i na základě čidla vlhkosti DHT22.
Problém je že tu hysterezi musím dostat (mezi) relé + dolní a horní meze.
Díky!