Ukladani prebytku "Drama"

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Ukladani prebytku "Drama"

Příspěvek od rimi »

Rizeni boileru podle Dramy, doplneno o LCD a mereni teploty, zobrazuji se Wh odeslane do boileru.

Display (cim vice radku tim lepe), ja pouzivam 4 radky 20 znaku, maji je treba tu:
http://aukro.cz/lcd-ctyrradkove-20x4-lc ... 98912.html
nebo tu:
http://aukro.cz/display-lcd-displej-200 ... 73803.html

zapojeno podle prikladu:
http://arduino.cc/en/Tutorial/LiquidCrystal
v prikladu neni podsviceni LED, to jsou posledni 2 piny

a pak se jeste musi pres lcd.begin rict, jak velky je displej, v mem pripade
lcd.begin(20,4);
(s pripojenim LCD me navedl prodejce, fungujenaprosto bez potizi)

teplotni cidla trebas tahle (jde to i bez nich):
http://www.ges.cz/cz/cidlo-teploty-ds18 ... 00306.html

Dale se musi stahnout a rozbalit knihovny OneWire a DallasTemperature, stahoval jsem nejake neaktualni a hazelo to chyby, nakonec jsem pouzil spravne a ok.

Zatim neni uchozen modbus ("nekdo" musi natahnout kabel), tak pouzivam delic se zenerkou (priblizne hodnoty pro 24V), aby se z napeti 18 - 32 stalo 0-5V, no ten AD prevodnik arduina neni moc stabilni, skace to i o 0,2V:

plus
|
zenerka na 18V
|
odpor 4k7
|
odsud drat k arduinu
|
odpor 2k7
|
spolecna zem



Tu je aktualni kod:

Kód: Vybrat vše

//knihovny a inicializace pro teplomery
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 7
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

//display
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


int analogPin           = 3;  // pin na kterem merime napeti na baterii
float targetVoltage     = 29; // hodnota ciloveho napeti
int targetPinUp         = 50;//pin zmena ciloveho napeti nahoru
int targetPinDown       = 52;//pin zmena ciloveho napeti dolu
float targetVoltageStep = 0.1;//skok pro zmenu ciloveho napeti
float minVoltage        = 28; // minimalni hodnota napeti, pri ktere se vypina PWM
float analogVoltage     = 0;  // hodnota na pinu analogPin
int pwmPin              = 13; // pin na kterem vyrabime PWM signal

float analogOffset      = 18.67;//zacatek rozsahu - posunute zenerkou
float analogRange       = 14.1;//mereny rozsah (m)

float diffMax           = 0.07; // maximalni odchylka od ciloveho napeti
byte pwmDuty            = 0; // kolik % PWM cyklu bude rele zapnuto
byte pwmStepUp          = 2; // minimalni zmena skoku PWM nahoru
byte pwmStepDown        = 4; // minimalni zmena skoku PWM dolu
int pwmMax              = 100; // maximalni povoleny vykon v %
int pwmFreq             = 50; // frekvence PWM - maximalne 100Hz!
int pwmCycle            = 1; // cas v sekundach mezi zmenou PWM duty
int sumTime             = 0; // celkova delka PWM cyklu v ms
int pwmLength           = 0; // delka jednoho cyklu v milisekundach
int tempDelay           = 10;//kolik cyklu se nevycita teplota (zdrzuje)
int loadPower           = 1200; // vykon zateze W pro vypocet akumulovane energie ve Wh
float loadTime;//prubezne nacitani casu ON v milisekundach pro zobrazeni Wh
int j;//pomocna promena pro pocitani cyklu
int k; //pro teplotu, neumim zaokrouhleni jinak

// funkce se provede po startu
void setup() {
  lcd.begin(20, 4);
  sensors.begin();

  // nastaveni digitalniho pinu jako vystup
  pinMode(pwmPin, OUTPUT);
  pinMode(targetPinUp, INPUT);
  pinMode(targetPinDown, INPUT);
  // par odberu pro odstraneni hlouposti;
  analogRead(analogPin);
  analogRead(analogPin);
  delay(500);
  analogRead(analogPin);
  delay(500);
  analogRead(analogPin);
}

void loop() {
  //zmena ciloveho napeti tlacitky
  if (digitalRead(targetPinUp) == HIGH){       
    targetVoltage +=targetVoltageStep;  
  }
  else if(digitalRead(targetPinDown) == HIGH){
    targetVoltage -=targetVoltageStep;  
  }

  // nacteme aktualni napeti (poradi clenu dela bordel, asi pocita na malo desetinych mist?)
  analogVoltage= (analogRead(analogPin) * analogRange)/1024+analogOffset;
  // pokud je rozdil napeti skutecneho a ciloveho 
  // ve stanovene mezi, zvysime vykon, jinak snizujeme
  if (targetVoltage - analogVoltage < diffMax)
  {
    if (pwmDuty+pwmStepUp > pwmMax)
    {
      pwmDuty=pwmMax;
    }
    else
    {
      pwmDuty=pwmDuty+pwmStepUp;
    }
  }
  else
  {
    if (pwmDuty-pwmStepDown < 0)
    {
      pwmDuty=0;
    }
    else
    {
      pwmDuty=pwmDuty-pwmStepDown;
    }
  }
  // skokove stazeni vykonu, pokud dojde k poklesu napeti  
  if ( analogVoltage < minVoltage)
  {
    pwmDuty=0;

  }

  lcd.setCursor(0, 0);
  lcd.print("Bat");
  if(analogVoltage > analogOffset + 0.1){
    lcd.print(analogVoltage, 1);     
  }
  else{
    lcd.print("--.-");  
  }  
  lcd.print("V "); 

  lcd.setCursor(10, 0);
  lcd.print("On:");
  lcd.print(targetVoltage, 1);   
  lcd.print("V ");

  lcd.setCursor(0, 1);
  lcd.print("Load ");
  lcd.print(pwmDuty);  
  lcd.print("% ");

  //cteni teploty jednou za deset cyklu (zdrzuje)
  j++;
  if(j==tempDelay){
    j=0;
    sensors.requestTemperatures();
    lcd.setCursor(0, 2); 
    lcd.print("T1:");
    //lcd.setCursor(3, 2);
    lcd.print(sensors.getTempCByIndex(0),1);
    lcd.print((char)223);

    lcd.setCursor(10, 2); 
    lcd.print("T2:");
    //lcd.setCursor(13, 2);
    lcd.print(sensors.getTempCByIndex(1),1);  
    lcd.print((char)223);  

    lcd.setCursor(10, 1);
    lcd.print("Wh:");
    //bez pouziti promene typu int a pretypovani primo ve vysledku obcas lezly zaporne hodnoty ??
    k = ( loadTime / 1000 * loadPower / 3600);
    lcd.print(k);
    //loadTime=0;
  }
  // Vlastni PWM cyklus
  sumTime = 0;
  pwmLength = 1000 / pwmFreq;


  while ( sumTime < pwmCycle * 1000)
  {
    if(pwmDuty == 100){
      digitalWrite(pwmPin, HIGH);
      sumTime=pwmCycle * 1000;
      loadTime +=pwmCycle * 1000;
      delay(pwmCycle * 1000);
    }
    else if (pwmDuty > 0)
    {
      sumTime=sumTime+pwmLength+pwmLength*(100-pwmDuty)/pwmDuty;
      digitalWrite(pwmPin, HIGH);
      loadTime +=pwmLength;
      delay(pwmLength);
      digitalWrite(pwmPin, LOW);
      delay(pwmLength*(100-pwmDuty)/pwmDuty);
    }
    else
    {
      digitalWrite(pwmPin, LOW);
      sumTime=pwmCycle * 1000;
      delay(pwmCycle * 1000);
    }  

  }
}
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

Dovolim si odpovedet sem, at nekonim Dramuv Kokonin:
luge píše: Ahoj.
Ako to beží? :?: Som na tom asi tak ako PalelR.Uvítal by som možnosť hotového arduina,že to len zapojím na vstupy a výstupy a nech to fachčí.Vedel by to poslať niekto už naprogramované?Čoskoro pripojím ďalšie panely a prebytky chcem do bojlera.
Cau.
Beha vyborne, za posledni 3 dny cca 6kW, coz u drazicke 120 udelalo asi 50 stupnu (jeste jsem nezapojil cidlo), takze vcera jsem slavnostne odstavil plynovy prutokac, kteremu je boiler predrazeny (preci jen v zamracene dny neni nic navic).
Na rozdil od Dramy to nemuzu poustet rucne, v dobe "Absorption" ci "Float" byvam v praci, takze jsem cilove napeti nastavil na 29, a v MS TS posunul cilove napeti baterek na 29,5, takze se nikdy ani Absorption nespousti (pouzivam NiCD).

A co se tyce arduina, nemas se ceho bat, kdyztak se podivej sem, Filip to tam ma hezky popsane:
http://hw.mypower.cz/loggers:simple:0-1
instalaci SW se venuji bodyu 1-4

Aplikace otevre neco jako poznamkovy blok...kod tam vlozis stylem ctrl-c ctrl-v, je to jednoduche, pokud by fakt neco neslo, bydlim "kousek" od Slovenska nebo to muzem spachat za pomoci posty.

Pokud vyjdou na tohle vyhrazene penize, kup rovnou verzi mega:
http://shop.mypower.cz/arduino-mega-256 ... tforma-140
Zvladas neco zapajet? Pokud ano, kup i display, preci jen je krasa pozorovat, co se deje (na kolik procent to bezi, kolik uz nateklo do boileru), jinak totiz musis mit pripojene arduino pres USB ke kompu.
Je toho spousta co doplnovat, trebas ted placam logovani dat na kartu a pokud zvladnes program tam nahrat sam, da se cokoli v budoucnu dodelat presne na miru "na dalku".
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od luge »

rimi píše:Dovolim si odpovedet sem, at nekonim Dramuv Kokonin:
luge píše: Ahoj.
Ako to beží? :?: Som na tom asi tak ako PalelR.Uvítal by som možnosť hotového arduina,že to len zapojím na vstupy a výstupy a nech to fachčí.Vedel by to poslať niekto už naprogramované?Čoskoro pripojím ďalšie panely a prebytky chcem do bojlera.
Cau.
Beha vyborne, za posledni 3 dny cca 6kW, coz u drazicke 120 udelalo asi 50 stupnu (jeste jsem nezapojil cidlo), takze vcera jsem slavnostne odstavil plynovy prutokac, kteremu je boiler predrazeny (preci jen v zamracene dny neni nic navic).
Na rozdil od Dramy to nemuzu poustet rucne, v dobe "Absorption" ci "Float" byvam v praci, takze jsem cilove napeti nastavil na 29, a v MS TS posunul cilove napeti baterek na 29,5, takze se nikdy ani Absorption nespousti (pouzivam NiCD).
Presne tak isto pred plynakom mam bojler aj ja.
Dobre tomu rozumiem,arduino stráži spínacie a rozpínacie napetie baterie?Keď dosiahne 29 tak ssr relé pripojí bojler?Pri akom napetí bojler odpojí?Ak ano tak ma napadá aj iné riešenie. ;)
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

Napeti se daji jakkoli nastavit primo v zahlavi souboru:
float targetVoltage = 29; // hodnota ciloveho napeti
float diffMax = 0.07; // maximalni odchylka od ciloveho napeti

No to slovo pripoji neni uplne presne, pripoji trebas jen jedno procento zateze, mrkni sem:
http://cs.wikipedia.org/wiki/Pulzn%C4%9 ... 1_modulace
Jak to vypadalov so a ne (vykon panelu 1,6, zatez 1,2 kW), meritko jsou procenta pripnuti boileru, vzorkovani co tri minuty:
ty zuby je vysavac, rychlovarna a tak. Pokud to pripojis nejakym vypinacem rovnou, zbytek musi dodat baterky...
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od luge »

rimi píše:Napeti se daji jakkoli nastavit primo v zahlavi souboru:
float targetVoltage = 29; // hodnota ciloveho napeti
float diffMax = 0.07; // maximalni odchylka od ciloveho napeti

No to slovo pripoji neni uplne presne, pripoji trebas jen jedno procento zateze, mrkni sem:
http://cs.wikipedia.org/wiki/Pulzn%C4%9 ... 1_modulace
Jak to vypadalov so a ne (vykon panelu 1,6, zatez 1,2 kW), meritko jsou procenta pripnuti boileru, vzorkovani co tri minuty:

ty zuby je vysavac, rychlovarna a tak. Pokud to pripojis nejakym vypinacem rovnou, zbytek musi dodat baterky...
Teraz mi je to jasné.Nejak som si neuvedomil že je využívaná PWM.Čo sa týka NF elkroniky nemám závažný problém,ale programovanie v PC a podobne to jednoducho neviem.
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

Kup to arduino, at se pohnem...
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od luge »

rimi píše:Kup to arduino, at se pohnem...
:yes: Tak ale teraz mi je to ozaj jasné.Navštívim obchod s PC komponentami.Čiže Arduino Mega 2560 plus displej.
prochazka85
Příspěvky: 221
Registrován: ned kvě 20, 2012 9:20 pm
Reputace: 4

Re: Ukladani prebytku "Drama"

Příspěvek od prochazka85 »

tak arduino mam objednane, v podstate po prostudovani vsech vlaken je mi tak nejak jasne zapojeni toho arduina a displeye, atd, co jsem zatim nepochopil uplne presne jake je zapojeni SSR rele, jasny z jedne strany do nej jde signal PWM z arduina ale jak vypada schema na silove strane.
Neslo by prosim nejake jednoduche schematko?
Dekuji
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

prochazka85 píše:tak arduino mam objednane, v podstate po prostudovani vsech vlaken je mi tak nejak jasne zapojeni toho arduina a displeye, atd, co jsem zatim nepochopil uplne presne jake je zapojeni SSR rele, jasny z jedne strany do nej jde signal PWM z arduina ale jak vypada schema na silove strane.
Neslo by prosim nejake jednoduche schematko?
Dekuji
slo ;)
prochazka85
Příspěvky: 221
Registrován: ned kvě 20, 2012 9:20 pm
Reputace: 4

Re: Ukladani prebytku "Drama"

Příspěvek od prochazka85 »

na zaklade dostupnych informaci k tomu tematu jsem se pokusil sestrojit kompletni schema zapojeni ukladani prebytku ala "drama".

pokud to je spravne pokusim se to sestrojit a dukladne to zdokumentuji
aby vznikul nejaky uceleny projekt k ukladani prebytku ktery zvladne realizovat
i solarnik zacatecnik :)
Naposledy upravil(a) prochazka85 dne sob čer 23, 2012 8:13 am, celkem upraveno 2 x.
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od luge »

prochazka85 píše:na zaklade dostupnych informaci k tomu tematu jsem se pokusil sestrojit kompletni schema zapojeni ukladani prebytku ala "drama"

pokud to je spravne pokusim se to sestrojit a dukladne to zdokumentuji
aby vznikul nejaky uceleny projekt k ukladani prebytku ktery zvladne realizovat
i solarnik zacatecnik :)
Super :yes: .Už sa teším.To teplotné čidlo je pre akumulátory?
prochazka85
Příspěvky: 221
Registrován: ned kvě 20, 2012 9:20 pm
Reputace: 4

Re: Ukladani prebytku "Drama"

Příspěvek od prochazka85 »

to by melo byt na teplotu vody v bojleru
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

ten delic je myslen nejak takto:
zem je stale spolecna. Pokud by nekomu zalezelo na teplotni stabilite napeti, bylo by lepsi poskladat 3 zenerky po 5-6 voltech.

Jo, primarne na teplotu vody. Ty cidla se stosuji na sebe (paralelne), urcite 10 jich lze zapojit, do systemu se pak hlasi cisly, jde udelat, aby na poslednim radku zobrazoval stridave vsechny "zaevidovane" nebo vlastne cokoli cloveka napadne, tusim, ze Drama tak ma resene to mereni v podkrovi , obyvaku a .....

To rozmisteni vyvodu bych nebral jako dogma, muze se to dost posunout trebas diky ethernet shieldu, ja to trebas aktualne zapojil takto:
//presun kvuli eth. shildu
// 2 > 6
//4 > 7
a prislusna zmena v programu se provede touto zmenou:
LiquidCrystal lcd(12, 11, 5, 7, 3, 6);
prochazka85
Příspěvky: 221
Registrován: ned kvě 20, 2012 9:20 pm
Reputace: 4

Re: Ukladani prebytku "Drama"

Příspěvek od prochazka85 »

dekuji za pripominky, zde je aktualizovane schema
Výkres1.png
jara
Příspěvky: 166
Registrován: úte zář 11, 2012 11:59 pm
Reputace: 0

Re: Ukladani prebytku "Drama"

Příspěvek od jara »

Tak jak to bezi? Asi to budu delat taky, az dokoncim instalaci FVE. Dalo by se to pouzit na prvoz elektrickeho primotopu, akorat misto bojleru bude promotop? Takze by se v postate zapnul, jen kdyz by byly probytky.
Panely 2,5 Kw ,regulator PCM 8048,baterie 720 Ah, system 24v, menic 5000W
luge
Příspěvky: 750
Registrován: ned lis 13, 2011 5:52 pm
Reputace: 36
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od luge »

jara píše:Tak jak to bezi? Asi to budu delat taky, az dokoncim instalaci FVE. Dalo by se to pouzit na prvoz elektrickeho primotopu, akorat misto bojleru bude promotop? Takze by se v postate zapnul, jen kdyz by byly probytky.
Ahoj.
Primotop môžeš zapojiť ale taký bez ventilátora.

Dnes som zapojil túto aplikáciu.Komponenty som objednával z hobbykingu.
Ďakujem dramovi a ostatným za info v tejto téme a tiež jaríkovi za upravu a rozchodenie arduina. :yes:
Zatial som to testoval na žiarovke,Je to celkom pekný stroboskop.Uvidíme zajtra u nás sa má oblačnosť roztrhať.
P1030477.JPG
P1030487.JPG
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

Perfektni, gratulace.
Jsem zvedavy, kolik za den natlacis kW, mi se nejvic zadarilo 2, prumer v hezke dny 1.5, coz pro 3 lidi uplne nestaci, uz dumame nad fototermikou, snad kdyby se povedlo:
http://www.hnutiduha.cz/aktualne/senato ... energetiku
bylo by to prima
rob.brno
Příspěvky: 957
Registrován: sob čer 09, 2012 9:14 am
Reputace: 20

Re: Ukladani prebytku "Drama"

Příspěvek od rob.brno »

Já jsem před časem(měsíc) četl o navrhovaných podmínkách ZU II. Byl jsem zklamaný, pokud se návrh nezměnil, tak stát chce "dotovat" levnými půjčkami úsporná opatření, tedy nic pro ty co mají hotovost.
Spíše mi to přišlo jako, že se stát chce zařadit do zástupu bank a na ovčanovi taky nějaký ten úrok vyždímat.
007ToMMaS
Příspěvky: 1095
Registrován: sob zář 15, 2012 8:53 pm
Reputace: 16

Re: Ukladani prebytku "Drama"

Příspěvek od 007ToMMaS »

Tak dnes som to ako tak pozapájal na skúšobnej doske a fakčí to super :) Len neviem prečo nezobrazuje mi teplotu na displeji :( Teplotné čidlo treba pripojiť na PIN1 ak dobre čítam nie? ďakujem
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
rimi
Příspěvky: 389
Registrován: čtv říj 13, 2011 10:45 am
Reputace: 23
Bydliště: Příbor

Re: Ukladani prebytku "Drama"

Příspěvek od rimi »

007ToMMaS píše:Tak dnes som to ako tak pozapájal na skúšobnej doske a fakčí to super :) Len neviem prečo nezobrazuje mi teplotu na displeji :( Teplotné čidlo treba pripojiť na PIN1 ak dobre čítam nie? ďakujem
na ktery pin se rika tu:
#define ONE_WIRE_BUS 7

takze 7

Odpovědět
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek