- Grunnleggende om Op-Amp
- Programmerbar forsterkningsarbeider
- Komponenter kreves
- Skjematisk diagram
- Arduino-kode for PGA
- Beregninger for programmerbar forsterkningsforsterker
- Testing av programmerbar forsterkerkrets
- Fordeler og ulemper med programmerbar forsterkning
- Ytterligere forbedring
I måleindustrien er en veldig viktig funksjonell blokk en programmerbar forsterkning (PGA). Hvis du er en elektronisk entusiast eller en student, har du sannsynligvis sett et multimeter eller oscilloskop som måler veldig små spenninger veldig verdifullt fordi kretsen har en innebygd PGA sammen med en kraftig ADC som hjelper til med den nøyaktige måleprosessen.
I dag tilbyr PGA-forsterkeren en hyllebasert forsterker, en ikke-inverterende forsterker med en brukerprogrammerbar forsterkningsfaktor. Denne typen enhet har veldig høy inngangsimpedans, bred båndbredde og en valgbar inngangsspenningsreferanse innebygd i IC. Men alle disse funksjonene kommer med en pris, og for meg er det ikke verdt å sette det kostbart av en chip for en generisk applikasjon.
Så for å overvinne disse situasjonene har jeg kommet opp med en ordning som består av en Op-amp, MOSFET og Arduino, som jeg var i stand til å endre forsterkningen av op-amp programmatisk. Så i denne veiledningen skal jeg vise deg hvordan du bygger din egen programmerbare forsterkningsforsterker med en LM358 op-amp og MOSFETS, og jeg vil diskutere noen fordeler og ulemper ved kretsen ved siden av testing.
Grunnleggende om Op-Amp
For å forstå hvordan kretsen fungerer, er det veldig viktig å vite hvordan en operasjonsforsterker fungerer. Lær mer om Op-amp ved å følge denne op-amp testerkretsen.
I figuren ovenfor kan du se en operasjonsforsterker. Den grunnleggende jobben til en forsterker er å forsterke et inngangssignal, sammen med forsterkning, kan op-amp også utføre forskjellige operasjoner som sum, differensiere, integrere osv. Lær mer om summeringsforsterkeren og differensialforsterkeren her.
Op-amp har bare tre terminaler. Terminalen med (+) tegnet kalles ikke-inverterende inngang, og terminalen med (-) tegnet kalles inverterende inngang. Foruten disse to terminalene er den tredje terminalen utgangsterminalen.
En op-amp følger bare to regler
- Ingen strøm strømmer inn eller ut av op-amp-inngangene.
- Op-amp prøver å holde inngangene på samme spenningsnivå.
Så med disse to reglene klarert, kan vi analysere kretsene nedenfor. Lær også mer om Op-amp ved å gå gjennom forskjellige Op-amp-baserte kretser.
Programmerbar forsterkningsarbeider
Ovenstående figur gir deg en grunnleggende ide om kretsarrangementet til min crud PGA-forsterker. I denne kretsen er op-amp konfigurert som en ikke-inverterende forsterker, og som vi alle vet med et ikke-inverterende kretsarrangement, kan vi endre forsterkningen til op-amp ved å endre tilbakemelding motstand eller inngangsmotstand, Som du kan se fra kretsarrangementet ovenfor, trenger jeg bare å bytte MOSFET-ene en om gangen for å endre forsterkningen til op-amp.
I testseksjonen gjorde jeg akkurat det at jeg byttet MOSFET-ene en om gangen og sammenlignet de målte verdiene med de praktiske verdiene, og du kan observere resultatene i delen "testing the circuit" nedenfor.
Komponenter kreves
- Arduino Nano - 1
- LM358 IC - 1
- LM7805 regulator - 1
- BC548 generisk NPN-transistor - 2
- BS170 Generisk N-kanal MOSFET - 2
- 200K motstand - 1
- 50K motstand - 2
- 24K motstand - 2
- 6.8K motstand - 1
- 1K motstand - 4
- 4.7K motstand - 1
- 220R, 1% motstand - 1
- Taktil bryter generisk - 1
- Gul LED 3mm - 2
- Brødbrett Generisk - 1
- Jumper Wires Generic - 10
- Strømforsyning ± 12V - 1
Skjematisk diagram
For en demonstrasjon av programmerbar forsterkningsforsterker er kretsen konstruert på et loddfritt brødbrett ved hjelp av skjematisk; For å redusere den indre parasittiske induktansen og kapasitansen til brødplaten, har alle komponentene blitt plassert så nær som mulig.
Og hvis du lurer på hvorfor det er en klynge med ledninger i brødplaten min? La meg fortelle deg at det er å lage en god jordforbindelse, da interne jordforbindelser i et brødbrett er veldig dårlige.
Her er op-amp i kretsen konfigurert som en ikke-inverterende forsterker, og inngangsspenningen fra 7805 spenningsregulator er 4,99V.
Den målte verdien for motstanden R6 er 6,75K og R7 er 220,8R. Disse to motstandene danner en spenningsdeler som brukes til å generere inngangstestspenningen for op-amp. Den Motstandene R8 og R9 er brukt for å begrense inngangsbasisstrømmen for transistoren T3 og T4. De motstander R10 og R11 blir brukt til å begrense svitsjehastigheten til MOSFET T1 og T2, annen måte, kan det forårsake oscillasjon i kretsen.
I denne bloggen vil jeg vise deg årsaken til å bruke en MOSFET i stedet for en BJT, derav kretsarrangementet.
Arduino-kode for PGA
Her brukes Arduino Nano til å kontrollere basen til transistoren og MOSFET-portene, og et multimeter brukes til å vise spenningsnivåene fordi den innebygde ADCen til Arduino gjør en veldig dårlig jobb, når det gjelder å måle lavt spenningsnivåer.
Fullstendig Arduino-kode for dette prosjektet er gitt nedenfor. Siden dette er en veldig enkel Arduino-kode, trenger vi ikke å inkludere noen biblioteker. Men vi trenger å definere noen konstanter og inngangspinner som vist i koden.
Det tomrommet setup () er hovedfunksjonsblokk hvor lese- og skriveoperasjon for alle innganger og utganger er utført i henhold til kravet.
#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_Definere_Definere int debounce_counter = 0; ugyldig oppsett () {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); } ugyldig sløyfe () {bool val = digitalRead (BUTTON_PIN); // les inngangsverdien hvis (val == LOW) {debounce_counter ++; hvis (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } hvis (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); } hvis (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); } hvis (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); } hvis (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); } hvis (button_is_pressed> = 4) {button_is_pressed = 0; }}}
Beregninger for programmerbar forsterkningsforsterker
De målte verdiene for PGA-forsterkerkretsen er vist nedenfor.
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
Merk! De målte verdiene til motstanden vises fordi vi med målte motstandsverdier kan sammenligne de teoretiske verdiene og de praktiske verdiene nøye.
Nå er beregningen fra spenningsdelerkalkulatoren vist nedenfor,
Utgangen til spenningsdeleren er 0,1564V
Beregning av forsterkningen til den ikke-inverterende forsterkeren for de fire motstandene
Vout når R1 er valgt motstand
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout når R2 er valgt motstand
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout når R3 er valgt motstand
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout når R4 er valgt motstand
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Jeg gjorde alt det for å sammenligne de teoretiske og praktiske verdiene så nært som mulig.
Når alle beregningene er gjort, kan vi gå videre til testdelen.
Testing av programmerbar forsterkerkrets
Ovenstående bilde viser utgangsspenningen når MOSFET T1 er på, derav strøm strømmer gjennom motstanden R1.
Ovenstående bilde viser utgangsspenningen når Transistor T4 er på, derav strøm strømmer gjennom motstanden R4.
Ovenstående bilde viser utgangsspenningen når MOSFET T2 er på, derav strøm strømmer gjennom motstanden R2.
Ovenstående bilde viser utgangsspenningen når Transistor T3 er på, derav strøm strømmer gjennom motstanden R3.
Som du kan se fra skjematisk at T1, T2 er MOSFET, og T3, T4 er transistorer. Så når MOSFET brukes, er feilen i 1 til 5 mV-området, men når transistorer brukes som brytere, får vi en feil i 10 til 50 mV-området.
Med de ovennevnte resultatene er det klart at MOSFET er løsningen for denne typen applikasjoner, og feilene i det teoretiske og praktiske kan være forårsaket av offset-feilen til op-amp.
Merk! Vær oppmerksom på at jeg har lagt til to lysdioder bare for å teste, og du kan ikke finne dem i det faktiske skjemaet, det viser binær kode for å vise hvilken pin som er aktiv
Fordeler og ulemper med programmerbar forsterkning
Siden denne kretsen er billig, enkel og enkel, kan den implementeres i mange forskjellige applikasjoner.
Her brukes MOSFET som en bryter for å føre all strøm gjennom motstanden til bakken. Derfor er effekten av temperatur ikke sikker, og med mine begrensede verktøy og testutstyr kunne jeg ikke vise deg effekten av varierende temperatur på kretsen.
Målet med å bruke en BJT sammen med MOSFET er fordi jeg vil vise deg hvor dårlig en BJT kan være for denne typen applikasjoner.
Verdiene til tilbakemeldingsmotstandene og inngangsmotstandene må være i KΩ-området, det vil si at med lavere motstandsverdier vil mer strøm strømme gjennom MOSFET, og dermed vil mer spenning falle over MOSFET og forårsake uforutsigbare resultater.
Ytterligere forbedring
Kretsen kan modifiseres ytterligere for å forbedre ytelsen, slik som vi kan legge til filteret for å avvise høyfrekvente lyder.
Siden LM358 jelly bean op-amp brukes i denne testen, spiller offset-feilene til op-amp en stor rolle ved utgangsspenningen. Så det kan forbedres ytterligere ved å bruke en instrumentforsterker i stedet for en LM358.
Denne kretsen er laget kun for demonstrasjonsformål. Hvis du tenker på å bruke denne kretsen i en praktisk applikasjon, må du bruke en chopper-type op-amp og høy presisjon 0,1 ohm motstand for å oppnå absolutt stabilitet.
Jeg håper du likte denne artikkelen og lærte noe nytt ut av den. Hvis du er i tvil, kan du spørre i kommentarene nedenfor eller bruke forumene våre for detaljert diskusjon.