Arduino schéma - arduino.sk

Regulácia čerpadla ÚK.

Kompletné projekty s návodom a zdrojovým kódom
Obrázok užívateľa
Príspevky: 300
Registrovaný: Pon 19. Nov 2012 12:01:08
Bydlisko: HC/BA

Re: Regulácia čerpadla ÚK.

Poslaťod tomXX » Pon 19. Jan 2015 13:11:38

kosice4 píše:@ tomXX samozrejme sa to týka hlavne teba :)
Si tu najmúdrejší, najšikovnejší, všetko vieš najlepšie, na všetko máš stále odpoveď a vieš vždy človeka nasmerovať na google :D
Úprimne ja sa tu už radšej nič nepýtam, lebo ak si predstavím do minúty ako prvú odpoveď od teba prestáva ma to baviť.


"Najmúdrejší, najšikovnejší a všetko viem najlepšie" - tvoj názor. Na všetko odpoveď nemám, a to že niekoho nasmerujem na niečo, čo si mohol nájsť aj on sám - pre toto som otravný? Je lepšie nechať otázku nezodpovedanú?

PS: nikto ma za ručičku neviedol, čo viem, to som sa musel naučiť sám, prípadne na svojich chybách - a nebolo ich málo. A keď máš kvalitnejšie odpovede, tak ich sem daj, ja ti nebránim, ani by mi nevadili. Rád si prečítam niečo nové, zaujímavé. peace
blog.sitepoint.sk - zaujímavé riešenia okolo Arduina

Obrázok užívateľa
Príspevky: 133
Registrovaný: Štv 06. Nov 2014 12:06:09

Re: Regulácia čerpadla ÚK.

Poslaťod budvar10 » Pon 19. Jan 2015 14:14:44

Nevidím nič zlé na odpovedi v štýle odkazu. Ono niekedy aj "google" odpoveď pomôže. Ak sa niečo pýtam na fóre, nemôžem čakať super fundované odpovede a nie do minúty. Hlavne treba mať na pamäti, že tie rady sú tu zadarmo (ber alebo nechaj tak). Na druhej strane, čo som sa sem zaregistroval, nie sú tu takmer žiadne otázky. V slovenčine nejakých návodov alebo inšpirácii je naozaj málo, aj okolo ATmega procesorov. Mne to až tak nevadí, s AJ nemám problém. Dúfam len, že sa to nejako rozbehne aj tu. Arduino je podľa mňa fenomenálna vec.

@JK_soft
Ohľadne logovania resp komunikácie s PC, skús sa pozrieť na openenergymonitor.org. Neviem či to poznáš ale je to veľmi pekný projekt a mohlo by sa ti niečo z toho hodiť. Ohľadne PID som videl niečo také
http://svetelektro.com/Forum/adaptivny-prirastkovy-pid-regulator-t25224.html. Niekde bola zverejnená aj kompletná práca asi diplomovka. Neviem či od toho istého autora ale teraz to ani neviem nájsť.

Príspevky: 89
Registrovaný: Uto 03. Jún 2014 21:48:35
Bydlisko: Košice Slovakia

Re: Regulácia čerpadla ÚK.

Poslaťod kosice4 » Pon 19. Jan 2015 16:04:38

JK_Soft píše:Chcel by som len dodať že toto fórum mi niekedy pripadá že sa tu podaktorí idú len pochváliť ale konkrétne nápady neposkytnú (vlastné Knou-How).


Presne máš 100% pravdu. Ja som začiatočník a keď som objavil toto fórum tak som sa potešil, že sa tu niečo naučím a bude mi poradené ak na niečom zastanem, ale opak je pravdou. Česť výnimkám ako Xeram a Diego, ktorý veľmi radi a ochotne poradia !

JK_Soft píše:Chcel som sa spýtať aké mate skúsenosti s PID reguláciou pomocou arduina pre trojstavový servo pohon?

Ohľadne PID a arduina zatiaľ nemám skúsenosť, tiež som už po tom pokukoval. Je knižnica PID, ale nijako nechápem ako s tým pracovať.
Ďakujem za pomoc posjirka, Diego, Xeram a barado :)

Príspevky: 37
Registrovaný: Pon 15. Sep 2014 13:29:24

Re: Regulácia čerpadla ÚK.

Poslaťod JK_Soft » Pon 19. Jan 2015 17:12:21

Keď som začínal s týmto projektom a zaregistroval sa na arduino.sk, ako jediný mi odpísal TomXX. V tom momente mi to nepomohlo ale nakoplo ma to ísť trochu do hĺbky a študovať.

http://arduino.sk/viewtopic.php?f=4&t=119&sid=03ccbbfeff83bf9fb3486edfbced5677

Príspevky: 89
Registrovaný: Uto 03. Jún 2014 21:48:35
Bydlisko: Košice Slovakia

Re: Regulácia čerpadla ÚK.

Poslaťod kosice4 » Pon 19. Jan 2015 18:08:10

Si mal šťastie, pekne to rozpísal :)
Na moje príspevky má asi alergiu.
Ďakujem za pomoc posjirka, Diego, Xeram a barado :)

Príspevky: 89
Registrovaný: Uto 03. Jún 2014 21:48:35
Bydlisko: Košice Slovakia

Re: Regulácia čerpadla ÚK.

Poslaťod kosice4 » Str 21. Jan 2015 11:52:54

Čo znamená || ?
Akú má funkciu ?
Ďakujem za pomoc posjirka, Diego, Xeram a barado :)

Príspevky: 74
Registrovaný: Štv 04. Dec 2014 22:15:58
Bydlisko: Banská Bystrica

Re: Regulácia čerpadla ÚK.

Poslaťod Robo Ulbricht » Str 21. Jan 2015 13:47:35

kosice4 píše:Čo znamená || ?
Akú má funkciu ?


V c++ je to logicke or. Takze ak najdes kod if(a==1 || a==2), znamena to podmienku ak a=1 alebo a=2, potom urob xxx.

Príspevky: 89
Registrovaný: Uto 03. Jún 2014 21:48:35
Bydlisko: Košice Slovakia

Re: Regulácia čerpadla ÚK.

Poslaťod kosice4 » Str 21. Jan 2015 14:35:07

@ Robo Ulbricht ďakujem pekne za vysvetlenie.
Ďakujem za pomoc posjirka, Diego, Xeram a barado :)

Príspevky: 37
Registrovaný: Pon 15. Sep 2014 13:29:24

Re: Regulácia čerpadla ÚK.

Poslaťod JK_Soft » Str 21. Jan 2015 19:05:26

kosice4 píše:@ Robo Ulbricht ďakujem pekne za vysvetlenie.


Logické AND:
if (x > 0 && x < 5) // Vrací hodnotu TRUE, když oba výrazy mají hodnotu TRUE

Logické OR:
if (x > 0 | | y > 0) // Vrací hodnotu TRUE, když kter ýkoli z prvků má hodnotu TRUE

Logické NOT:
if ( !x > 0) // Vrací hodnotu TRUE, když oba prvky mají hodnotu FALSE

Príspevky: 1
Registrovaný: Pon 02. Feb 2015 23:01:45

Re: Regulácia čerpadla ÚK.

Poslaťod Luky » Pon 02. Feb 2015 23:12:07

Super projekt ;).

Môžeš mi prosím ťa povedať ako a kam si umiestňoval tie teplotné čidlá?
Napríklad na ten obojživelný ohrievač - kam si dal to čidlo? Máš tam viacero čidiel alebo len jedno (keďže teplota v obojživelníku nemusí byť všade rovnaká) ?
A potom teplota kotla? Kde konkrétne ju meriaš?

Čosi podobné sa chystám spraviť aj ja, hoci nie hneď zajtra :P, no rád mám vo veciach jasno už vopred, skôr než sa do čohokoľvek pustím.
Vopred vďaka za odpoveď :)

Obrázok užívateľa
Príspevky: 133
Registrovaný: Štv 06. Nov 2014 12:06:09

Re: Regulácia čerpadla ÚK.

Poslaťod budvar10 » Uto 03. Feb 2015 8:30:50

Asi by bolo dobre umiestniť senzory tam, kde sú tie originálne. Záleží na tom aké máš zariadenia. V prípade bojlera je dobré merať teplotu cca v 1/3 výšky nádoby a 1 senzor na každé zariadenie resp. teplotu by mal stačiť.

Príspevky: 37
Registrovaný: Pon 15. Sep 2014 13:29:24

Re: Regulácia čerpadla ÚK.

Poslaťod JK_Soft » Uto 03. Feb 2015 9:56:13

Luky píše:Super projekt ;).

Môžeš mi prosím ťa povedať ako a kam si umiestňoval tie teplotné čidlá?
Napríklad na ten obojživelný ohrievač - kam si dal to čidlo? Máš tam viacero čidiel alebo len jedno (keďže teplota v obojživelníku nemusí byť všade rovnaká) ?
A potom teplota kotla? Kde konkrétne ju meriaš?

Čosi podobné sa chystám spraviť aj ja, hoci nie hneď zajtra :P, no rád mám vo veciach jasno už vopred, skôr než sa do čohokoľvek pustím.
Vopred vďaka za odpoveď :)

Ahoj Luky.
Snímač kotla som umiestnil priamo do kotla, vyhodil som jednu zátku a osadil som tam jímku na teplomer. Do boilera som teplomer osadil namiesto termostatu tiež do jímky. Teplota spiatočky je len informatívna a preto som ju riešil len priložením na potrubie pred obehové čerpadlo. Snímače Dalas som naletoval na trojlinku a zaizoloval zmršťovanou bužírkou. Presne pasovali do jímok.
Teplomer na kotly môžeš umiestniť aj na výstupné potrubie z kotla ale čo najbližšie ku kotlu.

Príspevky: 6
Registrovaný: Ned 08. Feb 2015 18:46:15

Re: Regulácia čerpadla ÚK.

Poslaťod funtomi » Ned 08. Feb 2015 19:00:14

Zdravim, po mojich 2 raspberry pi som sa rozhodol kupit arduino a vyrobit riadenie kurenia..

Po dokonceni som nasiel toto forum a tuto temu tak a ja sa podelim so svojim projektom na ohrev vody v bojlery pomocou plynoveho kotla, ktory aj ohrieva vodu do radiatorov.

Princip je asi taky ze na ohrev vody pouzivam plynovy kotol a jedna jeho vetva je prehnana cez bojler.
Ak som chcel zohrievat vodu v bojlery mal som to poriesene cez izbovy termostat ktory vecer a rano bol nastaveny
tak aby zvysil teplotu o pol stupna a tym nahrial vodu v bojlery.

A robil to aj ked v bojlery bola voda zohriata (a teda zbytocne)

Na vyrobu som pouzil:
- arduino leonardo (moje prve arduino vybrate viacmenej len na skusku)
- DS3231 AT24C32 IIC (hodiny realneho casu zalohovane bateriou + teplomer)
- 16x2 LCD s i2c
- ds18b20 - teplomer vsunuty do bojlera - predtym tam bol zasunuty teplomer
- 2x SSR rele
- krabica so zdrojom +12V +5V 0 -12V

funguje to asi tym sposobom ze v nastavenom case kontroluje teplotu v bojlery ak < ako min.teplota co je u mna 46C zopne kotol a cerpadlo a zohrieva vodu az na 50C potom vypne kotol a nasledne po urcitom case vypne aj cerpadlo

do systemu je privedeny aj izbovy termostat - ktory je dost dobry ma PI regulaciu a hysterezu nastavenie casov atd...
nechcem ho nahradzat svojou sondou a programom. ak pride signal z termostatu zopne kotol a cerpadlo.

Je to moj prvy projekt program by sa dal urcite este zoptimalizovat atd.
Chcel by som k tomu urobit nejaky dialkovy monitoring a kontrolovat stav kotla na dialku, len kotolna je na 1.PP
a ja na 2.np wifi router na 3.np takze premyslam o nejakej RS=485-ke a dvojlinke k serveru.

Obrázok
Obrázok

Kód: Vybrať všetko
#include <DallasTemperature.h>     
#include <OneWire.h>
#include <LiquidCrystal_I2C.h>
#include <DS3232RTC.h>
#include <Time.h> 
#include <Wire.h>

#define min_teplota 46
#define max_teplota 50
#define cerpadlo 120
//--------------------------------
#define rele_k 7
#define rele_c 8
#define vstup_termostat 10
#define ds3231_pin 4
//--------------------------------
#define tzap1 500
#define tvyp1 700
#define tzap2 1745
#define tvyp2 2100
#define tzap3 0
#define tvyp3 0
#define tzap4 0
#define tvyp4 0
#define tzap5 0
#define tvyp5 0

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int c,d,cerp,aku,cas;
float bojler_tepl = 0;
int termostat;

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

void setup()
{
      aku=min_teplota;
      sensors.begin(); 
     
      lcd.begin(16,2);
      pinMode(13, OUTPUT);      //srdce
      pinMode(rele_k, OUTPUT);  //kotol
      pinMode(rele_c, OUTPUT);  //cerpadlo
     
      pinMode(vstup_termostat, INPUT_PULLUP);

// ------- trikrat zablikaj  -------------
  for(int i = 0; i< 3; i++)
  {
    lcd.backlight();
    delay(250);
    lcd.noBacklight();
    delay(250);
  }
 
  lcd.setCursor(0,0);
  lcd.print("RIADENIE KURENIA");
  lcd.backlight();                   // LCD ostane svietit
  delay(2000);
  lcd.setCursor(0,1);
  lcd.print("-=Tomas a Kubo=-");
  delay(2000);
 
  for(int i = 0; i<15; i++)          //odroluje display dolava
  {
    lcd.scrollDisplayLeft();
    delay (200);
  }
 
  lcd.clear();
 
//-------- zisti cas ------------------ 
    setSyncProvider(RTC.get);       // nacitaj cas a datum z RTC
    if(timeStatus() != timeSet) {
         lcd.setCursor(0,1);
         lcd.print("RTC fatal error");
         delay (30000);
         }
    else {
         lcd.setCursor(0,1);
         lcd.print("     RTC OK");     
         delay (2000);
         }

//setTime(19, 14, 30, 25, 1, 2015);    //nastav cas
//RTC.set(now());
   
}

void loop()
{
    sensors.requestTemperatures();
    bojler_tepl=sensors.getTempCByIndex(0); // Senzor 0 alebo master
 
    if (c<5)            teplotaKotolni();
    if (c>=5 and c<30)  teplotaBojlera();
    if (c>=30)          c=0;
   
    termostat = digitalRead(vstup_termostat);
   
    if (termostat == LOW) zapniKotolCezTermostat();  // ak je GND na pin "vstup_termostat" zapne kotol
    else zapniKotol(bojler_tepl);
   
    zobrazHodiny();
    tepSrdca();
    c++;
}

void zobrazHodiny(void)
{
    lcd.setCursor(0,0);
    if (hour()<10) lcd.print("0");    //daj nulu pred hodiny
    lcd.print(hour());
    doplnNulu(minute()); 
    lcd.print(' ');
    lcd.print(day());
    lcd.print('.');
    lcd.print(month());
    lcd.print('.');
    lcd.print(year());
    lcd.print("  ");
}

void doplnNulu(int digits)
{
    lcd.print(" ");                  //maze : medzi hodinou a nimutou
    if(digits < 10)
      lcd.print('0');
    lcd.print(digits);
}

void tepSrdca(void)                  //blika ledkou na arduine a : na LCD
{
    digitalWrite(13, HIGH);
    delay(500);
    digitalWrite(13, LOW);
    lcd.setCursor(2,0);
    lcd.print(":");                  //zobrazuje : medzi hodinou a nimutou
    delay(100);
}

void teplotaKotolni(void)            //zisti teplotu z ds3231 a zobrazi ju (teplota v krabici)
{
    float t = RTC.temperature();
    float celsius = t / 4.0;
    lcd.setCursor(0,1);
    lcd.print("I: ");
    lcd.print(celsius);
    lcd.setCursor(7,1);
    lcd.print((char)223);            //zobrazi znak stupen
    lcd.print("C ");
}

void teplotaBojlera(void)            //zobrazi teplotu bojlera
{
    lcd.setCursor(0,1);
    lcd.print("B: ");
    lcd.print(bojler_tepl);
    lcd.setCursor(7,1);
    lcd.print((char)223);            //zobrazi znak stupen
    lcd.print("C ");
}

void zapniKotol(float t)
{
  lcd.setCursor(10,1);               //nastav kurzor pre pxkxcx
  cas=hour()*100+minute();           //preved cas na nieco co sa da porovnat
  if ((cas>=tzap1 and cas<tvyp1) or (cas>=tzap2 and cas<tvyp2) or (cas>=tzap3 and cas<tvyp3) or (cas>=tzap4 and cas<tvyp4) or (cas>=tzap5 and cas<tvyp5))
    {
        lcd.print("p1");                    // zapni program
       
        if (t < aku) {
           aku=max_teplota;
           digitalWrite(rele_k, HIGH);      // zapne kotol
           digitalWrite(rele_c, HIGH);      // zapne cerpadlo
           lcd.print("k1");
           lcd.print("c1");
           cerp=cerpadlo;                   //nastavi pocet cyklov po ktorych sa ma vypnut cerpadlo
           }
        else {
           aku=min_teplota;
           digitalWrite(rele_k, LOW);       //vypne kotol
           lcd.print("k0");
           if (cerp>0) cerp--;             
           if (cerp==0) {
              lcd.print("c0");
              digitalWrite(rele_c, LOW);    //vypne cerpadlo 
              }
           }
    }
  else
  {
    lcd.print("p0");                        //ak skonci cas vypne kotol a dobehne cerpadlo
    aku=min_teplota;
    digitalWrite(rele_k, LOW);
    lcd.print("k0");
    if (cerp>0) cerp--;
    if (cerp==0) {
      lcd.print("c0");
      digitalWrite(rele_c, LOW);     
      }
  }
}

void zapniKotolCezTermostat(void)
{
    lcd.setCursor(10,1);              //nastav kurzor pre pxkxcx
    lcd.print("pT");                  // zaplo cez termostat
    digitalWrite(rele_k, HIGH);
    digitalWrite(rele_c, HIGH);
    lcd.print("k1");
    lcd.print("c1");
    cerp=cerpadlo;
}


Príspevky: 37
Registrovaný: Pon 15. Sep 2014 13:29:24

Re: Regulácia čerpadla ÚK.

Poslaťod JK_Soft » Ned 08. Feb 2015 20:22:30

Funtomi pekná prácička. Ja teraz riešim PID reguláciu s arduinom na 3- bodové ovládanie ventilu pre podlahovku.
http://arduino.sk/viewtopic.php?f=4&t=170&sid=54acb8905ad4040a1c46922e658780bb

Obrázok užívateľa
Príspevky: 133
Registrovaný: Štv 06. Nov 2014 12:06:09

Re: Regulácia čerpadla ÚK.

Poslaťod budvar10 » Uto 10. Feb 2015 14:55:01

Palec hore! Dobré relé.

PredchádzajúciĎalší

Späť na Hotové projekty