Cum se conectează tranzistoarele (BJT) și MOSFET cu Arduino

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





Interfața dispozitivelor de alimentare precum BJT-urile și MOSFET-urile cu ieșire Arduino este o configurație crucială care permite comutarea încărcărilor mari de putere prin ieșirile reduse de putere ale unui Arduino.

În acest articol discutăm în detaliu metodele corecte de utilizare sau conectare a tranzistoarelor precum BJT și mosfete cu orice microcontroler sau un Arduino.



Astfel de etape sunt, de asemenea, denumite „Level Shifter” deoarece această etapă modifică nivelul de tensiune de la un punct inferior la un punct mai înalt pentru parametrul de ieșire relevant. De exemplu, aici schimbarea nivelului este implementată de la ieșirea Arduino 5V la ieșirea MOSFET 12V pentru sarcina selectată de 12V.

Indiferent cât de bine programat sau codat ar putea fi Arduino, dacă nu este corect integrat cu un tranzistor sau un hardware extern, ar putea rezulta o funcționare ineficientă a sistemului sau chiar deteriorarea componentelor implicate în sistem.



Prin urmare, devine extrem de important să înțelegeți și să învățați metodele corecte de utilizare a componentelor active externe, cum ar fi mosfetele și BJT-urile, cu un microcontroler, astfel încât rezultatul final să fie eficient, neted și eficient.

Înainte de a discuta metodele de interfață a tranzistoarelor cu Arduino, ar fi util să învățăm caracteristicile de bază și funcționarea BJT-urilor și a mosfetelor.

Caracteristicile electrice ale tranzistoarelor (bipolare)

BJT înseamnă tranzistor de joncțiune bipolar.

Funcția de bază a unui BJT este de a porni o sarcină atașată ca răspuns la un declanșator de tensiune externă. Se presupune că sarcina este mai mare în curent comparativ cu declanșatorul de intrare.

Astfel, funcția de bază a unui BJT este de a porni o sarcină de curent mai mare ca răspuns la un declanșator de intrare de curent mai mic.

Din punct de vedere tehnic, acest lucru este, de asemenea, numit polarizarea tranzistorului , ceea ce înseamnă utilizarea curentului și a tensiunii pentru a opera un tranzistor pentru o funcție intenționată, iar această polarizare trebuie făcută în cel mai optim mod.

BJT-urile au 3 conductoare sau 3 pini și anume bază, emițător, colector.

Pinul de bază este utilizat pentru alimentarea declanșatorului de intrare extern, sub formă de tensiune și curent mici.

Știftul emițătorului este întotdeauna conectat la sol sau la linia de alimentare negativă.

Știftul colector este conectat la sarcină prin sursa pozitivă.

BJT-urile pot fi găsite cu două tipuri de polarități, NPN și PNP. Configurația pinului de bază este aceeași atât pentru NPN cât și pentru PNP, așa cum s-a explicat mai sus, cu excepția polarității alimentării DC care devine exact opusul.

pinouts ale unui BJT ar putea fi înțeles prin următoarea imagine:

În imaginea de mai sus putem vedea configurația pinout de bază a unui tranzistor NPN și PNP (BJT). Pentru NPN emițătorul devine linia de masă și este conectat la sursa negativă.

În mod normal, atunci când cuvântul „masă” este utilizat într-un circuit de curent continuu, presupunem că este linia de alimentare negativă.
Cu toate acestea, pentru un tranzistor, linia de masă asociată cu emițătorul se referă la baza sa și la tensiunile colectorului, iar „masa” emițătorului nu înseamnă neapărat linia de alimentare negativă.

Da, pentru un NPN BJT solul ar putea fi linia de alimentare negativă, dar pentru un Tranzistor PNP „solul” este întotdeauna referit la linia de alimentare pozitivă, așa cum se arată în figura de mai sus.

Funcția de pornire / oprire a ambelor BJT este practic aceeași, dar polaritatea se schimbă.

Deoarece emițătorul unui BJT este pasajul de „ieșire” pentru curentul care intră prin bază și colector, acesta trebuie să fie „împământat” la o linie de alimentare care ar trebui să fie opusă tensiunii utilizate la intrările de bază / colector. În caz contrar, circuitul nu se va finaliza.

Pentru un NPN BJT, baza și intrările colectorului sunt asociate cu un declanșator pozitiv sau o tensiune de comutare, prin urmare emițătorul trebuie să fie menționat la linia negativă.

Acest lucru asigură că tensiunile pozitive care intră în bază și colector sunt capabile să ajungă la linia negativă prin emițător și să completeze circuitul.

Pentru un PNP BJT, baza și colectorul sunt asociate cu o intrare de tensiune negativă, prin urmare, în mod firesc, emițătorul unui PNP trebuie să fie referit la linia pozitivă, astfel încât alimentarea pozitivă să poată intra prin emițător și să-și termine călătoria de la bază și pinii colectorului.

Rețineți că fluxul de curent pentru NPN este de la bază / colector spre emițător, în timp ce pentru PNP, este de la emițător către bază / colector.

În ambele cazuri, obiectivul este să porniți sarcina colectorului printr-o mică intrare de tensiune la baza BJT, doar polaritatea se schimbă.

Următoarea simulare arată operațiunea de bază:

cum se comportă tranzistorul cu o tensiune externă

În simularea de mai sus, de îndată ce butonul este apăsat, intrarea de tensiune externă intră în baza BJT și ajunge la linia de masă prin emițător.

În timp ce se întâmplă acest lucru, pasajul colector / emițător din interiorul BJT se deschide și permite alimentarea pozitivă de sus să pătrundă în bec și să treacă prin emițător la sol, pornind becul (încărcare).

Ambele comutări au loc aproape simultan ca răspuns la apăsarea butonului.

Pinul emițătorului devine aici pinout-ul „ieșire” comun pentru ambele fluxuri de intrare (bază și colector).

Și linia de alimentare a emițătorului devine linia de masă comună pentru declanșatorul de alimentare de intrare, precum și sarcina.

Ceea ce înseamnă că, linia de alimentare care se conectează cu emițătorul BJT trebuie, de asemenea, să fie conectată strict la pământul sursei de declanșare externe și la sarcină.

De ce folosim un rezistor la baza unui BJT

Baza unui BJT este concepută pentru a funcționa cu intrări de putere redusă, iar acest pin nu poate lua intrări de curent mari și, prin urmare, folosim un rezistor, doar pentru a ne asigura că nu este permis să intre curent mare în bază.

Funcția de bază a rezistorului este de a limita curentul la o valoare specificată corectă, conform specificațiilor de încărcare.

Vă rugăm să rețineți că, pentru BJT-uri, acest rezistor trebuie dimensionat conform curentului de încărcare al colectorului.

De ce?

Deoarece BJT-urile sunt „comutatoare” dependente de curent.

Adică, curentul de bază trebuie mărit sau micșorat sau ajustat în conformitate cu specificațiile curentului de încărcare de pe partea colectorului.

Dar tensiunea de comutare necesară la baza unui BJT poate fi de până la 0,6V sau 0,7V. Adică, sarcina colectorului BJT ar putea fi pornită cu o tensiune de până la 1V pe baza / emițătorul unui BJT.
Iată formula de bază pentru calcularea rezistenței de bază:

R = (Us - 0,6) Hfe / Curent de încărcare,

Unde R = rezistorul de bază al tranzistorului,

Us = Sursa sau tensiunea de declanșare la rezistorul de bază,

Hfe = Câștigul de curent înainte al tranzistorului (poate fi găsit din fișa tehnică a BJT).

Deși formula pare îngrijită, nu este absolut necesar să configurați întotdeauna rezistența de bază atât de precis.

Este pur și simplu pentru că, specificațiile de bază BJT au o gamă largă de toleranță și pot tolera cu ușurință diferențe mari în valorile rezistenței.

De exemplu, pentru a conecta un releu având o rezistență a bobinei de 30mA, formula poate furniza aproximativ o valoare a rezistenței de 56K pentru un BC547 la intrarea de alimentare de 12V .... dar în mod normal prefer să folosesc 10K și funcționează impecabil.

Cu toate acestea, dacă nu respectați regulile optime, ar putea exista ceva care nu este bun cu rezultatele, nu?

Din punct de vedere tehnic, acest lucru are sens, dar din nou pierderea este atât de mică în comparație cu efortul depus pentru calcule, încât poate fi neglijată.

De exemplu, folosirea a 10K în loc de 56K poate forța tranzistorul să funcționeze cu un curent de bază puțin mai mare, determinându-l să se încălzească puțin mai mult, poate fi cu câteva grade mai mare ... ceea ce nu contează deloc.

Cum să conectați BJT cu Arduino

OK, acum să ajungem la punctul real.

Deoarece până acum am aflat în mod cuprinzător despre modul în care un BJT trebuie să fie părtinitor și configurat pe cele 3 pinouts ale sale, putem înțelege rapid detaliile referitoare la interfața sa cu orice microcontroler precum Arduino.

Scopul principal al conectării unui BJT cu un Arduino este de obicei pornirea unei sarcini sau a unui parametru de pe partea colectorului, ca răspuns la o ieșire programată de la unul dintre pinii de ieșire Arduino.

Aici, intrarea de declanșare pentru pinul de bază BJT ar trebui să provină de la Arduino. Acest lucru implică finalul rezistorului de bază, pur și simplu, trebuie atașat la ieșirea relevantă de la Arduino și colectorul BJT cu sarcina sau orice parametru extern intenționat.

Deoarece un BJT necesită cu greu 0,7V până la 1V pentru o comutare eficientă, 5V de la pinul de ieșire Arduino devin perfect adecvate pentru a conduce un BJT și pentru a opera sarcini rezonabile.
Un exemplu de configurație poate fi vedea următoarea imagine:

interfațarea sau conectarea Arduino cu un driver de releu tranzistor

În această imagine putem vedea cum este utilizat un Arduino programat pentru a opera o sarcină mică sub formă de releu prin etapa driverului BJT. Bobina releului devine sarcina colectorului, în timp ce semnalul de la pinul de ieșire Arduino selectat acționează ca semnalul de comutare de intrare pentru baza BJT.

conectarea Arduino cu un LED de mare putere

Deși, un releu devine cea mai bună opțiune pentru operarea sarcinilor grele printr-un driver de tranzistor, atunci când comutarea mecanică devine un factor nedorit, actualizarea BJT-urilor devine o alegere mai bună pentru operarea sarcinilor de curent continuu de curent mare, așa cum se arată mai jos.

În exemplul de mai sus poate fi văzută o rețea de tranzistori Darlington, configurată pentru a gestiona sarcina indicată de 100 de wați, fără a depinde de un releu. Acest lucru permite comutarea fără probleme a LED-ului cu perturbări minime, asigurând o durată de viață lungă pentru toți parametrii.

Acum, să continuăm mai departe și să vedem cum pot fi configurate mosfet-urile cu un Arduino

Caracteristicile electrice ale MOSFET

Scopul utilizării unui mosfet cu un Arduino este de obicei similar cu cel al BJT așa cum s-a discutat mai sus.

Cu toate acestea, din moment ce în mod normal MOSFET-urile sunt proiectate pentru a gestiona în mod eficient specificațiile de curent mai ridicate în comparație cu BJT-urile, acestea sunt utilizate în principal pentru comutarea încărcărilor de putere mare.

Înainte de a înțelege interfața unui mosfet cu Arduino, ar fi interesant să cunoaștem elementele de bază diferența dintre BJT și mosfets

În discuția noastră anterioară, am înțeles asta BJT-urile sunt dispozitive dependente de curent , deoarece curentul lor de comutare de bază depinde de curentul de sarcină al colectorului. Curenții de încărcare mai mari vor necesita un curent de bază mai mare și invers.

Pentru mosfete acest lucru nu este adevărat, cu alte cuvinte poarta mosfets care este echivalentă cu baza BJT, necesită curent minim pentru a porni ON, indiferent de curentul de scurgere (știftul de scurgere al mosfetului este echivalent cu știftul colector al BJT).

Acestea fiind spuse, deși curentul nu este factorul decisiv pentru comutarea unei porți Mosfet, tensiunea este.

Prin urmare, mosfeturile sunt considerate dispozitive dependente de tensiune

Tensiunea minimă necesară pentru crearea unei polarizări sănătoase pentru un mosfet este de 5V sau 9V, 12v fiind cea mai optimă gamă pentru pornirea completă a unui mosfet.

Prin urmare, putem presupune că, pentru a porni un mosfet și o sarcină pe canalul său, o sursă de 10V poate fi utilizată pe poarta sa pentru un rezultat optim.

Pinii echivalenți ai Mosfets și BJT

Următoarea imagine prezintă pinii complementari ai mosfetelor și BJT-urilor.

Baza corespunde Gate-Collector corespunde Drain-Emitter corespunde sursei.

BJT înlocuire cu pinfet mosfet în Arduino

Ce rezistor ar trebui folosit pentru o poartă Mosfet

Din tutorialele noastre anterioare am înțeles că rezistența de la baza unui BJT este crucială, fără de care BJT se poate deteriora instantaneu.

Pentru un MOSFET, acest lucru poate să nu fie atât de relevant, deoarece MOSFET-urile nu sunt afectate de diferențe de curent la porțile lor, în schimb o tensiune mai mare ar putea fi considerată periculoasă. De obicei, orice peste 20V poate fi rău pentru o poartă MOSFET, dar curentul poate fi imaterial.

Datorită acestui fapt, un rezistor la poartă nu este relevant deoarece rezistențele sunt utilizate pentru limitarea curentului, iar poarta MOSFET nu depinde de curent.

Acestea fiind spuse, MOSFET-urile sunt extrem de vulnerabil la vârfuri bruște și tranzitorii la porțile lor, comparativ cu BJT-urile.

Din acest motiv, un rezistor de valoare scăzută este, în general, preferat la porțile MOSFET-urilor, doar pentru a se asigura că nici un vârf de tensiune bruscă nu este capabil să treacă prin poarta MOSFET și să-l rupă intern.

De obicei orice rezistor între 10 și 50 ohmi ar putea fi utilizate la porțile MOSFET pentru protejarea porților lor de vârfuri de tensiune neașteptate.

Interfațarea unui MOSFET cu Arduino

Așa cum s-a explicat în paragraful de mai sus, un mosfet va avea nevoie de aproximativ 10V până la 12V pentru a porni corect, dar din moment ce Arduinos funcționează cu 5V, ieșirea sa nu poate fi configurată direct cu un mosfet.

Deoarece un Arduino funcționează cu o sursă de 5V, iar toate ieșirile sale sunt proiectate să producă 5V ca semnal logic de alimentare ridicată. Deși acest 5V poate avea capacitatea de a porni un MOSFET, poate avea ca rezultat o comutare ineficientă a dispozitivelor și probleme de încălzire.

Pentru o comutare MOSFET eficientă și pentru a transforma ieșirea de 5V de la Arduino într-un semnal de 12V, ar putea fi configurată o etapă intermediară de tampon așa cum se arată în următoarea imagine:

cum se conectează mosfet cu Arduino

În figură, MOSFET poate fi văzut configurat cu câteva etape tampon BJT, care permite MOSFET să utilizeze 12V de la sursa de alimentare și să pornească în sine și încărcarea eficient.

Aici sunt utilizate două BJT, deoarece un singur BJT ar determina MOSFET să conducă în mod opus ca răspuns la fiecare semnal Arduino pozitiv.

Să presupunem că se folosește un BJT, atunci când BJT este PORNIT cu un semnal Arduino pozitiv, MOSFET-ul ar fi oprit, deoarece poarta sa ar fi împământată de colectorul BJT și sarcina ar fi pornită în timp ce Arduino este OPRIT.

Practic, un BJT ar inversa semnalul Arduino pentru poarta mosfet, rezultând un răspuns de comutare opus.

Pentru a corecta această situație, se utilizează două BJT-uri, astfel încât al doilea BJT inversează răspunsul înapoi și permite MOSFET-ului să pornească pentru fiecare semnal pozitiv doar de la Arduino.

Gânduri finale

Până acum ar fi trebuit să înțelegeți în mod cuprinzător metoda corectă de conectare a BJT-urilor și mosfetelor cu un microcontroler sau un Arduino.

S-ar putea să fi observat că am folosit în principal BJT-urile NPN și mosfetele cu canal N pentru integrări și am evitat utilizarea dispozitivelor PNP și P-channel. Acest lucru se datorează faptului că versiunile NPN funcționează ideal ca un comutator și sunt ușor de înțeles în timpul configurării.

Este ca și cum ai conduce o mașină în mod normal în direcția înainte, decât să te uiți în spate și să o conduci în marșarier. În ambele sensuri, mașina ar funcționa și se va deplasa, dar conducerea în marșarier este mult ineficientă și nu are sens. Aceeași analogie se aplică aici și utilizarea dispozitivelor NPN sau N-channel devine o preferință mai bună în comparație cu mosfetele PNP sau P-channel.

Dacă aveți îndoieli sau credeți că am pierdut ceva aici, vă rugăm să folosiți căsuța de comentarii de mai jos pentru discuții suplimentare.




Precedent: 2 circuite simple de controler de motor bidirecțional explorate Următorul: Circuitul de blocare a pornirii butonului motocicletei