- Grunderna i Op-Amp
- Programmerbar förstärkare fungerar
- Komponenter krävs
- Schematisk bild
- Arduino-kod för PGA
- Beräkningar för programmerbar förstärkare
- Test av programmerbar förstärkarkrets
- För- och nackdelar med programmerbar förstärkare
- Ytterligare förbättring
I mätindustrin är ett mycket viktigt funktionellt block en programmerbar förstärkare (PGA). Om du är en elektronisk entusiast eller en högskolestudent har du förmodligen sett en multimeter eller ett oscilloskop som mäter mycket små spänningar mycket värdefullt eftersom kretsen har en inbyggd PGA tillsammans med en kraftfull ADC som hjälper till med den exakta mätprocessen.
Nuförtiden erbjuder PGA-förstärkaren en hyllad bas, en icke-inverterande förstärkare med en användarprogrammerbar förstärkningsfaktor. Denna typ av enhet har mycket hög ingångsimpedans, bred bandbredd och en valbar ingångsspänningsreferens inbyggd i IC. Men alla dessa funktioner kommer med en kostnad, och för mig är det inte värt att lägga det dyra av ett chip för en generisk applikation.
Så för att övervinna dessa situationer har jag kommit fram till ett arrangemang bestående av en Op-amp, MOSFET och Arduino, genom vilken jag kunde ändra förstärkningen av op-amp programmatiskt. Så i denna handledning ska jag visa dig hur du bygger din egen programmerbara förstärkare med en LM358 op-amp och MOSFETS, och jag kommer att diskutera några fördelar och nackdelar med kretsen tillsammans med testningen.
Grunderna i Op-Amp
För att förstå hur kretsen fungerar är det mycket viktigt att veta hur en operationsförstärkare fungerar. Lär dig mer om Op-amp genom att följa denna op-amp testkrets.
I figuren ovan kan du se en operationsförstärkare. Det grundläggande jobbet för en förstärkare är att förstärka en ingångssignal, tillsammans med förstärkningen kan op-förstärkaren också utföra olika operationer som summa, differentiera, integrera osv. Läs mer om summeringsförstärkaren och differentialförstärkaren här.
Op-amp har bara tre terminaler. Terminalen med (+) -tecknet kallas icke-inverterande ingång och terminalen med (-) -tecknet kallas inverterande ingång. Förutom dessa två terminaler är den tredje terminalen utgångsterminalen.
En op-amp följer bara två regler
- Ingen ström strömmar in eller ut från ingångarna till op-amp.
- Op-amp försöker hålla ingångarna på samma spänningsnivåer.
Så med de två reglerna klarade kan vi analysera nedanstående kretsar. Lär dig också mer om Op-amp genom att gå igenom olika Op-amp-baserade kretsar.
Programmerbar förstärkare fungerar
Ovanstående figur ger dig en grundläggande uppfattning om kretsarrangemanget för min crud PGA-förstärkare. I denna krets är op-amp konfigurerad som en icke-inverterande förstärkare, och som vi alla vet med ett icke-inverterande kretsarrangemang kan vi ändra förstärkningen hos op-amp genom att ändra återkopplingsmotståndet eller ingångsmotståndet, Som du kan se från ovanstående kretsarrangemang behöver jag bara byta MOSFET en i taget för att ändra förstärkningen av op-amp.
I testavsnittet gjorde jag precis att jag bytte MOSFET en i taget och jämförde de uppmätta värdena med de praktiska värdena, och du kan se resultaten i avsnittet "testa kretsen" nedan.
Komponenter krävs
- Arduino Nano - 1
- LM358 IC - 1
- LM7805 regulator - 1
- BC548 generisk NPN-transistor - 2
- BS170 Generisk N-kanal MOSFET - 2
- 200K motstånd - 1
- 50K motstånd - 2
- 24K motstånd - 2
- 6.8K Motstånd - 1
- 1K motstånd - 4
- 4.7K Motstånd - 1
- 220R, 1% motstånd - 1
- Taktil brytare generisk - 1
- Amber LED 3mm - 2
- Brödbräda Generic - 1
- Jumper Wires Generic - 10
- Strömförsörjning ± 12V - 1
Schematisk bild
För en demonstration av programmerbar förstärkare är kretsen konstruerad på ett lödfritt brödbräda med hjälp av schemat. För att minska den interna parasitiska induktansen och kapacitansen hos panelen har alla komponenter placerats så nära som möjligt.
Och om du undrar varför det finns ett kluster av ledningar i mitt brödbräda? låt mig säga att det är att skapa en bra markanslutning eftersom interna jordanslutningar i en bräda är mycket dåliga.
Här är op-amp i kretsen konfigurerad som en icke-inverterande förstärkare och ingångsspänningen från 7805 spänningsregulator är 4,99V.
Det uppmätta värdet för motståndet R6 är 6,75K och R7 är 220,8R. Dessa två motstånd bildar en spänningsdelare som används för att generera ingångstestspänningen för op-amp. Den Motstånden R8 och R9 används för att begränsa den ingående basström hos transistorn T3 och T4. De motstånden R10 och R11 används för att begränsa omkopplingshastigheten hos MOSFET: T1 & T2, annars kan det orsaka oscillation i kretsen.
I den här bloggen vill jag visa dig orsaken till att du använder en MOSFET snarare än en BJT, därav kretsarrangemanget.
Arduino-kod för PGA
Här används Arduino Nano för att styra basen på transistorn och MOSFETs grind, och en multimeter används för att visa spänningsnivåerna eftersom den inbyggda ADC: n för Arduino gör ett mycket dåligt jobb, när det gäller att mäta lågt spänningsnivåer.
Komplett Arduino-kod för detta projekt ges nedan. Eftersom detta är en mycket enkel Arduino-kod behöver vi inte inkludera några bibliotek. Men vi behöver definiera några konstanter och inmatningsstift som visas i koden.
Den void setup () är den huvudsakliga funktionsblock där läs- och skrivoperation för alla in- och utgångar utförs enligt krav.
#definiera BS170_WITH_50K_PIN 9 #definiera 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 #definera_FINST_FIND_FIND_FIND_FIND_FIND int debounce_counter = 0; ogiltig installation () {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); // läs ingångsvärde om (val == LOW) {debounce_counter ++; if (debounce_counter> PRESSED_CONFIDENCE_LEVEL) {debounce_counter = 0; button_is_pressed ++; } om (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); } om (button_is_pressed> = 4) {button_is_pressed = 0; }}}
Beräkningar för programmerbar förstärkare
De uppmätta värdena för PGA-förstärkarkretsen visas nedan.
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
Notera! De uppmätta värdena på motståndet visas för att vi med uppmätta motståndsvärden kan jämföra de teoretiska värdena och de praktiska värdena.
Nu visas beräkningen från spänningsdelningsräknaren nedan,
Spänningsdelarens utgång är 0,1564V
Beräknar förstärkningen av den icke-inverterande förstärkaren för de 4 motstånden
Vout när R1 är det valda motståndet
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout när R2 är det valda motståndet
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout när R3 är det valda motståndet
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout när R4 är det valda motståndet
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Jag gjorde allt detta för att jämföra de teoretiska och praktiska värdena så nära som möjligt.
Med alla beräkningar gjort kan vi gå vidare till testavsnittet.
Test av programmerbar förstärkarkrets
Bilden ovan visar utgångsspänningen när MOSFET T1 är på och därmed strömmar ström genom motståndet R1.
Ovanstående bild visar utgångsspänningen när Transistor T4 är på, därmed ström strömmar genom motståndet R4.
Ovanstående bild visar utspänningen när MOSFET T2 är på, därmed ström strömmar genom motståndet R2.
Bilden ovan visar utgångsspänningen när Transistor T3 är på, därmed strömmar strömmen genom motståndet R3.
Som du kan se från schemat att T1, T2 är MOSFET och T3, T4 är transistorer. Så när MOSFET används används felet inom 1 till 5 mV-intervall men när transistorer används som omkopplare får vi ett fel inom 10 till 50 mV-intervall.
Med ovanstående resultat är det tydligt att MOSFET är goto-lösningen för denna typ av applikation, och felen i det teoretiska och praktiska kan orsakas på grund av förskjutningsfelet i op-amp.
Notera! Observera att jag har lagt till två lysdioder bara för att testa och du kan inte hitta dem i själva schemat, det visar binär kod för att visa vilken stift som är aktiv
För- och nackdelar med programmerbar förstärkare
Eftersom denna krets är billig, enkel och enkel kan den implementeras i många olika applikationer.
Här används MOSFET som en omkopplare för att leda all ström genom motståndet till jord, varför effekten av temperaturen inte är säker, och med mina begränsade verktyg och testutrustning kunde jag inte visa effekterna av varierande temperatur på kretsen.
Målet med att använda en BJT tillsammans med MOSFET är att jag vill visa dig hur dålig en BJT kan vara för denna typ av applikation.
Värdena för återkopplingsmotstånden och ingångsmotstånden måste ligga i KΩ-intervallet, det beror på att med lägre motståndsvärden kommer mer ström att strömma genom MOSFET, vilket innebär att mer spänning kommer att falla över MOSFET och orsaka oförutsägbara resultat.
Ytterligare förbättring
Kretsen kan modifieras ytterligare för att förbättra dess prestanda som om vi kan lägga till filtret för att avvisa högfrekventa ljud.
Eftersom LM358 jelly bean op-amp används i detta test, spelar off-amp-offset-felen en viktig roll vid utspänningen. Så det kan förbättras ytterligare genom att använda en instrumentförstärkare snarare än en LM358.
Denna krets är endast gjord för demonstrationsändamål. Om du funderar på att använda den här kretsen i en praktisk tillämpning måste du använda en chopper-typ op-amp och hög precision 0,1 ohm motstånd för att uppnå absolut stabilitet.
Jag hoppas att du gillade den här artikeln och lärde dig något nytt av den. Om du är osäker kan du fråga i kommentarerna nedan eller använda våra forum för detaljerad diskussion.