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:

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ämmitysohjain

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).

Kuivanapitolämmitysohjain Eagle'up mallinnos

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.

Kuivanapitolämmittimen käyttöliittymävalikon
      tilakaavio

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ä.

Rakentaminen

Ohjaimen rakentamiseen tarvittavat osat näkyy kuvassa alla.

Kuivanapitolämmittimen
      rakennussarjan sisältämät osat

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