Ukladani prebytku "Drama"

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
MareC3k
Příspěvky: 491
Registrován: pát říj 05, 2012 8:37 pm
Reputace: 56
Bydliště: SK pri Presove

Re: Ukladani prebytku "Drama"

Příspěvek od MareC3k »

Napadla ma jedna vec, neslo by spravit aby niekto sikovny co ovlada arduino dokazal naprogramovat nejaky komplexny system pre ostrov s nejakou doporucenou konfiguraciou napr arduino mega+displej+ethernet shield (spolu mozno 30Eur). Aby to dokazalo monitorovat napatie baterii, prud, celkovy vykon dodany, spotrebovany, aby to riesilo prebytky do bojlera a aby to malo webove rozhranie bud len cisto pre status, alebo aby sa dalo aj nieco nastavovat, zalezi od narocnosti a moznosti programu.
Urcite by to nebolo zadarmo a verim tomu, ze na vyvoj by sa nejaka ta koruna urcite nasla.
+- 25kWp, 53V 700Ah LifeYpo4+zaloha olovo, 2x5kW Axpert + 3x XTM 4000+Victron quattro 15.000, 5x Victron 250/100, https://forum.mypower.cz/viewtopic.php?t=780 KIA EV6
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 »

Uz to bolo v plane co viem. Admin samizda z matejom mali robit cosi take ale ako to skoncilo to neviem Co som s adminom pisal kedyso tak program mal hotovy ale neboli urobene dosky alebo cosi take.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
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: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
Hoj rimi.
Dnes som odsledoval prebytky do bojlera.Pretlačilo tam 3300Wh.Je to 80l bojler.Teplota bola 25°C a teraz večer je 38°C s tým,že v priebehu dňa sa brala teplá voda kuchyňa a sprcha a aj išla myčka ktorú mám napojenú na teplú vodu.
Takéto dni sa mi páčia :)
burda
Příspěvky: 209
Registrován: pát kvě 25, 2012 11:15 pm
Reputace: 4

Re: Ukladani prebytku "Drama"

Příspěvek od burda »

rimi píše: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);
Jaká je výhoda zenerky v děliči ?
Uživatelský avatar
dedo
Příspěvky: 234
Registrován: čtv zář 22, 2011 10:33 pm
Reputace: 10
Bydliště: SK

Re: Ukladani prebytku "Drama"

Příspěvek od dedo »

Na Zenerke by mal "ostať" rozdiel napätí medzi Ubat (napätím batérie) a 5 voltami (pre toto napätie je navrhnutý odporový delič pod ňou).
antilop
Příspěvky: 76
Registrován: ned úno 17, 2013 8:47 pm
Reputace: 1

Re: Ukladani prebytku "Drama"

Příspěvek od antilop »

To ale pozaduje dost velky a navic jeste konstantni proud delicem. Navic vlastni zenerovo napeti vyrazne kolisa s teplotou. Pro mereni to neni moc dobre reseni.
Uživatelský avatar
kybos
Příspěvky: 2699
Registrován: sob zář 08, 2012 10:40 pm
Reputace: 490
Lokalita: Šternberk
Systémové napětí: 48V
Výkon panelů [Wp]: 15000
Kapacita baterie [kWh]: 40
Bydliště: v údolí mezi kopci

Re: Ukladani prebytku "Drama"

Příspěvek od kybos »

Místo zenerky je možno použít TL431, pak už je teplotní stabilita vyhovující.
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
antilop
Příspěvky: 76
Registrován: ned úno 17, 2013 8:47 pm
Reputace: 1

Re: Ukladani prebytku "Drama"

Příspěvek od antilop »

Ano. Minimalni proud je 1mA coz je na merici delic silene moc.
Uživatelský avatar
kybos
Příspěvky: 2699
Registrován: sob zář 08, 2012 10:40 pm
Reputace: 490
Lokalita: Šternberk
Systémové napětí: 48V
Výkon panelů [Wp]: 15000
Kapacita baterie [kWh]: 40
Bydliště: v údolí mezi kopci

Re: Ukladani prebytku "Drama"

Příspěvek od kybos »

Pokud lze tento proud smysluplně využít, není to zas tak moc. V mé koncepci řízení přebytků tento proud využívám na otvírání SSR a celá spotřeba zařízení pro ukládání přebytků je tak cca 2mA. vizhttps://forum.mypower.cz/viewtopic.php?f ... 004#p23131
15 kWp JJZ + 3x Tristar MPPT60 + Victron 150/100 + 48V LiFePO 850 Ah + UPS 8kW (MPP-Solar 8048 LC) + 4 x nabíječka 1,2 kW (DELTA) Start: 2012
Rams
Příspěvky: 69
Registrován: pát srp 12, 2011 1:56 pm
Reputace: 5

Re: Ukladani prebytku "Drama"

Příspěvek od Rams »

Tento projekt je velice zajímavý a měl bych jeden dotaz na použití DC SSR http://elproz.net/Eri/001KDD202500.htm Je tam uveden spínací čas 600ms, proč taková doba? To je asi zde nepoužitelné, že? Mám totiž spirálu v bojleru 600W 24V.
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 »

Ahojte, chcel by som sa spýtať. Vedeli by ste ktosi upraviť program tak aby po nejakom čase zmenil sám hodnotu napätia pustenia prebytkov ? Napríklad keď je regulátor v absorbcí tak má napätie dajme tomu že 28.8V tak že by toto napätie platilo v nejakom rozsahu napr od 28,0V do 28,8. Ak by sa regulátor prepnúl do režimu float tak by bolo napätie v rozsahu príklad 27-27,6V tak by sa arduino samo preplo do toho druhého režimu keby dlhšiu dobu merá napätie v tom jeho rozsahu. Vrámci spätnej väzby a aby to nerobilo problémy napríklad ráno pri nabíjaní tak ak by arduino meralo dlhšiu dobu napätie v nižšiom rozsahu ako daný rozsah floatu tak by sa prepol znova do režimu absorbcie.

Bol by ktosi taký šikovný a vedel by takúto zmenu previesť? Myslím že by to vyriešilo problém s ukladaním prebytku počas floatu nie len mne ale aj iným ostrovníkom :) Ďakujem za info :) A veľa slniečka prajem ;)
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
Uživatelský avatar
vata
Příspěvky: 1403
Registrován: pon zář 12, 2011 11:32 am
Reputace: 93

Re: Ukladani prebytku "Drama"

Příspěvek od vata »

Mě se spíše než detekce aktuálního cílového napětí regulátoru osvědčila kombinace napěťově řízené a proudově řízené regulace balastní zátěže. První parametr je max. Bateriový proud - pokud je vyšší, začne VALC otevírat SSR, takže baterie se nabíjí, sice pomaleji, ale prioritně, regulace prostě jen omezuje max. nabíjecí proud. Jakmile dosáhne SOC nějaké hodnoty, nebo jakmile dojde k detekci plného nabití, přepne se regulace na napěťově řízenou, která se snaží udržovat baterii na float úrovni, resp. mírně pod ním, aby se musely regulátory přetlačovačovat s balastem i ve floatu. Tato regulace je agresivnější. Odladění toho programu zabralo dost práce, taky nějakou dobu trvalo, než jsem našla vyhovující hodnoty různých parametrů pro můj systém, ale funguje to skvěle - prostě každý večer je plně nabitá baterka i boljer a to, spolu s minimalizací cyklování baterie přes den, byl cíl.
Mimochodem, v systému, kde pracují dva nesynchronizované regulátory, je snaha detekovat aktuální cílové napětí marná :)
Inteligentní ostrov - www.vati.cz
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 »

Prepáčte za neskoršiu odpoveď, ale myslím že to je zložité a drahé riešenie. Pre bežného ostrovníka, ktorý chce využiť aj energiu cez float by bolo toto riešenie asi najjednoduchšie. A taktiež by bola batéria nabitá aj pri tomto riešení.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
Uživatelský avatar
rottenkiwi
Příspěvky: 5451
Registrován: pát úno 13, 2015 2:24 pm
Reputace: 285
Lokalita: SO, SK
Bydliště: SO, SK

Re: Ukladani prebytku "Drama"

Příspěvek od rottenkiwi »

Tam netreba 2 úrovne detekcie napatia, stačí jedno napatie, pri ktorom sa začne páliť.
Ak sme v bulk alebo v absorbcii, tak musíme páliť menej ako je v danej chvíli dostupné
z regulátora, ináč sa nám baterky nedobijú.

To znamená, že po zapnutí pálenia, nesmie klesnúť napatie ani v BULK ani v ABSORB..

Ak sme vo FLOAT fáze, tak tiež stačí to isté napatie, akurát musí pálenie byť také,
aby nám nekleslo napatie na baterkách pod nami def. hodnotu, ak hej, pálenie vypneme.

Na to stačí Arduino Uno, niečo na spínanie prebytkov relé 30 A / 240 AC / 5 V k Arduinu,
alebo SSR relé, alebo stykač.

No a na reguláciu prebytkov buď PWM z Arduina, alebo zapíname niekoľko pevne definovaných
odporov, ktoré nám v súčte dajú približne požadovaný výkon.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
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 »

rottenkiwi: Asi neviete ako fungujú prebytky by " drama " tie fungujú dokonalo na arduine a využívajú PWM a držia dané napätie. Len ma napadlo pridať nejaké podmienky a vytvoriť nejaké dva módy pre float a pre absorbciu aby sa využil čo najväčší potencial z FVE.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
Uživatelský avatar
ixo
Příspěvky: 489
Registrován: stř říj 10, 2012 6:11 pm
Reputace: 22
Bydliště: Bratislava

Re: Ukladani prebytku "Drama"

Příspěvek od ixo »

Zrejme by slo v arduine cyklicky nacitavat cielove napatie (napr. z Tristaru), voci ktoremu by PWM regulovala.
1900 Wp, LiFePo 8x200Ah + 123\SmartBMS, Tristar MPPT 60A, Meanwell 1 kW, PowerJack 5kW, Bratislava
Monitoring systému: https://panel.homeinfo.sk/?id_objekt=15 ... elektraren
(Ne)návratnosť systému: https://tinyurl.com/cx74hkv
Zdieľaná databáza meničov: https://tinyurl.com/mx6gvsj
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 »

hej to by šlo, len by bolo treba vyriešiť komunikáciu. Preto mi príde jednoduchšie to čo som písal. Lebo napríklad ja mám nastavené napätie floatu a aj absorbcie napevno, a myslím že som neni jediný.
3,2kWp REC320NP - juh
3,6kWp - Phonosolar PS450M5GFH-24/TH- východ
2x IGridSV-IV5.6KW, 2x Li-ion - 48V / 156Ah =312Ah
Rams
Příspěvky: 69
Registrován: pát srp 12, 2011 1:56 pm
Reputace: 5

Re: Ukladani prebytku "Drama"

Příspěvek od Rams »

Zdravím,
Trošku jsem experimentoval s tímto perfektním kódem a aplikací Blynk. Vypustil jsem LCD a přidal nějaké, pro mě důležité funkce. Program Arduina funguje tak, že měří napětí, hlídá hladinu vody a spíná čerpadlo, spíná měnič, měří teploty a vše zobrazuje na mobilní aplikaci Blynk. Obrázek. Jsem Arduino začátečník, pravděpodobně by šel kód "učesat", nicméně funguje a to je hlavní :) Ještě budu přidávat automatické startování centrály při nízkém napětí. To už bude chtít upravit centrálu na startér, čidlo hladiny benzínu, snímač otáček atd...
Pokusím se popsat co je vlastně na obrázku:
Levá horní část - voltmetr, aktualizovaný co dvě vteřiny
Pravá horní část - kontrolka nízkého napětí, kontrolka zapnutí měniče, tlačítko pro ruční zapnutí/vypnutí měniče, kontrolka nízkého stavu hladiny ve vodní nádrži, kontrolka zapnutí čerpadla
Střed - graf napětí
Spodní část - analogový výstup čidel hladiny vody, teplotní čidla

Edit: Analogové měření vodní hladiny pomocí elektrické vodivosti není dobrý nápad, chce to plováky. Využil jsem prozatím sondy z jiného, předešlého systému.

Kód: Vybrat vše

#define BLYNK_PRINT Serial // Enables Serial Monitor
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <SimpleTimer.h>
#include <DHT.h>
#include <OneWire.h>
#include <DallasTemperature.h>

  char auth[] = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Put your Auth Token here. (see Step 3 above)
  
  int volt                = A0; //voltmetr
  int spodniHladina       = A1;  //kontakt hladinomeru
  int horniHladina        = A2;  //kontakt hladinomeru
  int ReleCerpadlo        = 2; //rele cerpadla
  int pwmPin              = 3;  //PWM pin
  int ReleMenic           = 4; //rele menice
  float analogVoltage     = 0;  // hodnota na pinu volt
  float analogOffset      = 16.9;  //zacatek rozsahu - posunute zenerkou
  float analogRange       = 14.1;  //mereny rozsah (m)
  float targetVoltage     = 28.5; // hodnota ciloveho napeti
  float waterVoltage      = 24; //minimalni napeti, kdy se vypne rele cerpadla
  float menicUpVoltage    = 26.5; //napeti, kdy se sepne rele menice
  float minVoltage        = 25.5; // minimalni hodnota napeti
  float criticalVoltage   = 23; //kriticke napeti
  float minHladina        = 0;
  float maxHladina        = 0;
  float ReleMenicState    = LOW;  //stav rele menice
  float ReleCerpadloState = LOW; //stav rele cerpadla
  float tempBojler, tempKotel, tempVratka;
  int menicVButton1       = 0;

  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 loadPower           = 500; // vykon zateze W pro vypocet akumulovane energie ve Wh
  float loadTime;//prubezne nacitani casu ON v milisekundach pro zobrazeni Wh
  int k; //promena pro spotrebu Wh
#define DHTPIN 8          // What digital pin we're connected to
#define DHTTYPE DHT11     // DHT 11
#define ONE_WIRE_BUS 6

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

DeviceAddress Probe01 = { 0x28, 0xFF, 0x74, 0xD1, 0x00, 0x16, 0x03, 0x10 }; 
DeviceAddress Probe02 = { 0x28, 0xFF, 0xC2, 0xB9, 0x00, 0x16, 0x03, 0x4F };
DeviceAddress Probe03 = { 0x28, 0xFF, 0x4E, 0x34, 0x01, 0x16, 0x03, 0x4A };

DHT dht(DHTPIN, DHTTYPE);
WidgetLED led1(V1);
WidgetLED led2(V2); //volná po stykači
WidgetLED led3(V3);
WidgetLED led4(V4);
WidgetLED led5(V12);

  SimpleTimer timer;

  // funkce se provede po startu
void setup() {
  Serial.begin(9600); // See the connection status in Serial Monitor
  Blynk.begin(auth); // Here your Arduino connects to the Blynk Cloud.
  dht.begin();
  sensors.begin();
  sensors.setResolution(Probe01, 12);
  sensors.setResolution(Probe02, 12);
  sensors.setResolution(Probe03, 12);
  
  pinMode(volt,INPUT);
  pinMode(ReleMenic,OUTPUT);
  pinMode(ReleCerpadlo,OUTPUT);
  pinMode(pwmPin,OUTPUT);
  pinMode(spodniHladina,INPUT);
  pinMode(horniHladina, INPUT);

attachInterrupt(digitalPinToInterrupt(ReleCerpadlo), checkPin, CHANGE);
attachInterrupt(digitalPinToInterrupt(ReleMenic), checkPin, CHANGE);

  timer.setInterval(2100L, mereniNapeti);
  timer.setInterval(3600L, mereniDTH11);
  timer.setInterval(5000L, cidloHladiny);
  timer.setInterval(3500L, mereniTeplot);
  timer.setInterval(600L, checkPin);
  }

  void mereniTeplot()
{
  sensors.requestTemperatures();
  tempBojler = sensors.getTempC(Probe01);
  tempKotel = sensors.getTempC(Probe02);
  tempVratka = sensors.getTempC(Probe03);
  
  if (tempBojler != -127) {
     Blynk.virtualWrite(V7, tempBojler);
  }
  if (tempKotel != -127) {
    Blynk.virtualWrite(V8, tempKotel);
  }
  if (tempVratka != -127) {
  Blynk.virtualWrite(V9, tempVratka);
}
}

void cidloHladiny()
{
  minHladina = analogRead(spodniHladina);
  maxHladina = analogRead(horniHladina);
  Blynk.virtualWrite(V10, minHladina);
  Blynk.virtualWrite(V11, maxHladina);

  if ((minHladina <= 50)&&(maxHladina <= 50)) {
     led5.on();
  }
  
  if ((minHladina <= 50)&&(maxHladina <= 50)&&(ReleMenicState == HIGH)) {
     ReleCerpadloState = HIGH; //zapis stav rele do prommene
     digitalWrite(ReleCerpadlo, ReleCerpadloState);  //zapni rele cerpadla
  }
  
  if ((minHladina >=80)&&(maxHladina >=80)) {
     ReleCerpadloState = LOW; //zapis stav rele do prommene
     digitalWrite(ReleCerpadlo, ReleCerpadloState);  //vypni rele cerpadla
     led5.off();
  }
}

void mereniDTH11()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit 
  
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);
  Blynk.virtualWrite(V6, t);
}

  void mereniNapeti()
{
  k = ( loadTime / 1000 * loadPower / 3600);
  Blynk.virtualWrite(V13, k);
    
  Blynk.virtualWrite(V0, analogVoltage);
if(analogVoltage <= criticalVoltage){
  led1.on();
  }
else{
  led1.off();
  }
 {
  if((analogVoltage <= minVoltage)&&(ReleCerpadloState == LOW)) {
    ReleMenicState = LOW; //zapis stav rele do prommene
    digitalWrite(ReleMenic, ReleMenicState);  //vypni rele menice
  }
  if((analogVoltage <= waterVoltage)&&(ReleCerpadloState == HIGH)) {
    ReleCerpadloState = LOW; //zapis stav rele do prommene
    digitalWrite(ReleCerpadlo, ReleCerpadloState);  //vypni rele cerpadla   
    ReleMenicState = LOW; //zapis stav rele do prommene
    digitalWrite(ReleMenic, ReleMenicState);  //vypni rele menice
  }

  if (analogVoltage >= menicUpVoltage){
     ReleMenicState = HIGH; //zapis stav rele do prommene
     digitalWrite(ReleMenic, ReleMenicState);  //zapni rele menice    
  }
 }
}
 
void checkPin()
{
  {
  // Invert state, since button is "Active LOW"
  if (digitalRead(ReleCerpadlo)) {
    led3.on();
  } else {
    led3.off();
  }
}
  {
  // Invert state, since button is "Active LOW"
  if (digitalRead(ReleMenic)) {
    led4.on();
  } else {
    led4.off();
  }
}
{
  if (menicVButton1 > 0)
    {
    ReleMenicState = !ReleMenicState;
    } 
    digitalWrite(ReleMenic, ReleMenicState);
}
}

BLYNK_WRITE(V15)
{
   menicVButton1 = param.asInt(); // Get the state of the VButton
}

void loop() {  
    Blynk.run(); // All the Blynk Magic happens here..
    timer.run(); // Initiates SimpleTimer

  analogVoltage= (analogRead(volt) * analogRange)/1024+analogOffset;
//  Serial.println(analogVoltage);
  // 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;
 }
 
  // 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);
    }  

  }
}
Uživatelský avatar
peater
Příspěvky: 249
Registrován: pát bře 20, 2015 9:25 pm
Reputace: 14

Re: Ukladani prebytku "Drama"

Příspěvek od peater »

luge píše:
MareC3k píše:Podarilo sa mi ako tak rozbehnut toto ukladanie prebytkov, ale mam trocha problem s tym, ze mam rovnaky displej ako luge na predchadzajucej strane a pokial som dobre pochopil, tak by malo fungovat aj zvysovanie a znizovanie napatia pomocou tlacitok, ale s tymto displejom a tlacitkami na nom mi to akosi nefunguje. v programe su tlacitka definovane na pinoch 50 a 52, a tento displej ich ma pripojene ku analogovym pinom 1-7. Ked som to zmenil tak to nejako nereagovalo a samo dvihalo cielove napatie hore... da sa to nejako spravit? alebo musim dat ine tlacitka na piny 50 a 52? dik
Toto funguje. :)
Ahoj, nemůžu nějak rozchodit zobrazování teploty. Zapojené to mám podle tohoto schématu:
https://forum.mypower.cz/download/file. ... &mode=view

Display je jiný: http://www.ostrovni-elektrarny.cz/index ... pad-shield

Soubor je nahraný z tohoto příspěvku. Dík za radu.
9000Wp, 48v, 2x Pip-5048 MK paralelně, Li-ion 470Ah, ICC monitoring, GreenBonO vytěžovač
https://pvoutput.org/list.jsp?userid=50768
kodl69
Příspěvky: 7379
Registrován: sob črc 19, 2014 8:56 pm
Reputace: 866
Lokalita: severně od Brna
Systémové napětí: 48V
Výkon panelů [Wp]: 8kWp
Kapacita baterie [kWh]: 12kWh
Chci prodávat energii: NE
Chci/Mám dotaci: NE

Re: Ukladani prebytku "Drama"

Příspěvek od kodl69 »

Takže to nemáš podle toho schématu co uvádíš, ale máš display shield. Je potřeba správně definovat piny u LiquidCrystal lcd(8, 9, 4, 5, 6, 7); a vyzkoušet na základním příkladu co je v ide "hello word" pokud se tohle zobrazí, je to ok. Ještě pozor na trimr konrastu, pro začátek ho nastav aby trochu byly vidět všechny body pořád, možná máš jenom kontrast "mimo rozsah".
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.

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