Takaisin



PROJEKTI-LÄMPÖTILAN MITTAUS-

Olen rakentanut Atmelin mikro-ohjaimilla jos jonkin moista kytkentää. Mielenkiinto heräsi kuitenkin erilaisten anturien käyttämiseen mikro-ohjain sovelluksissa. Tämä avaisi uusia mahdollisuuksia erilaisten kytkentöjen tekemiselle.

Itseäni kiinnosti aika paljon lämpötilan mittaus mikro-ohjaimella, joten kävin tutkimaan asiaa miten tämä onnistuisi. Muutaman hyvän kirjan lukemisen jälkeen alkoi hahmottua kuva asiasta miten anturien tulkinta suoritettaisiin mikro-ohjaimella.

Pelkän lämpötilan mittaukseen löytyy hyviä vaihtoehtoja, joista aika houkuttelevalta vaikutti Dallasin lämpötila-anturi DS18S20, josta tieto saadaan suoraan bittimuotoisena ulos.


Tosin itse päädyin anturiin LM35, joka antaa lämpötilatiedon jännitteenä ulos. Tästä syntyi ongelma koska mikro-ohjaimelle ei pysty viemään suoraan analogista signaalia, joka tulisi lämpötila-anturilta. Ongelman korjaamiseksi analogisen signaalin ja mikro-ohjaimen välille tarvitaan AD-muunnin. AD-muuntimen tehtävänä olisi muuntaa analoginen signaali anturilta mikro-ohjaimen ymmärtämään muotoon eli biteiksi.

Itselläni ei ollut aikaisempaa kokemusta AD-muuntimien käytöstä. Miettiessäni kuitenkin, että mikäli oppisin käyttämään AD-muunninta mikro-ohjainsovelluksissa, saisin sen avulla mitattua analogistasignaalia, jota erilaiset anturit antavat mittatietona ulos. Tämä avaisi mahdollisuuden erilaisten asioiden mittaamiseen kuten:

- Lämpötilä
- Paine
- Ilmankosteus
- Jännite yms.

AD-MUUNNIN

AD-muunninta valittaessa huomaa, että kyseessä on kallis komponentti ja vaihtoehtoja löytyy. Itse päädyin kokeilemaan kahta eri ad-muunninta, jotka olivat MAX187 ja MX7572. Kummatkin muuntimet olivat 12-bittisiä. Eroina oli kuitenkin se, että MAX187 antaa tiedon ulos sarjamuotoisena ja MX7572 antaa tuloksen rinnakkaismuodossa. Muuntimia, jotka antavat tuloksen rinnakkaismuodossa käytetään yleensä silloin, kun muuntimelta vaaditaan suurta nopeutta.

AD-muuntimen tärkeimmät ominaisuudet:
-Bittimäärä, joka kertoo kuinka monella bitillä muunnin ilmoittaa mittauksen tuloksen. Bittien lukumäärä vaikuttaa muuntimen resoluutioon. 12-bittinen muunnin jakaa mitattavan signaalin 2^12 = 4096 osaan.
-Muunnosnopeus, jolla tarkoitetaan aikaa, joka muuntimelta kuluu muunnoksen tekemiseen.
-Kanavien määrä,jolla tarkoitetaan kuinka montaa eri signaalia ad-muuntimella voidaan mitata.
Mikäli halutaan mitata useaa eri signaalia ad-muuntimella, mutta muunnin sisältää vain yhden kanavan voidaan käyttää erillistä analogista multiplekseriä.

MAX187
Kyseinen AD-muunnin oli aika hintavahko komponentti. MAX187 toimii 5 voltin käyttöjännitteellä joka on oiva ominaisuus mikro-ohjain sovelluksia ajatellen. Piiri sisältää myös sisäisen vertailujännitteen. Piiri antaa mittaustuloksen sarjamuotisena bittikuviona ulos ja sisältää 3 ohjaustuloa, joten mikro-ohjaimelta otetaan muuntimen käyttöä varten 4 I/O-liitäntää. Joten MAX187 selviin etuihin kuuluu se, että se vie vähän liitäntöjä mikro-ohjaimelta.

MX7572
Tämä muunnin oli halvempi verrattuna edelliseen muuntimeen. MX7572 vaatii toimiakseen 5 voltin käyttöjännitteen lisäksi negatiivisen -15 voltin käyttöjänniteen. Suurimpina eroina edelliseen muuntimeen oli että piiri antaa tuloksen rinnakkaismuodossa. Näin ollen se vie paljon I/O-liitäntöjä mikro-ohjaimelta. Muuntimen vaatiessa paljon liitäntöjä mikro-ohjaimelta sen käyttö on aika mahdotonta mikro-ohjaimilla joilla on vähän I/O liitäntöjä.

ENSIMMÄINEN AD-MUUNNIN KOKEILU MX7572:lla


Muutama päivä siinä meni kun lueskeli kyseisen muuntimen datalehteä ja päätyi värkkäilemään kytkentää ja piirilevyä MX7572 muuntimelle.

Suunnittelin kytkennän siten että piirilevyllä on liitännät mikro-ohjainta varten ja lisäksi ledit, jotka näyttävät muuntimen muunnostuloksen. Ledit vastasivat muuntimen antamaa 12 bitin tulosta siten että bittikuviossa oleva ykkönen sytytti itseään vastaavaan ledin.

Ylimmän rivin vihreistä ledeistä ensimmäinen vastasi vähiten merkitsevää bittiä ja alarivin punaisista ledeistä viimeinen vastasi eniten merkitsevää bittiä.

Tämä helpotti mikro-ohjaimen ohjelmointia huomattavasti, sillä muuntimen tuloksen näki ledeistä. Tämän avulla pystyi tarkistamaan sytyttikö mikro-ohjaimeen tehty ohjelma saman bittikuvion ledeillä kuin ad-muunnin. Saatuani tämän vaiheen toimimaan hyvin oli aika siirtyä eteenpäin ohjelmoinnissa.

Mikro-ohjain tarvitsee oman tulkin muuttamaan tiedon sen ymmärtämään muotoon eli biteiksi niin ihmisellekin on huomattavasti helpompaa lukea lämpötilatieto numeroina kuin laskea bittikuvion kautta saatu lämpötila. Jotta mittaustiedon tulkitsemisesta tulisi helpompaa, tarvitaan näyttö sitä varten. Näyttövaihtoehtojakin on useita kuten LCD ja 7-segmenttien avulla rakennettu näyttö. Kummatkin näytöt on tullu rakennettua mikro-ohjaimelleni, mutta tässä päädyin käyttämään rakentamaani 4x7-seg. näyttöä.

Kuvassa näkyy edellinen kortti toiminnassa. Kuvassa mitataan pariston jännitettä. AD-muunninkortilla näkyy ledit toiminnassa, joka vastaa muuntimen lähdössä olevaa rinnakkaismuotoista bittikuviota. Bittikuvio viedään myös mikro-ohjaimen tuloihin. Mikro-ohjaimessa oleva ohjelma laskee tuloihin kytkeytyneen bittikuvion avulla paljonko patterin jännite on ja tulostaa tiedon näytölle. Näytöltä on huomattavasti helpompi tulkita tuo 1,425voltin jännite.

Kyllä siinä muutama ilta ja useampi kahvi kuppi meni ennen kuin jännite näkyi näytöllä, mutta tuosta vaiheesta ei ollut enää pitkä matka lämpötilan näkymiseen näytöllä. Kun olin saanut homman toimimaan MX7572 muuntimella, päätin siirtyä MAX187 muuntimeen.

TOINEN AD-MUUNNIN KOKEILU MAX187:lla

<-Jännitemuunnin

MAX187 AD-muunnin ->

Onnistuneen AD-muunnin kokeilun jälkeen päätin rakentaa yksinkertaisen jännitevahvistinkytkennän erilaisia antureita varten, jonka avulla saisin muunnettua anturien antamat jänniteviestit aina vakio 0-5 voltin jänniteviestiksi. Kytkentä on rakennettu operaatiovahvistin LM741 ympärille. Netistä löytyy paljon tietoa miten kyseisestä piiristä rakennetaan jännitevahvistin. Toisaalta tämä kytkentä ei välttämättä ole kovin tarpeellinen anturin ja muuntimen välissä.

MAX187 AD-muuntimen avulla mittaus onnistuikin huomattavasti helpommin, kun oli jo harjoitellut hommaa MX7572 piirin kanssa. Ainoa aikaa vievä vaihe oli ohjelmoinnissa tuloksen tulkinta, mutta pienen taistelun jälkeen senkin sai toimimaan. Tämän jälkeen vain jännitevahvistin ja lämpötila anturi LM35 AD-muuntimen perään kiinni ja lämpötila näytölle näkyviin.

Kuvassa näkyy LM35 anturilla mitattu huoneeni lämpötila.

JATKO KEHITTELYÄ OSA 1

Kytkentä lojui muutaman kuukauden tuollaisenaan huoneessani mitaten lämpötilaa. Eräänä viikonloppuna tuli kuitenkin mieletön inspiraatio:

"mitäs jos laittaisi lämpötilan näkymään nettiin?"

Itselläni nuo C-kielen taidot riittävät mikro-ohjaimen ohjelmointiin. Tietokoneella hallitsen huomattavasti paremmin Visaul Basicin C-kieleen nähden. Joten päädyin värkkäilemään VB:llä ohjelmaa, joka vastaanottaisi sarjaportin kautta tulevaa tietoa.

Muutama viikonloppu ja useampi kirosana tuli uhrattua kyseisen ohjelman tekoon. Ohjelmasta muodostui yksinkertain jonka päätehtäviä oli:

- Kerätä lämpötila tietoja
- Tallentaa mittausaika ja päivämäärä.
- Luoda internet-sivu
- Tallentaa kerätyt tiedot


Yllä olevassa kuvassa näkyy ohjelman luoma internettiedosto. Kuvassa näkyy myös mittalaitteisto. Mikro-ohjaimen sarjaporttilähdöt otettiin käyttöön ja ohjelmaa paranneltiin siten, että se lähettäisi aina mittaus tuloksen sarjaportin kautta palvelimelleni. Palvelimelleni tekemäni softa vastaanotti tietoa ja tallensi tietoja tekstitiedostoon. Sen lisäksi se päivitti palvelimellani olleen internetsivun tiedot 10 minuutin välein.

MIETISKELYÄ / JATKOKEHITTELYÄ TULEVAISUUDESSA

Edellä kerrottua projektia oli mukava tehdä näin jälkeen päin ajatellen. Tosin välillä olisi tehnyt mieli heittää kaikki laitteet ikkunasta ulos vaikealta tuntuvan ongelman tullessa eteen. Kuitenkin projektia olisi vielä tarkoitus kehittää tulevaisuudessa mikäli sitä varten siunaantuu aikaa ja inspiraatioita. Olisi tarkoitus toteuttaa jonkinlainen sääasema jonka ominaisuuksia voisivat olla mm.

1. Mitattaisiin seuraavia asioita: ulkolämpötila,ilmanpaine,ilmankosteus,tuulennopeus,tuulensuunta ja sisälämpötila 2. Mittaustulokset tallennettaisiin tiedostoon
3. Mittaustulokset päivitettäisiin nettiin

Ehkä myöhemmin tulevaisuudessa sitten...

©MikaWeb