Transistori vai MOSFET kuorman kytkemiseen mikrokontrollerilla

Transistori vai MOSFET kuorman kytkemiseen mikrokontrollerilla

Kun Arduino-, ESP32- tai Raspberry Pi -projektissa pitää ohjata LED-nauhaa, moottoria, relettä tai pumppua, tulee vastaan kysymys siitä, valitaanko kuorman kytkemiseen transistori vai MOSFET. Mikrokontrollerin lähtöpinni antaa vain muutamia kymmeniä milliampeereja, joten välissä tarvitaan aina kytkinkomponentti. Tässä artikkelissa käydään läpi, miten bipolaaritransistori ja MOSFET eroavat, milloin kumpikin sopii paremmin ja miten tyypilliset aloittelijan virheet vältetään.

Miksi mikrokontrolleri ei voi ohjata kuormaa suoraan

Arduino Unon ATmega328P-piirin pinnin absoluuttinen maksimivirta on 40 mA, ja suositeltu käyttöraja on noin 20 mA. ESP32:n ja Raspberry Pi Picon pinnit toimivat 3,3 voltin logiikalla, ja niidenkin virtakestot ovat pieniä. Raspberry Pin GPIO-pinnit eivät kestä 5 volttia lainkaan.

Yksi LED etuvastuksen kanssa toimii suoraan pinnistä. Pienikin DC-moottori, 12 V LED-nauha tai releen käämi vaatii kuitenkin ulkoisen kytkimen. Pahimmillaan kuorman kytkeminen suoraan pinniin rikkoo koko mikrokontrollerin.

Bipolaaritransistori: virralla ohjattu kytkin

NPN-transistori, kuten BC547 tai 2N2222, johtaa kollektorilta emitterille, kun kannalle syötetään virtaa. Kantavirtaa rajoitetaan vastuksella, ja kannan ja emitterin välinen jännite asettuu noin 0,6-0,7 volttiin. Transistori kytketään yleensä kuorman maapuolelle (low-side), eli emitteri maahan ja kuorma käyttöjännitteen ja kollektorin väliin.

Tyypillinen esimerkki on 5 V rele, jonka käämi ottaa noin 70 mA. Kun transistori halutaan varmasti kyllästykseen, kantavirraksi mitoitetaan noin kymmenesosa kollektorivirrasta eli 5-7 mA. Arduinon 5 voltin pinnillä kantavastukseksi tulee silloin (5 V – 0,7 V) / 0,006 A ≈ 700 Ω, joten 560 Ω-1 kΩ vastus toimii käytännössä hyvin.

BC547:n kollektorivirran maksimi on 100 mA, joten se sopii releisiin, summereihin ja pieniin LED-ryhmiin. 2N2222 kestää valmistajasta riippuen useita satoja milliampeereja, mutta tarkka arvo kannattaa tarkistaa käytettävän komponentin datalehdestä. Kyllästyneenkin transistorin yli jää noin 0,2-0,3 V jännitehäviö, ja suuremmilla virroilla häviö kasvaa ja muuttuu lämmöksi.

MOSFET: jännitteellä ohjattu kytkin suurille virroille

N-kanavainen MOSFET ohjataan hilan ja lähteen välisellä jännitteellä. Hila ei ota jatkuvaa virtaa, vain lyhyen latausvirran jokaisella kytkentäkerralla. Täysin johtavan MOSFETin resistanssi Rds(on) on parhaimmillaan muutamia kymmeniä milliohmeja, joten häviöt jäävät ampeeriluokan virroillakin pieniksi.

Lasketaan esimerkki: ESP32-pohjainen ohjain säätää 12 V LED-nauhaa, joka ottaa 2 A. Jos MOSFETin Rds(on) on 0,05 Ω, häviöteho on I² × R = 4 × 0,05 = 0,2 W. TO-220-kotelo selviää siitä ilman jäähdytyslevyä. Bipolaaritransistorilla sama virta vaatisi jo reilun kantavirran ja tuottaisi selvästi enemmän lämpöä.

Perusohjauskytkennässä MOSFETin lähde (source) kytketään maahan ja kuorma nieluun (drain). Hilan ja mikrokontrollerin pinnin väliin tulee 100-220 Ω sarjavastus ja hilan ja maan väliin 10 kΩ alasvetovastus. Alasvetovastus pitää MOSFETin pois päältä käynnistyksen aikana, kun pinni on vielä kelluvassa tilassa.

Myytti: kynnysjännite kertoo, toimiiko MOSFET 3,3 voltilla

Yleinen väärinkäsitys on, että MOSFET toimii ESP32:n tai Raspberry Pin 3,3 voltilla, kunhan datalehden Vgs(th)-arvo on esimerkiksi 2 V. Ei toimi. Kynnysjännite on se piste, jossa MOSFET vasta alkaa johtaa hyvin pientä virtaa, tyypillisesti alle milliampeerin.

Ratkaiseva arvo on Rds(on) ja se hilajännite, jolla valmistaja sen ilmoittaa. Esimerkiksi suosittu IRF540N on määritelty 10 voltin hilajännitteellä, joten 3,3 tai edes 5 voltin pinnillä se jää puolijohtavaan tilaan ja kuumenee. Mikrokontrollerikäyttöön valitaan logiikkatason MOSFET, jonka Rds(on) on ilmoitettu 4,5 voltilla tai mieluiten 2,5 voltilla. IRLZ44N on Arduinon kanssa yleinen valinta, mutta 3,3 voltin kortille kannattaa etsiä datalehdestä malli, jonka Rds(on) on taattu 2,5 voltin hilajännitteellä.

Transistori vai MOSFET – valinta käytännössä

Kokenut suunnittelija katsoo ensin kuorman virran ja ohjausjännitteen. Alle 100 mA kuormille, kuten releille ja summereille, BC547 tai 2N2222 on halpa, helposti saatavilla ja anteeksiantava. Muutaman sentin komponentti riittää, eikä hilajännitteestä tarvitse huolehtia.

Yli 300-500 mA kuormille, kuten LED-nauhoille, puhaltimille, vesipumpuille ja magneettiventtiileille, MOSFET on lähes aina parempi. Se myös sopii PWM-himmennykseen paremmin, koska häviöt pysyvät pieninä. Poikkeus on 3,3 voltin ohjaus ilman sopivaa logiikkatason MOSFETia: silloin pieni NPN-transistori voi ohjata MOSFETin hilaa korkeammalla jännitteellä, mutta logiikka kääntyy samalla käänteiseksi.

Hintaero on pieni. Yksittäinen BC547 maksaa kymmeniä senttejä ja logiikkatason MOSFET noin 1-3 €. Transistorilajitelma maksaa noin 10-20 €, mutta hinnat vaihtelevat myyjän ja kampanjoiden mukaan. Suomessa fyysisiä komponenttikauppoja on vähän, joten osat tilataan usein verkosta. Halvimmista Kaukoidän eristä löytyy toisinaan väärennettyjä MOSFETeja, joiden todellinen Rds(on) on moninkertainen. Tuonnin sudenkuopista kerrotaan tarkemmin artikkelissa komponentit Kaukoidästä – tulli, arvonlisävero ja aitous.

Yleisimmät virheet kuorman kytkemisessä

Sähkö- ja automaatioalan opiskelijan ensimmäisessä moottoriohjauksessa sama ongelma toistuu usein: piiri toimii hetken, sitten mikrokontrolleri resetoituu tai transistori hajoaa. Syy löytyy lähes aina jostakin näistä:

Vapaakäyntidiodi puuttuu. Releen käämi ja moottori ovat induktiivisia kuormia, ja virran katketessa ne tuottavat jännitepiikin. 1N4007-diodi kuorman rinnalle estosuuntaan, eli katodi käyttöjännitteen puolelle, suojaa kytkinkomponenttia.

Yhteinen maa unohtuu. Kun kuorma saa virtansa erillisestä 12 V virtalähteestä, sen maa on kytkettävä mikrokontrollerin maahan. Muuten ohjausjännitteellä ei ole vertailutasoa.

Kantavastus jää pois. Ilman vastusta BJT:n kanta-emitteriliitos on käytännössä oikosulku pinnistä maahan. Pinni tai transistori vaurioituu.

Kun piiri ei käyttäydy odotetusti, yleismittarilla kannattaa mitata MOSFETin nielun ja lähteen välinen jännite kuorman ollessa päällä. Jos jännite on enemmän kuin kymmenesosia voltin, MOSFET ei ole täysin auki. Mittarin valinnasta lisää artikkelissa yleismittarin valinta harrastajalle.

Turvallisuus ja verkkojännite

Kaikki edellä kuvattu koskee pienjännitettä, kuten 5, 12 tai 24 volttia. Halvoissa relemoduuleissa lukee usein 250 VAC, mutta 230 V verkkojännitteeseen liitettävät kiinteät asennukset kuuluvat sähköturvallisuuslain mukaan sähköalan ammattilaiselle. Halpojen moduulien eristysvälit eivät myöskään aina vastaa merkintöjä. Verkkovirtalaitteen ohjaukseen harrastaja voi käyttää valmista, CE-merkittyä älypistorasiaa.

UKK

Voiko Arduinolla ohjata 12 V LED-nauhaa?
Voi. Käytä logiikkatason N-kanavaista MOSFETia low-side-kytkennässä, 100-220 Ω hilavastusta ja 10 kΩ alasvetovastusta. Kytke nauhan virtalähteen maa Arduinon maahan.

Tarvitaanko MOSFETin kanssa vapaakäyntidiodia?
Induktiivisten kuormien, kuten moottorien, releiden ja solenoidien, kanssa tarvitaan. LED-nauha ja vastuskuorma eivät sitä vaadi, vaikka MOSFETissa on oma sisäinen runkodiodi.

Miksi MOSFET kuumenee, vaikka virta on pieni?
Yleensä hilajännite on liian pieni, jolloin MOSFET ei avaudu kokonaan ja Rds(on) on moninkertainen. Tarkista datalehdestä, millä hilajännitteellä Rds(on) on ilmoitettu.

Muistisääntö komponentin valintaan

Alle sadan milliampeerin kuormille riittää BC547 tai 2N2222 ja oikein mitoitettu kantavastus. Sitä suuremmille virroille ja PWM-ohjaukseen kannattaa valita logiikkatason MOSFET, jonka Rds(on) on taattu mikrokontrollerin omalla logiikkajännitteellä. Jos kehitysalusta on vielä valitsematta, artikkelista Arduino vai Raspberry Pi ensimmäiseen elektroniikkaprojektiin näkee, kumpi sopii projektiin paremmin. Pidä datalehti auki, lisää diodi induktiivisen kuorman rinnalle ja tarkista yhteinen maa ennen virtojen kytkemistä.

Anna pisteet

(ei vielä ääniä)

Arvostele, kommentoi tai kerro kokemuksista