kair.us/ projects/ temp_controller/
Kuivanapitolämmitin v2
Tässä on rakennusohje miten kolmenkymmenen euron hintaisista
osista saa itse rakennettua kuivanapitolämmitysohjaimen. Sitä saa
vapaasti rakentaa ja muutella omaan käyttöön. Tällä sivulla olevan
materiaalin, kuvien, suunnittelutiedostojen ja lähdekoodin
osittainenkin käyttö kaupallisiin tarkoituksiin sallittu vain
tekijän kirjallisella luvalla. Yhteystieto sivun alareunassa.
Ohjaimessa on seuraavat ominaisuudet:
- Ohjaa lämmitintä releen avulla
- Näyttää sekä sisä- että ulkolämpötilan ja ohjausreleen tilan
- Pitää sisätilan halutun verran ulkolämpötilaa lämpimämpänä,
lämpötilaero aseteltavissa
- Säädettävä hystereesi
- Säädettävät sisälämpötilan ylä- ja alarajat jota kylmemmäksi
sisätilaa ei päästetä ja jota kuumemmaksi sitä ei lämmitetä
- Säädettävä ulkolämpötilan alaraja jota kylmemmässä lämmitys
sammutetaan kokonaan (vaihtoehtoinen em. sisälämpötilan
alaraja-asetukselle)
- Tuntilaskurit kokonaisajalle ja ajalle jonka lämmitin päällä,
voi käyttää kulutuksen seurantaan
Vastuuvapauslauseke: Käyttö omalla vastuulla. En ota mitään
vastuuta jos homehdutat, poltat tai muuten tuhoat talosi tai jos
halkaiset vesijohdot tai saat sähköiskun tämän sivun ohjeiden
avulla tai niiden inspiroimana.
Kuivanapitolämmityksen perusteita
Kuivanapitolämmityksellä tarkoitetaan lämmitystä, jossa
rakennusta lämmitetään vain sen verran, että sen rakenteet pysyvät
kuivina. Yleisimmin tämä tarkoittaa sitä, että rakennuksen
sisälämpötila pyritään pitämään muutaman asteen ulkolämpötilaa
korkeampana. Yksinkertaisimmillaan tämä onnistuu pienitehoisella
sähkölämmittimellä joka on jatkuvasti päällä. Tarvittava teho on
noin 5-15 W/m2, riippuen rakennuksen eristyksestä ja
ilmanpitävyydestä. Aiheesta on muutama vuosi sitten tehty TTY:llä
varsin kattava tutkimus joten en höpise tästä sen enempää,
kannattaa tutustua raporttiin tästä
jos haluaa tietää asiasta tarkemmin.
Vakiotehoinen lämmitys toimii keskimäärin varsin hyvin. Nopeissa
ulkolämpötilan muutoksissa se tietysti jää jälkeen. Kun
ulkolämpötila laskee nopeasti, on lämmitys päällä 'turhaan'.
Vastaavasti kun ulkolämpötila nousee nopeasti, vakiotehoinen
lämmitys ei riitä pitämään sisälämpötilaa ulkolämpöä suurempana.
Myös kirkkaana kevätpäivänä voi lämmitys olla turhaan päällä kun
aurinko lämmittää ikkunoista.
Vakiotehoista lämmitystä hienostuneempi tapa on käyttää
tehokkaampaa lämmitintä ja lämpötilaerotermostaattia.
Lämpötilaerotermostaatti mittaa sekä sisä- että ulkolämpötilaa ja
pyrkii pitämään niiden eron halutun suuruisena. Koska tällaisessa
järjestelmässä lämmitin on tehokas, se estää sisälämpötilaa
painumasta ulkolämpötilaa kylmemmäksi jos keli lauhtuu nopeasti.
Näitä on nykyään jo jonkun verran saatavilla kaupallisiakin
malleja:
Ja yksi toinenkin rakenteluohje Kahta
lämpötilaa vertaava termostaatti
Lämmityksen ohjauksen älykkyyttä voisi lisätä entisestään
mittaamalla lämpötilojen lisäksi ilmankosteutta. Sisäilman
suhteellinen kosteus tulisi pitää alle 80%:ssa rakenteiden
säilymisen takia. Käytännössä tähän pitäisi päästä n. 4 asteen
lämpötilaerolla, sillä suhteellinen kosteus laskee n. 5
prosenttiyksikköä yhtä Celsiusastetta kohden. Tässä siis oletetaan
että rakennuksen ilma vaihtuu sen verran että sisäilman
absoluuttinen kosteus on sama kuin ulkoilman. Pitkien sadejaksojen
aikana voisi olla järkevä pitää hieman suurempaa lämpötilaeroa
että rakenteet pysyvät kuivana, kun taas kuivemmalla ilmalla
riittäisi pienempi ero.
Ohjaimen toiminta
Tein syksyllä 2012 lämpötilaerotermostaatin ohjaamaan talon
kylmälle kuistille sijoitettua jaloilla seisovaa lämpöpatteria.
Tarkoituksena on pitää kuisti talvisin ulkoilmaa lämpimämpänä,
mutta minimoida lämpöhukka. Kolmen talven perusteella se on
toiminut kuten pitää. Tosin mitään konkreettista näyttöä
lämmityksen hyödystä rakenteiden kannalta ei ole - kuka tietää
onko sitä vuosikymmenten aikana aiemmin lämmitetty lainkaan.
Tekemäni termostaatti pohjautuu aiemmin tekemääni lämpömittariin,
joka mittaa kahta lämpötilaa NTC-vastuksilla, laskee niistä
lukemat PIC 16F690 -mikrokontrollerilla ja esittää sen
7-segmenttinäytöillä joita ohjaavat SAA1064 piirit. Lämpöpatterina
toimii 1500W öljytäytteinen lämpöpatteri, jonka oma termostaatti
on säädetty melko suurelle. PIC ohjaa patterille menevää sähköä
puolijohdereleen avulla.
Vähitellen löytyi muitakin kohteita joissa olisi tarvetta
vastaavanlaiselle ohjaimelle. Päätin suunnitella ohjainta varten
piirilevyn, jotta niitä olisi helpompi rakentaa enemmän. Samalla
yksinkertaistin kytkentää jättämällä SAA ohjainpiirit pois ja
ajamalla näyttöjä suoraan PIC:llä. Lisäsin ohjaimeen myös
käyttöliittymäksi enkooderin, joten hystereesit, lämpötilaerot ym.
voi asetella tapauskohtaisesti nuppia pyörittämällä, aiemmin ne
oli hardkoodattu. Tämäkin malli tarvitsi vielä ulkoisen
jännitelähteen ja erillisen kuormanohjausreleen. Sen rakentamiseen
tarvittava dokumentaatio on nähtävillä tästä
linkistä. Tämä vanha 1.1 versio voi vieläkin olla johonkin
tarkoitukseen ihan sopiva, jos on esimerkiksi lämmitin jota voi
ohjata ilman erillistä relettä tai haluaa soveltaa sitä johonkin
kokonaan toiseen sovellukseen.
Keväällä 2016 totesin yllämainitun ohjaimenkin turhan työlääksi
rakentaa erillisen releen kotelointeineen. Lisäksi se oli
melkoinen johtoviidakko erillisine purkkeineen. Niinpä
suunnittelin uuden 2.0 piirilevyn jossa on myös jännitelähde ja
rele mukana. Näin koko laitos voidaan rakentaa yhteen koteloon
jossa on vain liitäntä sisään tulevalle sähkölle, patterille
lähtevälle sähkölle ja lämpöantureille. Tähän saa sähköliitynnät
tehtyä vaikkapa katkaisemalla laadukkaan jatkojohdon ja kytkemällä
sen päät ohjaimeen.
Kytkentä
Ohjaimen kytkentäkaavio PDF muodossa nähtävissä alla olevasta
linkistä:
temp_controller_v21_Circuit_diagram.pdf
Kytkentä sinänsä on varsin yksinkertainen, sillä mikrokontrolleri
hoitaa lähestulkoon kaiken. Termistorit liitetään liittimiin X4 ja
X5. Termistori muodostaa 10 kohm vastuksen kanssa jännitejaon. Sitä
luetaan mikrokontrollerin AD-muuntimella.
Sisä- ja ulkolämpötilat esitetään kukin omalla 4-numeroisella
7-segmenttinäytöllä. Näyttöjä ajetaan suoraan mikrokontrollerin
pinneistä. Yhteiskatodeja (tai yhteisanodeja, näyttötyypistä
riippuen) ajetaan kahdella rinnankytketyllä pinnillä, jolloin
saadaan riittävän suuri virta ilman ulkoista transistoria tai
ohjainpiiriä. Segmenttejä ohjaavissa pinneissä on sarjavastus, joka
asettaa yhden segmentin läpi meneväksi virraksi noin 6 mA.
Enkooderi on kytketty suoraan mikrokontrollerin pinneihin, ja sitä
luettaessa käytetään PICin sisäisiä heikkoja ylösvetovastuksia.
Lämmittimen relettä ohjataan transistorilla Q1. Tässä käytettävän
NPN transistorin voi valita melko vapaasti, itse olen käyttänyt
2N4401 tyyppiä, koska niitä sattui olemaan läjä. Releen kelan
takapotkulta suojaamassa on diodi.
Tulevaisuuden laajennusten varalle on liitin X6. Siihen voisi kytkeä
esimerkiksi I2C -väyläisen kosteus- ja ilmanpaineanturin, taikka
kaksi termistoria lisää. Ulkolämpötilaa mittaavia termistoreja voisi
olla kaksi, eri puolilla rakennusta, jotta niistä jompi kumpi on
aina varmasti varjossa.
Mikrokontrollerin pinnijärjestys on lähes sama kuin aiemmassa 1.1
versiossa. Erona on ainoastaan enkooderin muutos ICSP pinneistä
C-portissa oleviin aiemmin vapaisiin pinneihin. Tästä on se etu
ettei enkooderi häiritse mikrokontrollerin ohjelmointia, koska
enkooderi voi tietyissä asennoissa pitää linjaa maissa. Firmiksessä
tämä on huomioitu siten että se tukee molempia enkooderin
kytkentävaihtoehtoja. Niinpä uusia FW versioita voi käyttää myös
vanhan ohjainversion kanssa suoraan.
Leiska
Piirilevy on suunniteltu Eagle
5.12.0 ohjelmistolla. Se on mitoiltaan 78 x 95,5 mm, ja sopii Kehua
KH-F3 koteloon. Kotelossa on läpinäkyvä kansi joten näyttöjä
varten ei tarvitse tehdä reikiä. Kotelon mukana tulee kannen
kiinnitysruuvit, mutta ei piirilevyn kiinnitysruuveja. Siihen sopii
2,5 mm x 5 mm muoviruuvit (nk. plastofast).
Kortilla on käytetty pelkästään läpiladottavia komponentteja, joten
se on aloittelevalle harrastajallekin helppo kasata. Kortilla on
2-puoleinen kuparointi joten helpointa on käyttää tehdastekoista
korttipohjaa. Piirilevyjä saa varsin edullisesti Kiinasta. Olen
teettänyt näitä sekä pcbway.com
että dirtypcbs.com
korttipajoissa. Laatu on molemmissa hyvä ja toimitusajat samaa
luokkaa, n. kolme viikkoa. Tästä
linkistä voit tilata PCBWay:ltä ja tästä
linkistä DirtyPCB:ltä. Hintaa tulee postikuluineen PCBWay:llä
n. 14$ ja DirtyPCB:llä n. 26$, kun tilaa 10 kpl erän. Huom! DirtyPCB
sivut ovat uudistuneet ja ostaja saa nyt itse valita mm. piirilevyn
paksuuden ja värin. Oletuspaksuus on 1,2 mm, tämä kannattaa vaihtaa
1,6 mm:iin.
Eagle -tiedostot ladattavissa alla olevasta linkistä
temp_controller_hw_v21.zip
4.4.2017 Piirilevyyn suunnittelutiedostot, tehty
Eagle versiolla 5.12.0.
Osasijoittelukuva ja osaluettelo PDF muodossa ladattavissa tästä temp_controller_v21_assy_and_bom.pdf
Osaluettelossa on listattu myös Mouserin,
Digi-Keyn, Reicheltin ja Partcon
tilausnumerot. Valitettavasti mistään näistä kaupoista ei saa
kaikkia tarvittavia osia. Tilausnumerot jotka on annettu kursiivilla
tarkoittavat että kyseessä on ko. kaupan lähin vastaava osa jonka
pitäisi toimia, mutta osan sopivuutta ei ole tarkastettu!
Näytöille suositeltava tyyppi on tuo osaluettelossa annettu
Lite-Onin yhteiskatodinäyttö, sillä PIC:n lähdöt jaksavat ajaa
voimakkaammin alas kuin ylös. Yhteisanodinäytöt toimivat kyllä nekin
OK, mutta merkkien keskinäiset kirkkaudet voivat hiukan vaihdella,
riippuen siitä montako segmenttiä on päällä. Noiden Lite-Onin
LTC-4727JR ja LTC-4627JR näyttöjen lisäksi voi käyttää myös Youngsun
ATA3492BR-1 -näyttöä jota saa Sparkfunin
lisäksi ainakin Hobbytronicsilta.
Firmis
Mikrokontrollerin ohjelma on tehty CCS
PIC-C kääntäjällä. Koodi on jossain määrin kommentoitu joten
en ala selostamaan sen toimintaa tässä. Jos joku kohta on epäselvä
niin lähetä meiliä. Jos käytät yhteisanodi -tyyppisiä näyttöjä,
kommentoi rivi #define CC_DISPLAY. Alla olevassa paketissa on
lähdekoodin lisäksi käännetyt binäärit kummallekin näyttötyypille.
temp_controller_fw_v15.zip
29.5.2016. Lähdekoodi ja CCS 5.054 versiolla käännetyt binäärit.
Lisätty tuki C-portissa olevalle enkooderille
temp_controller_fw_v16.zip
20.11.2017. Lähdekoodi ja CCS 5.054 versiolla käännetyt binäärit.
Lisätty varmistus tuntilaskureiden nollaukseen virhenollauksen
estämiseksi. Lisäksi useita pieniä käyttäjälle näkymättömiä
optimointeja.
temp_controller_fw_2
Uusi 2.x firmware tuo
mukanaan niin paljon uudistuksia että sillä on oma sivunsa.
Toistaiseksi 2.x sarja on varsin vähän testattu joten siinä on melko
varmasti bugeja. Jos et tarvitse uusia ominaisuuksia niin kannattaa
vielä käyttää 1.x sarjaa.
Tehonsyöttö ja lämmittimen ohjaus
Sähkönsyöttöä ja lämmittimen kytkentää varten piirilevyllä on
ruuviliittimet. Osaluettelossa annetuissa Phoenix Contactin
liitintyypeissä (saatavissa vain Mouserista ja Digi-Keystä) on
nollajohtimen ja suojamaan liittimissä kontaktit yhdistetty
liittimen sisällä. Näin saadaan minimoitua paljon virtaa
kuljettavien juotosliitosten määrä. Monisäikeistä johdinta
käytettäessä kannattaa käyttää pääteholkkia.
Kytkentään valittu rele on 16A nimelliskuormalle. Piirilevyn
kuparivedot on vedetty molemmille puolille korttia ja mahdollisimman
leveinä eristevälit huomioiden, mutta yleisimmin käytetyllä 35 µm
kuparipaksuudella ne on silti ehkä hiukan ohuet 16A kuormalle.
Suosittelen ainakin toistaiseksi max. 10A ennenkuin olen testannut
toiminnan täydellä 16A virralla.
Huomautan vielä että lämmittimen ohjaukseen liittyvät kytkennät ovat
lähes poikkeuksetta hommaa johon vaaditaan tarvittava sähkömiehen
pätevyys! Joten en ala sitä ohjeistamaan tarkemmin. Jos et tiedä
miten kytkentä kuuluu tehdä pyydä tähän sähkömiehen apua.
Termistorit
Termistoreina olen käyttänyt ebaystä
hankittuja 10 kohm NTC-vastuksia joiden beta on 3950. Niissä
on metrin mittainen johto jonka päässä ns. XH-liitin joka on
kiinalainen kopio JST:n
XH-sarjan liittimestä. Näiden kanssa voi käyttää piirilevyllä
aitoa JST:n liitintä jonka tyyppi on annettu osaluettelossa. Itse
termistori on metallihylsyn sisällä joka on täytetty epoksilla.
Testieni perusteella nuo tuntuisivat noudattavan varsin hyvin tätä
Adafruitin sivuilta löytyvää taulukkoa. Mittasin yhden
termistorin resistanssiksi jäävedessä 31,87 kohm ja kiehuvassa
vedessä 652 ohm. Firmiksessä oleva lämpötila/AD-muunnos -taulukko on
tehty tuon em. taulukon mukaan ja käytännössä mittarin näyttämä
pitää varsin hyvin yhtä kaupasta ostetun digitaalisen lämpömittarin
kanssa.
Absoluuttista tarkkuutta tärkeämpäähän tässä sovelluksessa on, että
termistorit antavat keskenään samansuuruisia lukemia. Tämä kannattaa
varmistaa teippaamalla anturit yhteen ja katsomalla näyttääkö
lämpömittari yhtä paljon, ja tehdä testi vielä mieluusti sekä
kylmässä että lämpimässä.
Käyttöliittymä
Lämmittimen käyttöliittymän valikkorakenne on esitetty allaolevassa
tilakaaviossa. Valikossa liikutaan pyörittelemällä ja painamalla
nuppia.
Perustila on siis tuo oikealla ylhäällä jossa näytössä näkyy sisä-
ja ulkolämpötilat. Ulkolämpötilanäytön oikeanpuoleisin
desimaalipiste ilmaisee onko lämmitys päällä. Lämmityksen ohjaus
toimii normaalisti riippumatta siitä ollaanko lämpötilanäkymässä
vaiko jossain valikon syövereissä.
- Difference tarkoittaa lämpötilaeroa, joka halutaan pitää ulko-
ja sisälämpötilojen välillä. Oletusasetus tälle on 5 astetta
- Hysteresis on lämpötilasäädön hystereesi. Tällä estetään ettei
lämmitin räpsy jatkuvasti päälle/pois kun lämpötilaero on juuri
asetetun suuruinen. Jos käytössä on puolijohderele, tämä voi
olla aika pienikin kun puolijohderele ei ole kuluva osa.
Mekaanisella releellä sopiva arvo on esim. 1.0 asteen
hystereesi, joka on oletusasetus.
- Low limit on alaraja jonka vaikutus riippuu mitä alarajan
tyypiksi on asetettu.
- Jos tyyppi on 'antifreeze', asetus on alaraja jota
kylmemmäksi ohjain ei sisälämpötilaa päästä. Tämän voi siis
esimerkiksi asettaa muutaman asteen plussan puolelle jos
rakennuksessa on vesijohto joka ei saa jäätyä. Jos kyseessä on
kesämökki, jota käytetään satunnaisesti talvisin, alaran voi
asettaa vaikka muutaman asteen pakkasen puolelle. Tällöin
kovilla pakkasilla mökille tullessa sen lämmitys asuttavaksi
ei kestä niin kauan kuin täysin kylmästä, mutta toisaalta kun
lämmöt pidetään talvella pakkasella, home ei kasva.
Oletusasetus on -5.0 astetta.
- Jos tyyppi on 'heater off', asetus on _ulkolämpötilan_
alaraja jossa lämmitys katkaistaan kokonaan. Tämän ideana on
sammuttaa lämmitys kokonaan kun ollaan reilusti pakkasella,
jolloin home ei kasva ja ilma on muutenkin kuivaa. Maksimoi
sähkönsäästön. Kannattaa käyttää tätä toimintoa varoen ja
mietittävä itse onko se soveltuva omaan käyttöön.
- High limit on yläraja jota kuumemmaksi sisätiloja ei
lämmitetä. Ei esimerkiksi liene mielekästä lämmittää sisätiloja
yli +30 asteeseen helteillä. Oletusasetus on +21 astetta
- Low limit type, alarajatyypin valinta. Tilojen nimet hiukan
kryptiset kun puristettu neljämerkkisiin 7-seg kirjaimiin.
Kuvaus edellä.
- Total hours laskee tunteja kuinka kauan ohjain on ollut
käytössä
- Heater hours laskee tunteja kuinka pitkään lämmitin on ollut
päällä. Kun tiedät lämmittimen tehon, tämän avulla voi helposti
laskea kuinka paljon sähköä on kulunut. Maksiminäyttämät
kummallekin tuntinäytölle on 9999, joka riittää hyvin vuositason
seurantaan. Tällöin laskurit kannattaa nollata kerran vuodessa.
- Reset hours valikossa napin painaminen nollaa molemmat
tuntilaskurit
Rakentaminen
Ohjaimen rakentamiseen tarvittavat osat näkyy kuvassa alla.
Laitteen kasaamisessa ei ole mitään ihmeempiä niksejä.
Mikrokontrollerin voi ohjelmoida kun laite on juotettu kasaan.
Ohjelmointi onnistuu ainakin PICkit2, PICkit3 ja ICD3
ohjelmointilaitteilla. Kortilla on käytetty Tag-Connect
sovitinkaapelille sopivaa footprinttiä X8. ICD3:lle sopiva kaapeli
on TC2030-MCP-NL.
Koska sekä ICD3 että Tag-Connect kaapeli ovat kalliita, on v2.0
piirilevylle lisätty budjettiratkaisuksi paikka piikkirimalle
johon PICkit2 ja PICkit3 sopivat suoraan. Lisätietoja
mikrokontrollerin ohjelmoinnista tästä.
Koteloon tarvittavien reikien poraamisen avuksi tein sapluunan,
jonka pitäisi 1:1 skaalalla A4:lle printatessa olla oikean
kokoinen. Ladattavissa tästä:
temp_controller_v21_sapluuna.pdf
5.6.2017
16 mm vedonpoistajien muttereita täytyy yhdeltä kantilta hieman
veistää että ne sopivat paikalleen. Johtojen kytkemiseen
ruuviliittimiin on hiukan heikosti tilaa, voi olla tarpeen kytkeä
johdot kun kortti on vielä irrallaan ja vasta sitten ujuttaa se
kotelon pohjalle. Tässä helpottaa jos vedonpoistot ruuvaa vasta
lopuksi paikalleen.
Kustannukset
Kuivanapitolämmittimen ohjaimen osat maksavat yhteensä noin 30 ,
mukaanlukien kotelo ja termistorit. Tämä sisältää vain osien hinnan
yhteen ohjaimeen, ei postikuluja taikka piirilevy-ylijäämää.
Ohjaimen hintaa saa hiukan karsittua jos jättää enkooderin pois.
Tällöin halutut asetusarvot pitää muuttaa firmikseen, oletusarvojen
paikalle. Vielä lisää saa säästettyä jättämällä 7-segment näytöt ja
niiden etuvastukset pois.
kair.us/ projects/ temp_controller/
page created 2.7.2015
last updated 8.11.2019 webmaster@kair.us