Termostat by elektronika.ba

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: Termostat by elektronika.ba

Post by WhiteHead »

DaTi wrote:diferencijalni najbolje napraviti posebno, ne mesati sve na jednom uredjaju.
Ja bih međutim volio sve to strpati u jednu kutiju, kao što je to @bob4 naumio.
Ali nema veze radite vi to tako kao što ste zamislili, a ako bude otvorenog (ili poluotvorenog) koda, mi ostali možemo raditi neke izmjene i postavljati ovdje druge varijante.

Evo kako sam ja to zamislio sebi uraditi na postojećem grijanju na ugalj i drva (s opcijom dodavanja solarnog kolektora i spremnika topline u budućnosti):
U jednoj kutiji imati uređaj s četiri mjerne sonde: polazna temp. kotla, povratna temp. kotla (pumpa bi se palila pri dostignutoj određenoj temperaturi i temp. razlici) i nakon ugradnje solarnog kolektora bilo bi mjerenje na kolektoru i spremniku topline, i tu bi takođe bila funkcija diferencijalnog termostata.
Najviše me "koči" to što noviji vakumski kolektori (heat pipe) dostižu dosta veće temperature nego što mogu podnijeti ove poluvodičke sonde tako da ću možda morati raditi nešto sa TC sondama.
Inače sam mišljenja da se uvođenjem malo automatizacije kod ove vrste grijanja (ugalj, drva), mogu ostvariri određene uštede kao i manje oscilacije temperature u stambenom prostoru (mjesto za eventualnu 5-u sondu)
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: Termostat by elektronika.ba

Post by InTheStillOfTheNight »

WhiteHead wrote:pumpa bi se palila pri dostignutoj određenoj temperaturi i temp. razlici
Nisam se baš bavio grijanjima, no nekako mi se čini da se pumpa ne bi trebala osloniti na temperaturni senzor. Što bi bilo kada bi iz nekog razloga zablokiralo mjerenje temperature i sustav isključio pumpu?
InTheStillOfTheNight
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: Termostat by elektronika.ba

Post by WhiteHead »

Sistemi su obično takvi da postoji nešto prirodne cirkulacije.
A i bez termostata pumpa može crknuti zar ne..u takvim slučajevima peć se pregrije i dolazi do zatvaranja dotoka zraka u peć (regulisano nekakvim "regulatorom promaje".
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7876
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Termostat by elektronika.ba

Post by pedja089 »

Potpuno se slazem...
Uvek treba staviti i termostat koji bi palio pumpu kada poraste tremperatura u kotlu, bez obzira na sve ostalo...
Ja kuci u SM imam i spremnik valjda 2000L samo je prikopcan, ali nikada nije pusteno u rad...
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1627
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Re: Termostat by elektronika.ba

Post by WhiteHead »

Spremnik tek ima pravu ulogu kod kombinacije sa solarnim kolektorima, mada i ovako može služiti za manje oscilacija temperature u zavisnosti od učestalosti loženja.
Ako kaniš pobijediti, ne smiješ izgubiti
User avatar
DaTi
Odlično uznapredovao
Odlično uznapredovao
Posts: 730
Joined: 10-06-2007, 13:24
Location: Novi Sad - Srbija
Contact:

Re: Termostat by elektronika.ba

Post by DaTi »

:arrow: http://www.youtube.com/watch?v=Xii598Uoh0s eto neko je radio slično...
User avatar
DaTi
Odlično uznapredovao
Odlično uznapredovao
Posts: 730
Joined: 10-06-2007, 13:24
Location: Novi Sad - Srbija
Contact:

Re: Termostat by elektronika.ba

Post by DaTi »

Code: Select all

@ DEVICE pic16f84a,HS_OSC,WDT_OFF,PROTECT_OFF       'fjuzovi 
define OSC 4 'definisi kristal od 4 mhz
'************Definisanje lcd na potrb****************
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5
DEFINE LCD_LINES 2 
'*****************************************************
'==========Imenovanje pinova=========================
symbol RELEJ       = PORTA.4
symbol DQ          = PORTA.0
SYMBOL TASTER_up   = PORTA.1
symbol TASTER_set  = PORTA.3
symbol TASTER_down = PORTA.2
'=====================================================
'*****************Smerovi pinova**********************
INPUT   TASTER_set
INPUT   TASTER_down
INPUT   TASTER_up

OUTPUT RELEJ
'******************************************************
'=======================Konstanta za stepen============
Deg          CON 223 
'======================================================

set_temp        var byte
Temperature 	Var	Word		
TempC			Var Word
Float			Var Word
TargetTemp		Var	Word		
Hyst			Var	Word		
V				Var	Word		
Twist			Var Bit          
Stanje          var byte
SIGN            VAR BYTE 

prikaz var byte
read 1,set_temp
read 3,stanje 

if stanje   = 255 then stanje   = 0
if set_temp = 255 then set_temp = 0

                 
PORTA = 0
PORTB = 0

pause 500
Set: 
if TASTER_up  = 0 then 'dodavanje u promenjivu set_temp
    set_temp  = set_temp + 1  
ENDIF

if taster_down = 0 then 'oduzimanje iz promenjive set_temp 
    set_temp = set_temp - 1
endif

if set_temp > 120 then set_temp =  set_temp = 0 
if set_temp  = 0 then set_temp = set_temp =  0       


prikaz = set_temp  'prebacujemo 
lcdout  $fe, 1,"Provera:"
Lcdout  $fe, $C0,#prikaz,deg,"C"
pause 100
    
   if TASTER_set = 0   then   'ako je taster set pritisnut, onda odmah prelazimo na glvani meni
        pause 100
        gosub pocetak
    endif
    

    pause 100
GOTO Set 
     
pocetak: 
'---------merenje---------
OWOut DQ, 1, [$CC, $44 ]       	
WHILE NOT DQ
WEND
OWOUT   DQ, 1, [$CC, $BE ]                       													
OWIN    DQ, 2, [Temperature.Lowbyte, Temperature.Highbyte]
IF Temperature.15 THEN
    Temperature = ~Temperature + 1
    Twist = 1
ENDIF
TempC =  ( Temperature & $7FF ) >> 4   				
Float = ((Temperature.Lowbyte & $0F ) * 25 )>> 2    
Temperature = TempC*100 + Float						
IF Twist THEN
   V= 10000 - Temperature                
   Twist = 0 
else
   V= 10000 + Temperature
EndIf
 
If v = 10000 then                      
    Sign = " " 				
Else 
If v < 10000 then              	
        Sign="-"					
Else
        Sign="+"				
    EndIf
EndIf
If V >= 10000 then                           
  Temperature=V-10000                   
Else                                   
  Temperature=10000-V                 
EndIf
'----------zavrsavamo sa merenjem temperature--------------

if TASTER_up = 0 then   'ako je taster up pritisnut menjamo stanje uporedjivanja temperatura 
         if stanje = 0 then 
            stanje = 1
         else 
            stanje = 0
         endif   
    endif          
          '*******************************************************************************
    if TASTER_set = 0 then 'ako se taster set pritisne, vracamo se u meni za podesavanje 
        pause 100 
        gosub set
    endif
    
  
    
    write 3,stanje ' sapisi stanje u eeprom
    
' izbaci sve na lcd 
Lcdout $fe, 1,  ">Set: +",dec2 set_temp,deg,"C"," ","Pr:",dec1 stanje
LcdOut $FE, $C0,"Temp:",Sign, DEC (Temperature / 100), ".", DEC2 Temperature,deg,"C "
PAUSE 10 'pauza je cisto da lcd moze lepo da prikaze                                                                 
goto pocetak   'idi opet na pocetak

End 'kraj :-)  

Ja ulazem sors kod mog termostata sto sam radio, ali bez histerezisa. Posto sam davno to radio, nisam siguran da je to pravi sors kod, ako nije veoma je sličan pravom. Dosta toga treba ispraviti na programu, ali opet je neka baza od koje se može početi.
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Re: Termostat by elektronika.ba

Post by 78L05 »

U pocetku smo u ovome bili Feko i ja, drago mi je da se prica razvija.
Ja cekam Feku da mi posalje gotov sklop, tj.tiskanu plocicu s dijelovima, kako bi ja prema njoj znao definirati sve portove (gumbove, releje i senzor) i poceo raditi kod.
S njim cu u suradnji napraviti kod koji ce imati zadanu temperaturu paljenja i gasenja, eventualno histerezu.
Kada to zavrsimo javit cemo se ovdje s rezultatima.
Do tada, cekamo Feku :wink:
Ne vjeruj u čuda - računaj na njih!
User avatar
Feko
Stariji član
Stariji član
Posts: 4394
Joined: 23-07-2008, 06:18
Location: Hrvatska, Slavonija, Selo moje malo...

Re: Termostat by elektronika.ba

Post by Feko »

samo se mene čeka :ohno:
78L05 wrote:...kod koji ce imati zadanu temperaturu paljenja i gasenja, eventualno histerezu....
Ovo podcrtano tj. njihova razlika je histereza. Dakle oni koji rade na sistem održavanja zadane temperature imaju za definirati histerezu...ako se bude radilo posebno namještanje temperature paljenja i temperature gašenja onda je odmah napravljena i "fleksibilna" histereza :roll:
User avatar
78L05
Pravo sam se raspisao :)
Pravo sam se raspisao :)
Posts: 1402
Joined: 28-05-2009, 13:22
Location: Hrvatska

Re: Termostat by elektronika.ba

Post by 78L05 »

Da Feko, mislimo na isto, ja sam eventualno mislio dodati jos "toleranciju" na krajnje vrijednosti, ali i samo paljenje i gasenje na odredene temperature je OK.
Ne vjeruj u čuda - računaj na njih!
User avatar
DaTi
Odlično uznapredovao
Odlično uznapredovao
Posts: 730
Joined: 10-06-2007, 13:24
Location: Novi Sad - Srbija
Contact:

Re: Termostat by elektronika.ba

Post by DaTi »

Onda nema potrebe za razvijanjem novog termostata, takav vec postoji ja sam ga napravio pre 3 godine, i gore je sors kod od njega...
User avatar
DaTi
Odlično uznapredovao
Odlično uznapredovao
Posts: 730
Joined: 10-06-2007, 13:24
Location: Novi Sad - Srbija
Contact:

Re: Termostat by elektronika.ba

Post by DaTi »

Code: Select all

@ DEVICE WDT_OFF,PWRT_ON,MCLR_ON,BOD_OFF,LVP_OFF,PROTECT_OFF,HS_OSC
DEFINE OSC 4

DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4

DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 2

DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 0

DEFINE LCD_LINES 2 

symbol TSET     =  PORTB.2
SYMBOL TUP      =  PORTB.1
SYMBOL TDOWN    =  PORTB.0
SYMBOL REL1     =  PORTA.2
SYMBOL REL2     =  PORTA.3
SYMBOL DQ       =  PORTA.4
symbol BCKLIGHT =  PORTB.3


INPUT TSET
INPUT TUP
INPUT TDOWN 
OUTPUT REL1
OUTPUT REL2
OUTPUT BCKLIGHT

Splash: 
    lcdout $FE, 1,   "Termostat V0.1"
    lcdout $FE, $C0, "elektronika.ba"
    pause 1500
SetOnTemp: 


GOTO SetOnTemp
SetOffTemp:
 
goto SetOffTemp

Main: 



goto Main
end
definisani pinovi prema fekinoj pločici....
Post Reply