Mikrokontrollerin ohjauskytkennät

Julkaistu: lauantai 11.2.2017

Nykypäivänä mikrokontrollerit ohjaavat kaikenlaisia laitteita ympärillämme ja saavat erilaisia asioita tapahtumaan. Esimerkiksi valojen ohjauksia, tuulettimien pyörimisiä tai erilaisia ääniä saadaan aikaiseksi nimenomaan mikrokontrollereilla.

Mikrokontrolleri ei kuitenkaan välttämättä ole kytketty suoraan ohjattavaan kuormaan, vaan välissä on jokin puskuri tai vahvistin, joka kytkee kuormaan tarvittavan määrän virtaa ja jännitettä. Tällainen väli-kytkentä myös suojaa mikrokontrollerin I/O:ta ja on helppo myöskin testata erikseen. Tällä sivulla esitellään muutama ohjauskytkentä, jotka voidaan helposti rakentaa. Aluksi kuitenkin yleistä asiaa esimerkiksi NPN-tyyppisen transistorin valitsemisesta. Samat periaatteet pätevät muihinkin transistorityyppeihin.

Ohjaustransistorin valinta

Tärkeä juttu kytkennässä on tietenkin ohjaustransistorin valitseminen. Voidaan ehkä sanoa, että joka paikkaan soveltuvaa valintamenetelmää ei voi suoralta kädeltä määritellä, koska täytyy tietää kytkennän käyttöympäristö ja muut olosuhteet, jotka kytkennän toiminnan aikana vallitsevat. Kuitenkin muutamia yksittäisiä ja yleisiä valintakriteereitä voidaan määritellä ja ehdokas transistorien ominaisuuksia vertailemalla paras transistori tehtävään yleensä löydetään. Jokaisen transistorin ominaisuudet selviävät aina datalehdestä (joka löytyy googlettamalla tai valmistajan kotisivuilta).

Ensiksi voidaan miettiä yksinkertaisesti kuormaa, mitä ohjaustransistorin on ohjattava? Kuinka suuri kuorma on kyseessä tai minkä tehoinen kuorma on? Jos ohjattavana on vaikkapa joukko ledejä etuvastuksineen, niin kuorma on ledien yhteenlaskettu virta, sillä kyseisen virran täytyy kulkea ohjaustransistorin läpi. Jos siis ohjattava virta tiedetään, voidaan ohjaustransistori valita virran keston mukaan. Maksimivirtaa merkitään datalehdissä usein symbolilla IC taulukossa Absolute Maximum Ratings, joka puolestaan löytyy lähes aina datalehden alkusivuilta.

Transistori

Ohjaustransistorin valintaan vaikuttaa edellä mainitun virrankeston lisäksi ohjausjännite, jota merkitään nyt symbolilla +V. Valittavan transistorin on siis kestettävä ohjattavan jännitteen +V ja kytkennän maan, eli 0-voltin jännite-ero silloin kun transistorin kannalle ei syötetä virtaa - eli transistori on OFF-tilassa. Toisin sanottuna: jos ohjattavan kuorman jännite +V on 60 volttia ja maa on 0-volttia ja ohjaus on pois päältä, niin transistorin tulee kestää vähintään 60 voltin VCE -jännite. Tätä merkitään usein myös symbolilla VCEO ja tämäkin löytyy komponentin datalehdeltä.

Kolmas vaikuttava tekijä on transistorin kollektorin ja kannan yli vaikuttava jännite VCB, joka on siis jännite-ero, minkä transistorin tulee kestää rikkoutumatta. Edellistä esimerkkiä lainaten: jos ohjausjännite on +V on 60 V, niin kollektorin ja kannan välinen jännite ero tulee olla pienempi kuin transistorin datalehdessä mainittu maksimi kollektori-kanta-jännite, jota merkitään usein symbolilla VCBO.

Jos edellä mainitut asiat on kunnossa, niin transistorin valintaan vaikuttaa vielä yksi asia, joka on transistorin tehonkesto. Tehon kestolla määritetään se, miten paljon sähköenergiaa transistori kykenee kestämään, joka tulee muuttumaan hukkalämmöksi transistorissa. Tehonkulutuksen maksimiarvo määritellään myös transistorin datalehdessä ja sitä usein merkitään symbolilla PTOT.

Transistorin tehonkesto on kuitenkin hieman monimutkaisempi asia, koska komponentin maksimitehon kestoa määritellessä täytyy ottaa huomioon komponentin ympäristön lämpötila, fyysinen kiinnitys, piirilevyn kuparipinta-ala, tuuletus sekä useita muita tekijöitä. Yksinkertaisuuden vuoksi emme kuitenkaan tässä niitä käy läpi, vaan tyydytään siihen tietoon, että komponentin tehonkesto on riittävä +25 C asteessa.

Transistorin datalehdestä käy siis ilmi mikä on suurin sallittu tehohäviö, kun komponentin läpi kulkee tietty määrä virtaa (IC) ja sen yli on tietty jännite (VCE). Transistorin, kuten muidenkin komponenttien tehohäviö noudattaa kaavaa P = UI, eli tehohäviö = jännite * virta (tehohäviöstä enemmän tällä sivulla).

Jos käytetään edellisissä kappaleissa esille tullutta +V jännitettä joka on arvoltaan 60 volttia, niin transistorista saa kulkea maksimissaan 10 mA virtaa, kun se ohjaa 60 voltin kuormaa, ettei maksimi tehonkesto ylity jos sen arvo on esimerkiksi 0,6 W. Tässä tapauksessa tosin kannattaisi valita komponentti, joka kestää vähintään kaksinkertaisen tehohäviön.

Ohjaus NPN-transistorilla, resistiivinen kuorma, ON/OFF

NPN-ohjaus

Yllä olevassa kuvassa on esitettu NPN-transistorilla tehty kuorman ohjaus. Tässä kytkennässä mikrokontrollerin porttipinni on kytketty vastuksen avulla ohjaustransistorin kannalle. Ohjaustransistori on kytketty kuorman ja maan väliin ja kuorma on kytketty ohjausjännitteen ja transistorin väliin.

Kytkennällä halutaan näin ohjata resistiivistä kuormaa päälle ja pois. Tämä lienee käytetyin tapa kun mikrokontrolleri kytketään ohjaamaan jotain suurempaa kuormaa. Logiikka tässä kytkennässä on näin ollen:

Ohjaus "1" -tilassa = Kuorma R päällä (virta kulkee)
Ohjaus "0" -tilassa = Kuorma R pois päältä (virta ei kulje)

Kytkentää suunnitellessa on hyvä tarkastaa mikä on transistorin saturointijännite datalehdestä. Saturointijännite on se jännite, kun transistori on täysin johtavassa tilassa. Useimmille voidaan olettaa turvallisesti 0,7 volttia, mutta jos käytetään esimerkiksi darlington-transistoreita, on niillä kynnysjännite saturoituneena tyypillisesti 2 x 0,7 = 1,4 volttia. Tässä oletetaan kuitenkin 0,7 volttia.

Seuraavassa huomioita ja asioita itse kytkennästä, jotka olisi hyvä ymmärtää.

Transistorin kantavastus Rb

Mikrokontrollerin I/O -pinneistä voidaan yleensä ottaa muutamia kymmeniä milliampeereita virtaa. Tämä riippuu aina mikrokontrollerista, mutta oletetaan että tämä virta on 30 mA (esim. AVR-mikrokontrollereilla tyypillinen määrä).

Kun mikrokontrollerin ohjaus asetetaan päälle, niin vastus Rb rajoittaa pinnistä otetun virran johonkin sallittuun/määritettyyn arvoon. Mikrokontrollereilla on toki sisäiset rajoitukset, mutta se kannattaa varmistaa datalehdestä.

Jos vastusta Rb ei olisi, niin tämä virta olisi aina yllämainittu 20 mA. Jos lähtöjä olisi kytkettynä 10 kappaletta ilman kantavastuksia, niin mikrokontrollerin pinneistä otettaisiin tällöin 200 mA virtaa. Tällainen virta voi kuumentaa mikrokontrolleria liikaa ja kuumentumisen johdosta lähtöjä voi alkaa rikkoutumaan. Tästä syystä virta rajoitetaan yleensä vastuksella Rb.

Mikrokontrollereiden datalehdissä on yleensä maininta sallitusta maksimivirrasta, mikä sen I/O-linjoista voi mennä yhtäaikaa lävitse. Jos ohjauksia on paljon, täytyy yhteenlaskettu maksimivirta ottaa huomioon ja rajoittaa se tarvittaessa vastuksella Rb kullekin lähdölle tai vain joillekin lähdöille. Suosittelisin käyttämään vastusta jokaiselle lähdölle.

Transistorin kantavirran määritys ja kantavastuksen Rb mitoitus

Mitoitus

Koska kyseessä on virtaa vahvistava transistori (BJT), täytyy kannalle kulkea virtaa, että transistorin läpi alkaa kulkemaan virtaa.

Mitä kantavirta tarkoittaa sitten transistorin ohjauksen, vastuksen Rb ja mikrokontrollerin ohjauspinnin kannalta?

Ensiksikin mikrokontrollerin ohjauspinnistä täytyy saada virtaa, mutta ei välttämättä paljoa. Virran suuruus riippuu transistorin virtavahvistus arvosta, jota merkitään komponenttien datalehdissä symbolilla hFE.

Esimerkiksi tavallisella piensignaalitransistorilla BC547B virtavahvistus on 200 - 450 välillä. Tämä tarkoittaa siis sitä, että jos transistorilla haluttaisiin ohjata vaikkapa 100 mA:n virtaa (Ic, joka on absoluuttinen maksimi tälle komponentille), niin kantavirran suuruus täytyy minimissään olla 100mA / 200 = 0,5 mA, jotta transistori on kytkeytynyt täysin johtavaan tilaan (saturoitunut). Selvin sanoin ja kaavana kerrottuna siis:

Haluttu ohjausvirta / minimi vahvistus = minimi kantavirta
IB(min) = Ic(max) / hFE(min)

Kantavastuksen Rb laskeminen 

Kun mikrokontrolleri asettaa ohjauspinnin "0"-tilaan, ohjaus on pois päältä, eikä virtaa kulje, koska transistorin kannan jännite ei ylitä sen kynnysjännitettä VBE. Näin ollen vastuksen Rb yli ei ole jännitettä eikä virtaa myöskään se rajoita.

Kun mikrokontrollerin ohjaus 'naksahtaa' "1" tilaan, niin transistorin kannalle muodostuu kynnysjännite VBE ja vastuksen yli jää mikrokontrollerin I/O-jännite vähennettynä transistorin kynnysjännitteellä:

VRb = VIO - VBE

Mikrokontrollerin ohjausnastoille on aina määritely pienin ja suurin jännite, mitkä niillä taataan olevan, kun niiden ohjaus on "1" -tilassa tai "0" -tilassa. Näitä merkitään usein symboleilla VOL (Voltage Output Low) ja VOH (Voltage Output High).

Joten jos halutaan pelata varman päälle, niin katsotaan mikrokontrollerin datalehdestä VOH(min) -jännite ja vähennetäänkin kynnysjännite tästä arvosta. Tällöin saadaan varmistettua että ohjaus pelaa varmasti jokaisessa kytkennässä ja kantavastuksen yli jäävän jännitteen kaavaksi saadaan:

VRb = VOH(min) - VBE

Kun nyt tunnetaan jännite ja virta, voidaan vastus laskea ohmin lain avulla. Kantavastus Rb on siis:

Rb = (VOH(min) - VBE ) / IB(min)                                 (vrt.  R = U/I)

Esimerkkilasku: 

Esimerkiksi AtmelAVR ATtiny2313 mikrokontrollerin VOH(min) -jännite on 4,2 volttia (kuva leikattu datalehdestä alle).

Tästä saadaan pienin vastuksen yli oleva jännite. Kun jännite ja virta tunnetaan, voidaan vastus laskea ohmin lain avulla. Kantavastus Rb saadaan siis:

Rb = (VOH(min) - VBE ) / IB(min)
Rb = (4,2 - 0,7) / 0,5 mA
Rb = 7000 Ω

Käytännössä voidaan valita jokin E-sarjan standardi vastus, joka on pienempi kuin laskettu arvo, jolloin minimivirran ehto transistorin kannalle varmasti täyttyy. Esimerkiksi 6k8.

Ohjaus NPN-transistorilla, induktiivinen kuorma, ON/OFF

Induktiivinen kuorma

Yllä olevassa kuvassa on esitettu NPN-transistorilla tehty kuorman ohjaus. Tässä kytkennässä mikrokontrollerin porttipinni on kytketty vastuksen avulla ohjaustransistorin kannalle. Ohjaustransistori on kytketty kuorman ja maan väliin ja kuorma on kytketty ohjausjännitteen ja transistorin väliin.

Kytkennällä halutaan näin ohjata induktiivista kuormaa päälle ja pois. Logiikka tässä kytkennässä on näin ollen:

Ohjaus "1" -tilassa = Kuorma L päällä (virta kulkee)
Ohjaus "0" -tilassa = Kuorma L pois päältä (virta ei kulje)

Kytkennässä on tärkeää, että ohjaava transistori suojataan diodilla, joka on kytketty estosuuntaisesti ohjausjännitteesen nähden. Ilman suojadiodia transistorin VCB -jännite nousisi liian suureksi sillä hetkellä kun transistori ohjataan ensimmäisen kerran kiinni tai auki. Tämä johtuu kelan ominaisuudesta vastustaa virran muutosta ja tässä tapauksessa puhutaan transienttijännitteestä. Suojadiodi auttaa purkamaan kelan "ylimääräisen" energian ja näin ollen suojaa transistoria ylijännitteeltä.

Esimerkkilasku: 

Kantavastuksen laskeminen sekä muut asiat ovat samoja kuin resistiivisen kuorman ohjauksessa, joten niitä ei ole järkevää toistaa tähän.