Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je pát črc 20, 2018 12:10 am


Ukladani prebytku "Drama"

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
PředchozíDalší

Re: Ukladani prebytku "Drama"

Příspěvekod atom » pon čer 10, 2013 8:48 pm

rimi píše:Jo, to je dost nanic, ze se zastavi ta smycka pro mereni, asi by to chtelo nejake lacine arduino vyclenit ciste na PWM a druhe pouzivat na vse okolo, trochu kanon na vrabce

Aby třeba cyklus měření neovlivňoval PWM, stači využít některý z timerů co arduino nabízí, pak stačí nastavit a na zvoleném pwm pinu bude stálá, kdykoliv upravitelná frekvence bez ohledu na dění v ostatním programu. Pak můžete psát i programy s delay() v cyklu.
Tristar / 11kWh v lithiu / 3,4kWp / Matrix 5000VA / arduino / >19MWh :o / start 05/2012 s 440Wp.
atom
 
Příspěvky: 423
Registrován: sob čer 02, 2012 7:22 pm
Bydliště: 580m n.m. na Vysočině
Reputation: 4

Re: Ukladani prebytku "Drama"

Příspěvekod MareC3k » úte čer 11, 2013 9:50 am

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.
10kWp (3,2kWp+1,3kWp + 2kWp + 2,2kWp + 1,3kWp), 26V 450Ah LifeYpo4+zaloha olovo, 8kW LF sinus menic PowerJack, Axpert 2424, PCM 8048+Tristar-MPPT-60A+Victron 150/35+Epsolar 150/60, Presov uLOG: http://s5.mypower.cz/fve-ulog2marec3k
MareC3k
 
Příspěvky: 339
Registrován: pát říj 05, 2012 7:37 pm
Bydliště: SK pri Presove
Reputation: 20

Re: Ukladani prebytku "Drama"

Příspěvekod 007ToMMaS » úte čer 11, 2013 10:27 am

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.
007ToMMaS
 
Příspěvky: 846
Registrován: sob zář 15, 2012 7:53 pm
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod luge » čtv čer 13, 2013 6:52 pm

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 :)
luge
 
Příspěvky: 523
Registrován: ned lis 13, 2011 5:52 pm
Bydliště: SK
Reputation: 1

Re: Ukladani prebytku "Drama"

Příspěvekod burda » stř led 15, 2014 4:38 pm

rimi píše:ten delic je myslen nejak takto:
Obrázek
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 ?
burda
 
Příspěvky: 198
Registrován: pát kvě 25, 2012 10:15 pm
Reputation: 3

Re: Ukladani prebytku "Drama"

Příspěvekod dedo » stř led 15, 2014 5:16 pm

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).
Uživatelský avatar
dedo
 
Příspěvky: 229
Registrován: čtv zář 22, 2011 9:33 pm
Bydliště: SK
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod antilop » stř led 15, 2014 7:06 pm

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.
antilop
 
Příspěvky: 70
Registrován: ned úno 17, 2013 8:47 pm
Reputation: 1

Re: Ukladani prebytku "Drama"

Příspěvekod kybos » stř led 15, 2014 7:30 pm

Místo zenerky je možno použít TL431, pak už je teplotní stabilita vyhovující.
7,5 kWp poly +3x Tristar MPPT60 (>30 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1397
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 103

Re: Ukladani prebytku "Drama"

Příspěvekod antilop » stř led 15, 2014 7:52 pm

Ano. Minimalni proud je 1mA coz je na merici delic silene moc.
antilop
 
Příspěvky: 70
Registrován: ned úno 17, 2013 8:47 pm
Reputation: 1

Re: Ukladani prebytku "Drama"

Příspěvekod kybos » stř led 15, 2014 9:36 pm

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. vizhttp://forum.mypower.cz/viewtopic.php?f=19&t=1036&p=14004#p23131
7,5 kWp poly +3x Tristar MPPT60 (>30 MWh) + 48V VRLA 540 Ah + LiFePO 300 Ah + UPS 6kW
Uživatelský avatar
kybos
 
Příspěvky: 1397
Registrován: sob zář 08, 2012 9:40 pm
Reputation: 103

Re: Ukladani prebytku "Drama"

Příspěvekod Rams » pon dub 25, 2016 12:38 am

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.
Rams
 
Příspěvky: 68
Registrován: pát srp 12, 2011 12:56 pm
Reputation: 4
 
  • 0


Re: Ukladani prebytku "Drama"

Příspěvekod 007ToMMaS » sob črc 02, 2016 9:39 am

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 ;)
007ToMMaS
 
Příspěvky: 846
Registrován: sob zář 15, 2012 7:53 pm
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod vata » sob črc 02, 2016 1:22 pm

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
Uživatelský avatar
vata
 
Příspěvky: 1339
Registrován: pon zář 12, 2011 10:32 am
Reputation: 57

Re: Ukladani prebytku "Drama"

Příspěvekod 007ToMMaS » úte črc 19, 2016 7:15 pm

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í.
007ToMMaS
 
Příspěvky: 846
Registrován: sob zář 15, 2012 7:53 pm
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod rottenkiwi » úte črc 19, 2016 9:31 pm

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.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1511
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: Ukladani prebytku "Drama"

Příspěvekod 007ToMMaS » čtv črc 21, 2016 7:16 am

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.
007ToMMaS
 
Příspěvky: 846
Registrován: sob zář 15, 2012 7:53 pm
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod ixo » čtv črc 21, 2016 7:19 am

Zrejme by slo v arduine cyklicky nacitavat cielove napatie (napr. z Tristaru), voci ktoremu by PWM regulovala.
940 Wp, Pb OpZs 24V/300Ah, Tristar MPPT 60A, Meanwell 1 kW, PowerJack 5kW, Bratislava
Výkonnosť systému: http://homeinfo.sk/e?user=viktor
(Ne)návratnosť systému: http://tinyurl.com/cx74hkv
Zdieľaná databáza meničov: http://tinyurl.com/mx6gvsj
Uživatelský avatar
ixo
 
Příspěvky: 404
Registrován: stř říj 10, 2012 5:11 pm
Bydliště: Bratislava
Reputation: 14

Re: Ukladani prebytku "Drama"

Příspěvekod 007ToMMaS » čtv črc 21, 2016 9:57 pm

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ý.
007ToMMaS
 
Příspěvky: 846
Registrován: sob zář 15, 2012 7:53 pm
Reputation: 10

Re: Ukladani prebytku "Drama"

Příspěvekod Rams » pát srp 19, 2016 8:34 am

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);
    } 

  }
}
Rams
 
Příspěvky: 68
Registrován: pát srp 12, 2011 12:56 pm
Reputation: 4
 
  • 0


Re: Ukladani prebytku "Drama"

Příspěvekod peater » pon zář 26, 2016 7:22 pm

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:
download/file.php?id=377&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.
Uživatelský avatar
peater
 
Příspěvky: 127
Registrován: pát bře 20, 2015 9:25 pm
Reputation: 2

PředchozíDalší

Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

cron
Reputation System ©'