- Osnove op-amp
- Programabilni ojačevalnik ojačevalca deluje
- Potrebne komponente
- Shematski diagram
- Koda Arduino za PGA
- Izračuni za programirljivi ojačevalnik
- Testiranje programabilnega ojačevalnega vezja
- Prednosti in slabosti programabilnega ojačevalnika
- Nadaljnje izboljšanje
V merilni industriji je zelo pomemben funkcionalni blok programabilni ojačevalnik (PGA). Če ste navdušenec nad elektroniko ali študent, ste verjetno zelo dragoceno videli multimeter ali osciloskop, ki zelo dragoceno meri zelo majhne napetosti, ker ima vezje vgrajen PGA skupaj z zmogljivim ADC, ki pomaga pri natančnem merilnem postopku.
Danes PGA ojačevalnik ponuja na polici opcijski ojačevalnik, ki se ne obrača z uporabniško nastavljivim faktorjem ojačanja. Ta vrsta naprave ima zelo visoko vhodno impedanco, široko pasovno širino in izbirno referenco vhodne napetosti, vgrajeno v IC. Toda vse te funkcije imajo svojo ceno in zame se ne splača postavljati tako dragega čipa za splošno uporabo.
Torej, da bi premagal te situacije, sem pripravil ureditev, ki jo sestavljajo Op-amp, MOSFET in Arduino, s pomočjo katerih sem lahko programsko spremenil dobiček op-amp-a. Torej, v tej vadnici vam bom pokazal, kako z lastnim ojačevalnikom LM358 in MOSFETS zgraditi lasten programirljivi ojačevalnik, poleg tega pa bom razpravljal tudi o nekaterih prednostih in slabostih vezja.
Osnove op-amp
Da bi razumeli delovanje tega vezja, je zelo pomembno vedeti, kako deluje operacijski ojačevalnik. Če želite izvedeti več o op-amp, sledite temu vezju testerja op-amp.
Na zgornji sliki lahko vidite operacijski ojačevalnik. Osnovna naloga ojačevalnika je ojačanje vhodnega signala, poleg ojačevalnika pa lahko tudi ojačevalnik izvaja različne operacije, kot so seštevanje, diferenciranje, integriranje itd. Več o seštevalnem ojačevalniku in diferenčnem ojačevalniku preberite tukaj.
Op-amp ima samo tri terminale. Terminal z znakom (+) imenujemo neinvertirni vhod, terminal z znakom (-) pa invertirni vhod. Poleg teh dveh terminalov je tretji terminal izhodni terminal.
Op-amp sledi le dvema praviloma
- Tok ne teče v ali iz vhodov op-amp.
- Op-amp poskuša ohraniti vhode na enaki napetostni ravni.
Torej, s temi dvema razčiščenima praviloma lahko analiziramo spodnja vezja. Izvedite tudi več o Op-amp-ju, tako da greste skozi različna vezja na osnovi Op-amp-a.
Programabilni ojačevalnik ojačevalca deluje
Zgornja slika vam daje osnovno predstavo o razporeditvi vezij mojega surovega ojačevalnika PGA. V tem vezju je op-amp konfiguriran kot neinvertirajoči ojačevalnik in kot vsi vemo pri neinvertirni ureditvi vezja, lahko spremenimo ojačanje op-amp-a s spreminjanjem povratnega upora ali vhodnega upora, kot lahko vidite iz zgornje ureditve vezja, moram samo spremeniti MOSFET-ove po enega, da spremenim ojačanje op-amp-a.
V preskusnem odseku sem naredil ravno to, da sem eno za drugo preklapljal MOSFET-ove in primerjal izmerjene vrednosti s praktičnimi vrednostmi, rezultate pa lahko opazite v spodnjem odseku "testiranje vezja".
Potrebne komponente
- Arduino Nano - 1
- LM358 IC - 1
- Regulator LM7805 - 1
- BC548 Generic NPN tranzistor - 2
- BS170 Generic N-channel MOSFET - 2
- 200K upor - 1
- 50K upor - 2
- 24K upor - 2
- 6.8K upor - 1
- 1K upor - 4
- 4.7K upor - 1
- 220R, 1% upor - 1
- Taktilno stikalo Generic - 1
- Oranžna LED 3mm - 2
- Splošna plošča za kruh - 1
- Žice za mostičke - 10
- Napajanje ± 12V - 1
Shematski diagram
Za predstavitev programabilnega ojačevalnika ojačevalnika je vezje s pomočjo sheme zgrajeno na brez spajke; Da bi zmanjšali notranjo parazitsko induktivnost in kapacitivnost plošče, so bile vse komponente nameščene čim bližje.
In če se sprašujete, zakaj je v moji plošči grozd žic? naj vam povem, da je treba dobro povezati ozemljitev, saj so notranje povezave ozemljitve v plošči zelo slabe.
Tu je op-amp v vezju konfiguriran kot neinvertirajoči ojačevalnik, vhodna napetost regulatorja napetosti 7805 pa je 4,99 V.
Izmerjena vrednost za upor R6 je 6,75K in R7 je 220,8R. Ta dva upora tvorita napetostni delilnik, ki se uporablja za generiranje vhodne preizkusne napetosti za op-amp. Upori R8 in R9, da bi omejili vhodne osnovni tok tranzistorja T3 in T4. V upori R10 in R11 se uporabljajo za omejevanje hitrosti priklopitev MOSFET T1 in T2, sicer pa lahko povzroči nihanje v tokokrogu.
V tem blogu vam želim pokazati razlog za uporabo MOSFET-a namesto BJT-ja, torej ureditev vezja.
Koda Arduino za PGA
Tu se Arduino Nano uporablja za nadzor dna tranzistorja in vrat MOSFET-ov, multimeter pa za prikaz ravni napetosti, ker vgrajeni ADC Arduina zelo slabo opravlja delo, ko gre za merjenje nizke ravni napetosti.
Popolna koda Arduino za ta projekt je navedena spodaj. Ker gre za zelo preprosto kodo Arduino, nam ni treba vključiti nobene knjižnice. Vendar moramo določiti nekatere konstante in vhodne nožice, kot je prikazano v kodi.
Nastavitev praznine () je glavni funkcionalni blok, kjer se postopek branja in pisanja za vse vhode in izhode izvaja v skladu z zahtevo.
#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 BUTTON_PIN 5 #define LED_PIN1 2 #define LED_PIN2 3 #define PRESSED_CONFIDENCE_LEVEL 5000 int button_is_pressed = 0; int debounce_counter = 0; void setup () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, IZHOD); pinMode (BC548_WITH_24K_PIN, IZHOD); pinMode (BC548_WITH_50K_PIN, IZHOD); pinMode (LED_PIN1, IZHOD); pinMode (LED_PIN2, IZHOD); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // preberemo vhodno vrednost if (val == LOW) {debounce_counter ++; če (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; }}}
Izračuni za programirljivi ojačevalnik
Izmerjene vrednosti za ojačevalno vezje PGA so prikazane spodaj.
Vin = 4,99 V R7 = 220,8 Ω R6 = 6,82 KΩ R5 = 199,5K R4 = 50,45K R3 = 23,99K R2 = 23,98K R1 = 50,5K
Opomba! Prikazane so izmerjene vrednosti upora, saj lahko z izmerjenimi vrednostmi upora tesno primerjamo teoretične in praktične vrednosti.
Zdaj je prikazan izračun iz kalkulatorja delilnika napetosti spodaj,
Izhod napetostnega delilnika je 0,1564V
Izračun ojačenja neinvertirajočega ojačevalnika za 4 upore
Vout, ko je R1 izbrani upor
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout, ko je R2 izbrani upor
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout, ko je R3 izbrani upor
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout, ko je R4 izbrani upor
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Vse to sem naredil, da sem teoretične in praktične vrednosti čim bolj primerjal.
Z vsemi opravljenimi izračuni lahko preidemo na odsek za testiranje.
Testiranje programabilnega ojačevalnega vezja
Zgornja slika prikazuje izhodno napetost, ko je MOSFET T1 vklopljen, zato tok teče skozi upor R1.
Zgornja slika prikazuje izhodno napetost, ko je vklopljen tranzistor T4, zato tok teče skozi upor R4.
Zgornja slika prikazuje izhodno napetost, ko je MOSFET T2 vklopljen, zato tok teče skozi upor R2.
Zgornja slika prikazuje izhodno napetost, ko je vklopljen tranzistor T3, zato tok teče skozi upor R3.
Kot je razvidno iz sheme, so T1, T2 MOSFET-ji in T3, T4 tranzistorji. Torej, ko se uporabljajo MOSFET-ji, je napaka v območju od 1 do 5 mV, ko pa se tranzistorji uporabljajo kot stikala, dobimo napako v območju od 10 do 50 mV.
Z zgornjimi rezultati je jasno, da je MOSFET najboljša rešitev za tovrstno uporabo, napake v teoretičnem in praktičnem delu pa lahko nastanejo zaradi napake odmika op-amp-a.
Opomba! Upoštevajte, da sem dodal dve LED-ji samo zaradi testiranja in jih v dejanski shemi ne najdete, prikazuje binarno kodo, ki prikazuje, kateri pin je aktiven
Prednosti in slabosti programabilnega ojačevalnika
Ker je to vezje poceni, enostavno in preprosto, ga je mogoče uporabiti v številnih različnih aplikacijah.
Tu se MOSFET uporablja kot stikalo za prenašanje celotnega toka skozi upor na zemljo, zato učinek temperature ni gotov in z omejenimi orodji in preskusno opremo vam nisem mogel pokazati učinkov spreminjanja temperature na vezje.
Cilj uporabe BJT skupaj z MOSFET-i je zato, ker vam želim pokazati, kako slab je BJT za tovrstno aplikacijo.
Vrednosti povratnih uporov in vhodnih uporov morajo biti v območju KΩ, to je zato, ker bo pri nižjih vrednostih upora skozi MOSFET teklo več toka, zato bo več napetosti padlo na MOSFET, kar bo povzročilo nepredvidljive rezultate.
Nadaljnje izboljšanje
Vezje lahko dodatno spremenimo, da izboljšamo njegovo zmogljivost, kot lahko dodamo filter za zavrnitev visokofrekvenčnih zvokov.
Ker se v tem testu uporablja opcijski ojačevalnik LM358 z žele-zrni, imajo napajalne napake ojačevalnika pomembno vlogo pri izhodni napetosti. Tako ga je mogoče še izboljšati z uporabo instrumentalnega ojačevalnika in ne LM358.
To vezje je narejeno samo za predstavitvene namene. Če razmišljate o uporabi tega vezja v praktični aplikaciji, morate za doseganje absolutne stabilnosti uporabiti optični ojačevalnik tipa helikopterja in visoko natančni 0,1-omski upor
Upam, da vam je bil ta članek všeč in ste se iz njega naučili kaj novega. Če dvomite, lahko vprašate v spodnjih komentarjih ali pa uporabite naše forume za podrobno razpravo.