Hvordan koble transistorer (BJT) og MOSFET med Arduino

Prøv Instrumentet Vårt For Å Eliminere Problemer





Grensesnittet mellom kraftenheter som BJT og MOSFET med Arduino-utgang er en avgjørende konfigurasjon som gjør det mulig å bytte høye belastninger gjennom lave utganger fra en Arduino.

I denne artikkelen diskuterer vi de riktige metodene for å bruke eller koble til transistorer som BJT og mosfets med hvilken som helst mikrokontroller eller en Arduino.



Slike stadier blir også referert til som 'Nivåskifter' fordi dette trinnet endrer spenningsnivået fra et lavere punkt til et høyere punkt for den aktuelle utgangsparameteren. For eksempel implementeres her nivåskiftet fra Arduino 5V-utgang til MOSFET 12V-utgang for den valgte 12V-belastningen.

Uansett hvor godt programmert eller kodet din Arduino kan være, hvis den ikke er riktig integrert med en transistor eller en ekstern maskinvare, kan det føre til ineffektiv drift av systemet eller til og med skade på komponentene som er involvert i systemet.



Derfor blir det ekstremt viktig å forstå og lære de riktige metodene for å bruke eksterne aktive komponenter som mosfets og BJTs med en mikrokontroller, slik at det endelige resultatet blir effektivt, glatt og effektivt.

Før vi diskuterer grensesnittmetodene til transistorer med Arduino, ville det være nyttig å lære de grunnleggende egenskapene og funksjonene til BJT og mosfet.

Elektriske egenskaper ved transistorer (bipolar)

BJT står for bipolar kryssstransistor.

Den grunnleggende funksjonen til en BJT er å slå PÅ en tilkoblet belastning som svar på en ekstern spenningsutløser. Belastningen skal ha mest strøm i forhold til inngangsutløseren.

Dermed er den grunnleggende funksjonen til en BJT å slå PÅ en høyere strømbelastning som svar på en lavere strøminngangsutløser.

Teknisk kalles dette også forspenning av transistoren , som betyr å bruke strøm og spenning for å betjene en transistor for en tiltenkt funksjon, og denne forspenningen må gjøres på den mest optimale måten.

BJT har 3 ledninger eller 3 pinner, nemlig base, emitter, samler.

Basestiften brukes til å mate den eksterne inngangsutløseren, i form av liten spenning og strøm.

Emitterpinnen er alltid koblet til bakken eller den negative tilførselsledningen.

Samlestiften er koblet til lasten via den positive forsyningen.

BJT kan finnes med to typer polariteter, NPN og PNP. Den grunnleggende pin-konfigurasjonen er den samme for både NPN og PNP som forklart ovenfor, bortsett fra DC-forsyningspolariteten som blir det motsatte.

De pinouts av en BJT kunne forstås gjennom følgende bilde:

På bildet ovenfor kan vi se den grunnleggende pinout-konfigurasjonen til en NPN og en PNP-transistorer (BJT). For NPN blir senderen grunnlinjen, og er koblet til den negative forsyningen.

Normalt når ordet 'jord' brukes i en likestrømskrets, antar vi at det er den negative tilførselsledningen.
For en transistor er jordlinjen assosiert med emitteren imidlertid med referanse til basen og kollektorspenningene, og emitterens 'jord' betyr ikke nødvendigvis den negative tilførselsledningen.

Ja, for en NPN BJT kan bakken være den negative tilførselslinjen, men for en PNP-transistor 'bakken' refereres alltid til den positive tilførselslinjen, som vist i figuren ovenfor.

Slå PÅ / AV-funksjonen til begge BJT-ene er i utgangspunktet den samme, men polariteten endres.

Siden emitteren til en BJT er 'utgang' -passasjen for strømmen som går gjennom og basen og samleren, må den 'jordes' til en forsyningsledning som skal være motsatt spenningen som brukes på base / kollektorinngangene. Ellers vil ikke kretsen fullføres.

For en NPN BJT er basen og kollektorinngangene assosiert med en positiv trigger eller koblingsspenning, derfor må emitteren henvises til den negative linjen.

Dette sikrer at de positive spenningene som kommer inn i basen og samleren er i stand til å nå den negative linjen gjennom emitteren og fullføre kretsen.

For en PNP BJT er basen og samleren assosiert med en negativ spenningsinngang, derfor må emitteren til en PNP refereres til den positive linjen, slik at den positive tilførselen kan komme inn gjennom emitteren og fullføre reisen fra basen og samlestiftene.

Merk at strømmen for NPN er fra base / samler mot emitter, mens for PNP er den fra emitter mot basen / samleren.

I begge tilfeller er målet å slå PÅ kollektorbelastningen gjennom en liten spenningsinngang ved bunnen av BJT, bare polariteten endres, det er alt.

Følgende simulering viser den grunnleggende operasjonen:

hvordan transistor leder med en ekstern spenning

I simuleringen ovenfor kommer den eksterne spenningsinngangen så snart knappen er trykket inn i BJT-basen og når bakken via senderen.

Mens dette skjer, åpnes kollektor / emitterpassasjen inne i BJT, og tillater den positive tilførselen fra toppen å komme inn i pæren, og passere gjennom emitteren til bakken, og slår PÅ (belastning) på.

Begge byttene skjer nesten samtidig som svar på trykk på trykknappen.

Emitterpinnen her blir den vanlige 'exit' pinout for begge inngangsmatene (base og samler).

Og emitterforsyningslinjen blir den vanlige grunnlinjen for inngangsforsyningsutløseren, og også belastningen.

Hvilket betyr at tilførselsledningen som forbinder med BJT-emitteren også må være strengt koblet til bakken til den eksterne utløserkilden og belastningen.

Hvorfor bruker vi en motstand i bunnen av en BJT

Basen til en BJT er designet for å fungere med lave strøminnganger, og denne pinnen kan ikke ta inn store strøminnganger, og derfor bruker vi en motstand, bare for å sikre at ingen stor strøm får komme inn i basen.

Motstandens grunnleggende funksjon er å begrense strømmen til en riktig spesifisert verdi, i henhold til lastspesifikasjonen.

Vær oppmerksom at for BJTs må denne motstanden dimensjoneres i henhold til kollektorsidens belastningsstrøm.

Hvorfor?

Fordi BJT er nåværende avhengige 'brytere'.

Betydning, grunnstrømmen må økes eller reduseres eller justeres i samsvar med laststrømspesifikasjonene på kollektorsiden.

Men koblingsspenningen som kreves ved bunnen av en BJT, kan være så lav som 0,6V eller 0,7V. Betydning, BJT kollektorbelastning kan slås PÅ med en spenning så lav som 1V over basen / emitteren til en BJT.
Her er den grunnleggende formelen for beregning av basismotstanden:

R = (Us - 0,6) Hfe / belastningsstrøm,

Hvor R = basismotstanden til transistoren,

Us = Kilde eller utløserspenningen til basemotstanden,

Hfe = Transistorstrømforsterkning (finner du fra databladet til BJT).

Selv om formelen ser pen ut, er det ikke helt nødvendig å alltid konfigurere basemotstanden så nøyaktig.

Det er rett og slett fordi BJT-basisspesifikasjonene har et bredt toleranseområde og lett tåler store forskjeller i motstandsverdiene.

For eksempel, for å koble til et stafett med en 30mA spolemotstand, kan formelen omtrent gi en motstandsverdi på 56K for en BC547 ved 12V forsyningsinngang .... men jeg foretrekker vanligvis å bruke 10K, og det fungerer feilfritt.

Men hvis du ikke følger de optimale reglene, kan det være noe som ikke er bra med resultatene, ikke sant?

Teknisk sett er det fornuftig, men igjen er tapet så lite sammenlignet med innsatsen som brukes til beregningene, at det kan overses.

For eksempel kan bruk av 10K i stedet for 56K tvinge transistoren til å arbeide med litt mer basestrøm, slik at den varmes opp litt mer, kan være et par grader høyere ... noe som ikke betyr noe i det hele tatt.

Hvordan koble BJT til Arduino

OK, la oss nå komme til det faktiske punktet.

Siden vi så langt har lært om hvordan en BJT må være partisk og konfigurert på tvers av sine 3 pinouts, kan vi raskt forstå detaljene angående grensesnittet med hvilken som helst mikrokontroller som Arduino.

Hovedformålet med å koble en BJT til en Arduino er vanligvis å slå PÅ en belastning eller en eller annen parameter på samlersiden, som svar på en programmert utgang fra en av Arduino-utgangspinnene.

Her skal utløserinngangen for BJT-basestiften komme fra Arduino. Dette innebærer at slutten på basemotstanden bare må festes med relevant utgang fra Arduino, og samleren til BJT med belastningen eller en hvilken som helst tiltenkt ekstern parameter.

Siden en BJT nesten ikke krever 0,7V til 1V for en effektiv svitsjing, blir 5V fra Arduino-utgangspinnen helt tilstrekkelig for å kjøre en BJT og kjøre rimelige belastninger.
Et eksempel på konfigurasjon kan være å se følgende bilde:

grensesnitt eller koble Arduino med en transistor relé driver

I dette bildet kan vi se hvordan en programmert Arduino brukes til å betjene en liten last i form av relé via BJT-førerstadiet. Reléspolen blir kollektorbelastning, mens signalet fra den valgte Arduino-utgangsstiften fungerer som inngangsvitsjesignalet for BJT-basen.

koble Arduino med en kraftig LED

Selv om et relé blir det beste alternativet for å betjene tunge belastninger via en transistordriver, blir mekanisk svitsjing en uønsket faktor, og oppgradering av BJT-er blir et bedre valg for drift av likestrøm med høy strøm, som vist nedenfor.

I eksemplet ovenfor kan man se et Darlington-transistornettverk, konfigurert for å håndtere den angitte høystrøm 100 watt belastning uten å avhenge av et relé. Dette muliggjør sømløs veksling av lysdioden med minimal forstyrrelse, noe som sikrer lang levetid for alle parametrene.

La oss nå gå videre, og se hvordan mosfeter kan konfigureres med en Arduino

Elektriske egenskaper til MOSFET

Formålet med å bruke en mosfet med en Arduino er vanligvis lik den for BJT som diskutert ovenfor.

Men siden normalt MOSFET er designet for å håndtere høyere strømspesifikasjoner effektivt sammenlignet med BJT, brukes disse for det meste til å bytte høye belastninger.

Før vi forstår grensesnittet mellom en mosfet og Arduino, ville det være interessant å vite det grunnleggende forskjellen mellom BJT og mygg

I vår forrige diskusjon forsto vi det BJT er nåværende avhengige enheter , fordi deres basebryterstrøm er avhengig av kollektorbelastningsstrømmen. Høyere laststrømmer vil kreve høyere basestrøm, og omvendt.

For mosfets er dette ikke sant, med andre ord mosfets gate som tilsvarer BJT-basen, krever minimal strøm for å slå PÅ, uavhengig av dreneringsstrømmen (avløpsstiften til mosfet tilsvarer samlerpinnen til BJT).

Når det er sagt, selv om strømmen ikke er den avgjørende faktoren for å bytte en mosfetport, spenningen er.

Derfor betraktes mosfeter som spenningsavhengige enheter

Minimumspenningen som kreves for å skape sunn forspenning for en mosfet er 5V eller 9V, 12v er det mest optimale området for å slå på en mosfet fullt ut.

Derfor kan vi anta at for å slå på en mygg og en belastning over avløpet, kan en 10V forsyning brukes over porten for et optimalt resultat.

Tilsvarende stifter av Mosfets og BJTs

Følgende bilde viser komplementære pinner av mosfeter og BJT.

Base tilsvarer Gate-Collector tilsvarer Drain-Emitter tilsvarer Source.

BJT mosfet pinout-erstatning i Arduino

Hvilken motstand skal brukes til en Mosfet Gate

Fra våre tidligere veiledninger forsto vi at motstanden ved bunnen av en BJT er avgjørende, uten hvilken BJT umiddelbart kan bli skadet.

For en MOSFET er dette kanskje ikke så relevant, fordi MOSFET ikke påvirkes av strømforskjeller ved portene, i stedet kan en høyere spenning betraktes som farlig. Vanligvis kan alt over 20V være dårlig for en MOSFET-port, men strømmen kan være uvesentlig.

På grunn av dette er en motstand ved porten ikke relevant siden motstander brukes til å begrense strøm, og mosfet gate er ikke avhengig av strøm.

Når det er sagt, er MOSFETs det veldig sårbar for plutselige pigger og transienter ved portene, sammenlignet med BJT.

Av denne grunn foretrekkes vanligvis en motstand med lav verdi ved portene til MOSFET, bare for å sikre at ingen plutselig spenningsspiss er i stand til å gå gjennom MOSFET-porten og rive den fra hverandre internt.

Typisk hvilken som helst motstand mellom 10 og 50 ohm kan brukes ved MOSFET-porter for å beskytte portene sine mot uventede spenningsspisser.

Grensesnitt for en MOSFET med Arduino

Som forklart i avsnittet ovenfor, vil en mosfet trenge rundt 10V til 12V for å slå PÅ riktig, men siden Arduinos jobber med 5V, kan ikke utgangen konfigureres direkte med en mosfet.

Siden en Arduino kjører med 5V forsyning, og alle utgangene er designet for å produsere 5V som det logiske høyforsyningssignalet. Selv om denne 5V kan ha muligheten til å slå PÅ en MOSFET, kan det føre til en ineffektiv bytte av enhetene og varme opp problemer.

For effektiv MOSFET-svitsjing og for å transformere 5V-utgangen fra Arduino til et 12V-signal, kan et mellomliggende buffertrinn konfigureres som vist i følgende bilde:

hvordan du kobler mosfet til Arduino

I figuren kan MOSFET sees konfigurert med et par BJT-buffertrinn som gjør at MOSFET kan bruke 12V fra strømforsyningen og slå PÅ seg selv og belastningen effektivt.

To BJT-er brukes her siden en enkelt BJT vil føre til at MOSFET oppfører seg motsatt som svar på alle positive Arduino-signaler.

Anta at en BJT brukes, så mens BJT er PÅ med et positivt Arduino-signal, vil mosfet bli slått av, siden porten vil bli jordet av BJT-samleren, og lasten vil bli slått PÅ mens Arduino er AV.

I utgangspunktet ville en BJT invertere Arduino-signalet for mosfetporten, noe som resulterte i en motsatt bytterespons.

For å rette opp denne situasjonen brukes to BJT-er, slik at den andre BJT inverterer svaret tilbake og lar mosfet slå PÅ for alle positive signaler bare fra Arduino.

Siste tanker

Nå skulle du ha forstått den riktige metoden for å koble BJT og mosfet til en mikrokontroller eller en Arduino.

Du har kanskje lagt merke til at vi for det meste har brukt NPN BJTs og N-channel mosfets for integrasjonene, og har unngått å bruke PNP- og P-channel-enhetene. Dette er fordi NPN-versjoner fungerer som en bryter og er enkle å forstå mens du konfigurerer.

Det er som å kjøre bil normalt fremover, i stedet for å se bakover og kjøre den i revers. På begge måter ville bilen fungere og bevege seg, men å kjøre i revers er mye ineffektiv og gir ikke mening. Den samme analogien gjelder her, og bruk av NPN- eller N-kanal-enheter blir en bedre preferanse sammenlignet med PNP- eller P-kanalmosfeter.

Hvis du er i tvil, eller hvis du tror jeg har gått glipp av noe her, kan du bruke kommentarfeltet nedenfor for videre diskusjon.




Forrige: 2 enkle toveis motorstyringskretser utforsket Neste: Motorsykkel-knapp Start låsekrets