- Bazele Op-Amp
- Amplificator de câștig programabil de lucru
- Componente necesare
- Diagramă schematică
- Cod Arduino pentru PGA
- Calcule pentru amplificatorul de câștig programabil
- Testarea circuitului amplificatorului de câștig programabil
- Avantaje și dezavantaje ale amplificatorului de câștig programabil
- Îmbunătățire suplimentară
În industria de măsurare, un bloc funcțional foarte crucial este un amplificator de câștig programabil (PGA). Dacă sunteți un pasionat de electronice sau un student, probabil că ați văzut un multimetru sau un osciloscop care măsoară tensiuni foarte mici foarte prețios, deoarece circuitul are un PGA încorporat alături de un ADC puternic care vă ajută la procesul de măsurare precis.
În zilele noastre, amplificatorul PGA de pe raft oferă un amplificator op-amplificator, care nu este inversor, cu un factor de câștig programabil de utilizator. Acest tip de dispozitiv are o impedanță de intrare foarte mare, o lățime de bandă mare și o referință selectabilă a tensiunii de intrare încorporată în CI. Dar toate aceste caracteristici au un cost și, pentru mine, nu merită să pun costul unui chip pentru o aplicație generică.
Deci, pentru a depăși aceste situații, am venit cu un aranjament format dintr-un Op-amp, MOSFET și Arduino, prin intermediul căruia am reușit să schimb câștigul amplificatorului op. Deci, în acest tutorial, vă voi arăta cum să vă construiți propriul amplificator de câștig programabil cu un op-amp LM358 și MOSFETS și voi discuta câteva argumente pro și contra circuitului alături de testare.
Bazele Op-Amp
Pentru a înțelege funcționarea acestui circuit, este foarte important să știți cum funcționează un amplificator operațional. Aflați mai multe despre op-amp urmând acest circuit de testare a op-amp.
În figura de mai sus, puteți vedea un amplificator operațional. Sarcina de bază a unui amplificator este de a amplifica un semnal de intrare, alături de amplificare, amplificatorul operațional poate face, de asemenea, diverse operații, cum ar fi suma, diferențierea, integrarea etc. Aflați mai multe despre amplificatorul sumator și amplificatorul diferențial aici.
Op-amp are doar trei terminale. Terminalul cu semnul (+) se numește intrare fără inversare, iar terminalul cu semnul (-) se numește intrare inversantă. Pe lângă aceste două terminale, al treilea terminal este terminalul de ieșire.
Un amplificator operațional respectă doar două reguli
- Nu intră sau iese curent din intrările op-amp.
- Amplificatorul operativ încearcă să mențină intrările la aceleași niveluri de tensiune.
Deci, cu aceste două reguli clarificate, putem analiza circuitele de mai jos. De asemenea, aflați mai multe despre amplificatorul opțional parcurgând diferite circuite bazate pe amplificatorul op.
Amplificator de câștig programabil de lucru
Figura de mai sus vă oferă o idee de bază despre dispunerea circuitului amplificatorului meu PGA brut. În acest circuit, amplificatorul opțional este configurat ca un amplificator fără inversare și, după cum știm cu un sistem de circuite fără inversare, putem schimba câștigul amplificatorului operațional prin schimbarea rezistorului de feedback sau a rezistenței de intrare după cum puteți vedea din dispunerea circuitului de mai sus, trebuie doar să schimb MOSFET-urile pe rând pentru a schimba câștigul amplificatorului op.
În secțiunea de testare, am făcut doar că am schimbat MOSFET-urile pe rând și am comparat valorile măsurate cu valorile practice și puteți observa rezultatele în secțiunea „testarea circuitului” de mai jos.
Componente necesare
- Arduino Nano - 1
- LM358 IC - 1
- Regulator LM7805 - 1
- BC548 Tranzistor NPN generic - 2
- BS170 MOSFET generic cu canal N - 2
- Rezistor 200K - 1
- Rezistor 50K - 2
- Rezistor 24K - 2
- Rezistor 6.8K - 1
- Rezistor 1K - 4
- Rezistor 4.7K - 1
- 220R, 1% rezistor - 1
- Comutator tactil generic - 1
- LED chihlimbar 3mm - 2
- Breadboard Generic - 1
- Jumper Wires Generic - 10
- Alimentare ± 12V - 1
Diagramă schematică
Pentru o demonstrație a amplificatorului de câștig programabil, circuitul este construit pe o placă fără sudură cu ajutorul schemei; Pentru a reduce inductanța parazitară internă și capacitatea plăcii, toate componentele au fost așezate cât mai aproape posibil.
Și dacă vă întrebați de ce există un grup de fire în panoul meu? permiteți-mi să vă spun că trebuie să faceți o conexiune bună la masă, deoarece conexiunile interne la masă într-o placă de calcul sunt foarte slabe.
Aici amplificatorul op din circuit este configurat ca un amplificator fără inversare, iar tensiunea de intrare de la regulatorul de tensiune 7805 este de 4,99 V.
Valoarea măsurată pentru rezistorul R6 este 6,75 K și R7 este 220,8 R, aceste două rezistențe formează un divizor de tensiune care este utilizat pentru a genera tensiunea de testare de intrare pentru amplificatorul op. Rezistențe R8 și R9 sunt utilizate pentru a limita curentul de bază de intrare a tranzistorului T3 și T4. De rezistențe R10 și R11 sunt utilizate pentru a limita viteza de comutare a MOSFETs T1 & T2, în caz contrar, aceasta poate provoca oscilații în circuit.
În acest blog, vreau să vă arăt motivul utilizării unui MOSFET mai degrabă decât a unui BJT, de unde aranjamentul circuitului.
Cod Arduino pentru PGA
Aici Arduino Nano este utilizat pentru a controla baza tranzistorului și poarta MOSFET-urilor, iar un multimetru este utilizat pentru a arăta nivelurile de tensiune, deoarece ADC-ul încorporat al Arduino face o treabă foarte slabă, atunci când vine vorba de măsurarea scăzută nivelurile de tensiune.
Codul Arduino complet pentru acest proiect este dat mai jos. Deoarece acesta este un cod Arduino foarte simplu, nu trebuie să includem nicio bibliotecă. Dar trebuie să definim câteva constante și pini de intrare așa cum se arată în cod.
Setarea nulă () este principalul bloc funcțional în care operația de citire și scriere pentru toate intrările și ieșirile este efectuată conform cerințelor.
#define BS170_WITH_50K_PIN 9 #define BS170_WITH_24K_PIN 8 #define BC548_WITH_24K_PIN 7 #define BC548_WITH_50K_PIN 6 #define BUTON_PIN 5 #define LED_PIN1 2 #define LED_PIN2 3 # DEFINAȚI int debounce_counter = 0; setare nulă () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_24K_PIN, OUTPUT); pinMode (BC548_WITH_50K_PIN, OUTPUT); pinMode (LED_PIN1, OUTPUT); pinMode (LED_PIN2, OUTPUT); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // citiți valoarea de intrare if (val == LOW) {debounce_counter ++; if (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } if (button_is_pressed == 0) {digitalWrite (BS170_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_24K_PIN, LOW);digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, LOW); } if (button_is_pressed == 2) {digitalWrite (BS170_WITH_24K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, LOW); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 3) {digitalWrite (BC548_WITH_24K_PIN, HIGH); digitalWrite (BC548_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (LED_PIN1, HIGH); digitalWrite (LED_PIN2, HIGH); } if (button_is_pressed == 1) {digitalWrite (BC548_WITH_50K_PIN, HIGH); digitalWrite (BS170_WITH_50K_PIN, LOW); digitalWrite (BS170_WITH_24K_PIN, LOW); digitalWrite (BC548_WITH_24K_PIN, LOW); digitalWrite (LED_PIN1, HIGH);digitalWrite (LED_PIN2, LOW); } if (button_is_pressed> = 4) {button_is_pressed = 0; }}}
Calcule pentru amplificatorul de câștig programabil
Valorile măsurate pentru circuitul amplificatorului PGA sunt prezentate mai jos.
Vin = 4.99V R7 = 220.8 Ω R6 = 6.82 KΩ R5 = 199.5K R4 = 50.45K R3 = 23.99K R2 = 23.98K R1 = 50.5K
Notă! Valorile măsurate ale rezistenței sunt afișate, deoarece cu valorile rezistenței măsurate putem compara îndeaproape valorile teoretice și valorile practice.
Acum calculul de la calculatorul divizorului de tensiune este prezentat mai jos,
Ieșirea divizorului de tensiune este de 0,1564V
Calculul câștigului amplificatorului fără inversare pentru cele 4 rezistențe
Vout când R1 este rezistorul selectat
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,777425V
Vout când R2 este rezistorul selectat
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout când R3 este rezistorul selectat
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout când R4 este rezistorul selectat
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Am făcut toate acestea pentru a compara valorile teoretice și practice cât mai aproape posibil.
Cu toate calculele făcute, putem trece la secțiunea de testare.
Testarea circuitului amplificatorului de câștig programabil
Imaginea de mai sus vă arată tensiunea de ieșire atunci când MOSFET T1 este pornit, prin urmare curentul curge prin rezistorul R1.
Imaginea de mai sus vă arată tensiunea de ieșire când tranzistorul T4 este pornit, prin urmare curentul curge prin rezistorul R4.
Imaginea de mai sus vă arată tensiunea de ieșire când MOSFET T2 este pornit, prin urmare curentul curge prin rezistorul R2.
Imaginea de mai sus vă arată tensiunea de ieșire când tranzistorul T3 este pornit, prin urmare curentul curge prin rezistorul R3.
După cum puteți vedea din schemă , T1, T2 sunt MOSFET-uri, iar T3, T4 sunt tranzistoare. Deci, atunci când sunt utilizate MOSFET-uri, eroarea este în intervalul 1-5 mV, dar când tranzistoarele sunt utilizate ca întrerupătoare, primim o eroare în intervalul 10-50 mV.
Cu rezultatele de mai sus, este clar că MOSFET este soluția pentru acest tip de aplicație, iar erorile teoretice și practice pot fi cauzate de eroarea de compensare a amplificatorului op.
Notă! Vă rugăm să rețineți că am adăugat două LED-uri doar de dragul testării și nu le puteți găsi în schema actuală, arată codul binar pentru a arăta care pin este activ
Avantaje și dezavantaje ale amplificatorului de câștig programabil
Deoarece acest circuit este ieftin, ușor și simplu, acesta poate fi implementat în multe aplicații diferite.
Aici MOSFET este folosit ca un comutator pentru a trece tot curentul prin rezistor la sol, motiv pentru care efectul temperaturii nu este sigur și , cu instrumentele și echipamentele mele de testare limitate, nu am putut să vă arăt efectele temperaturii variate asupra circuitul.
Obiectivul utilizării unui BJT alături de MOSFET este pentru că vreau să vă arăt cât de slab poate fi un BJT pentru acest tip de aplicație.
Valorile rezistențelor de feedback și ale rezistențelor de intrare trebuie să fie în domeniul KΩ, asta pentru că, cu valori mai mici ale rezistorului, va curge mai mult curent prin MOSFET, astfel va cădea mai multă tensiune peste MOSFET, provocând rezultate imprevizibile.
Îmbunătățire suplimentară
Circuitul poate fi modificat în continuare pentru a-și îmbunătăți performanțele, așa cum putem adăuga filtrul pentru a respinge zgomotele de înaltă frecvență.
Deoarece în acest test se folosește amplificatorul opțional LM358 jelly bean, erorile de compensare ale amplificatorului operativ joacă un rol major la tensiunea de ieșire. Deci, poate fi îmbunătățit și mai mult prin utilizarea unui amplificator instrumental, mai degrabă decât a unui LM358.
Acest circuit este realizat doar în scop demonstrativ. Dacă vă gândiți să utilizați acest circuit într-o aplicație practică, trebuie să utilizați un op-amp de tip chopper și un rezistor de înaltă precizie de 0,1 ohmi pentru a obține stabilitate absolută.
Sper că ți-a plăcut acest articol și ai învățat ceva nou din el. Dacă aveți vreo îndoială, puteți întreba în comentariile de mai jos sau puteți folosi forumurile noastre pentru discuții detaliate.