- Základy operačního zesilovače
- Programovatelný zesilovač pracuje
- Požadované komponenty
- Schematický diagram
- Arduino kód pro PGA
- Výpočty pro programovatelný zesilovač zisku
- Testování programovatelného obvodu zesilovače zisku
- Výhody a nevýhody programovatelného zesilovače zisku
- Další vylepšení
V odvětví měření je velmi důležitým funkčním blokem programovatelný zesilovač zisku (PGA). Pokud jste elektronickým nadšencem nebo vysokoškolským studentem, pravděpodobně jste viděli multimetr nebo osciloskop měřit velmi malá napětí velmi precizně, protože obvod má zabudovaný PGA vedle výkonného ADC, který pomáhá s přesným procesem měření.
V dnešní době nabízí PGA zesilovač běžně op-amp, neinvertující zesilovač s uživatelem programovatelným faktorem zisku. Tento typ zařízení má velmi vysokou vstupní impedanci, širokou šířku pásma a volitelnou referenci vstupního napětí zabudovanou do IC. Ale všechny tyto funkce přicházejí s cenou a pro mě nestojí za to dát tu nákladnou část čipu pro obecnou aplikaci.
Abych tyto situace překonal, přišel jsem s uspořádáním sestávajícím z operačního zesilovače, MOSFET a Arduino, pomocí kterého jsem dokázal programově změnit zisk operačního zesilovače. Takže v tomto tutoriálu vám ukážu, jak vytvořit svůj vlastní programovatelný zesilovač zesílení s operačním zesilovačem LM358 a MOSFETY a budu spolu s testováním diskutovat o některých výhodách a nevýhodách obvodu.
Základy operačního zesilovače
Abychom pochopili fungování tohoto obvodu, je velmi důležité vědět, jak funguje operační zesilovač. Další informace o operačním zesilovači naleznete v tomto testovacím obvodu operačního zesilovače.
Na výše uvedeném obrázku vidíte operační zesilovač. Základní úlohou zesilovače je zesílení vstupního signálu, kromě zesílení může operační zesilovač také provádět různé operace, jako je součet, diferenciace, integrace atd. Další informace o sčítacím zesilovači a diferenciálním zesilovači zde.
Operační zesilovač má pouze tři terminály. Terminál se znaménkem (+) se nazývá neinvertující vstup a terminál se znaménkem (-) se nazývá invertující vstup. Kromě těchto dvou terminálů je třetí terminál výstupním terminálem.
Operační zesilovač se řídí pouze dvěma pravidly
- Ze vstupů op-amp neproudí žádný proud.
- Operační zesilovač se snaží udržet vstupy na stejné úrovni napětí.
Když jsou tato dvě pravidla vyjasněna, můžeme analyzovat níže uvedené obvody. Zjistěte také více o operačním zesilovači procházením různých obvodů založených na operačních zesilovačích.
Programovatelný zesilovač pracuje
Výše uvedený obrázek poskytuje základní představu o uspořádání obvodu mého hrubého PGA zesilovače. V tomto obvodu je operační zesilovač konfigurován jako neinvertující zesilovač a jak všichni víme s neinvertujícím uspořádáním obvodu, můžeme změnit zisk operačního zesilovače změnou zpětnovazebního odporu nebo vstupního odporu, jak můžete vidět z výše uvedeného uspořádání obvodu, musím jen přepínat MOSFETy jeden po druhém, abych změnil zisk op-amp.
V testovací sekci jsem udělal jen to, že jsem postupně přepínal MOSFETy a porovnával naměřené hodnoty s praktickými hodnotami a výsledky můžete sledovat v sekci „testování obvodu“ níže.
Požadované komponenty
- Arduino Nano - 1
- LM358 IC - 1
- Regulátor LM7805 - 1
- Obecný tranzistor NPN BC548 - 2
- BS170 Generic N-channel MOSFET - 2
- 200K rezistor - 1
- 50K rezistor - 2
- 24K rezistor - 2
- 6.8K rezistor - 1
- 1K rezistor - 4
- 4.7K rezistor - 1
- 220R, 1% rezistor - 1
- Obecný hmatový spínač - 1
- Jantarová LED 3 mm - 2
- Obecná deska na pečení - 1
- Jumper Wires Generic - 10
- Napájení ± 12V - 1
Schematický diagram
Pro demonstraci programovatelného zesilovače je obvod konstruován na nepájeném nepájivém poli pomocí schématu; Aby se snížila vnitřní parazitní indukčnost a kapacita kontaktního pole, byly všechny komponenty umístěny co nejblíže.
A pokud se divíte, proč je v mé prkénku shluk drátů? řeknu vám, že je to dobré uzemnění, protože vnitřní uzemnění v prkénku jsou velmi špatná.
Zde je operační zesilovač v obvodu nakonfigurován jako neinvertující zesilovač a vstupní napětí z regulátoru napětí 7805 je 4,99 V.
Naměřená hodnota pro rezistor R6 je 6,75 K a R7 je 220,8 R, tyto dva rezistory tvoří dělič napětí, který se používá ke generování vstupního testovacího napětí pro operační zesilovač. Odpory R8 a R9 jsou používány k omezení vstupní proud báze tranzistoru T3 a T4. Tyto rezistory R10 a R11 jsou použity pro omezení rychlosti sepnutí tranzistorů MOSFET T1 a T2, jinak může dojít k oscilaci v obvodu.
V tomto blogu vám chci ukázat důvod pro použití MOSFET spíše než BJT, tedy uspořádání obvodu.
Arduino kód pro PGA
Zde se Arduino Nano používá k ovládání základny tranzistoru a brány MOSFET a multimetr se používá k zobrazení úrovní napětí, protože vestavěný ADC Arduina dělá velmi špatnou práci, pokud jde o měření nízké úrovně napětí.
Kompletní Arduino kód pro tento projekt je uveden níže. Jelikož se jedná o velmi jednoduchý Arduino kód, nemusíme zahrnovat žádné knihovny. Musíme ale definovat některé konstanty a vstupní piny, jak je znázorněno v kódu.
Void setup () je hlavní funkční blok, kde čtení a operace zápisu pro všechny vstupy a výstupy jsou prováděny dle požadavku.
#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 PR_INED int debounce_counter = 0; void setup () {pinMode (BS170_WITH_50K_PIN, OUTPUT); pinMode (BS170_WITH_24K_PIN, VÝSTUP); pinMode (BC548_WITH_24K_PIN, VÝSTUP); pinMode (BC548_WITH_50K_PIN, VÝSTUP); pinMode (LED_PIN1, VÝSTUP); pinMode (LED_PIN2, VÝSTUP); pinMode (BUTTON_PIN, INPUT); } void loop () {bool val = digitalRead (BUTTON_PIN); // načíst vstupní hodnotu 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; }}}
Výpočty pro programovatelný zesilovač zisku
Naměřené hodnoty pro obvod zesilovače PGA jsou uvedeny níže.
Vin = 4,99 V R7 = 220,8 Ω R6 = 6,82 KΩ R5 = 199,5K R4 = 50,45 K R3 = 23,99 K R2 = 23,98 K R1 = 50,5 K
Poznámka! Měřené hodnoty odporu jsou zobrazeny, protože s naměřenými hodnotami odporu můžeme úzce porovnat teoretické hodnoty a praktické hodnoty.
Nyní je výpočet z kalkulačky děliče napětí uveden níže,
Výstup děliče napětí je 0,1564V
Výpočet zisku neinvertujícího zesilovače pro 4 rezistory
Vout, když R1 je vybraný rezistor
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout, když R2 je vybraný rezistor
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout, když R3 je vybraný rezistor
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout, když R4 je vybraný rezistor
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Udělal jsem všechno, abych co nejvíce srovnal teoretické a praktické hodnoty.
Po provedení všech výpočtů můžeme přejít do testovací sekce.
Testování programovatelného obvodu zesilovače zisku
Výše uvedený obrázek ukazuje výstupní napětí, když je MOSFET T1 zapnutý, proto proud protéká odporem R1.
Výše uvedený obrázek ukazuje výstupní napětí, když je tranzistor T4 zapnutý, proto proud protéká rezistorem R4.
Výše uvedený obrázek ukazuje výstupní napětí, když je MOSFET T2 zapnutý, proto proud protéká rezistorem R2.
Výše uvedený obrázek ukazuje výstupní napětí, když je zapnutý tranzistor T3, proto proud protéká rezistorem R3.
Jak je vidět na schématu, že T1, T2 jsou MOSFETy a T3, T4 jsou tranzistory. Takže když jsou použity MOSFETy, chyba je v rozsahu 1 až 5 mV, ale když jsou jako spínače použity tranzistory, dostáváme chybu v rozsahu 10 až 50 mV.
S výše uvedenými výsledky je jasné, že MOSFET je goto řešení pro tento druh aplikace a chyby v teoretické i praktické mohou být způsobeny chybou offsetu operačního zesilovače.
Poznámka! Vezměte prosím na vědomí, že jsem kvůli testování přidal dvě LED diody a nemůžete je najít ve skutečném schématu, zobrazuje binární kód, který ukazuje, který pin je aktivní
Výhody a nevýhody programovatelného zesilovače zisku
Protože tento obvod je levný, snadný a jednoduchý, lze jej implementovat do mnoha různých aplikací.
Zde se MOSFET používá jako přepínač k přenosu veškerého proudu přes rezistor na zem, proto není účinek teploty jistý, a díky omezeným nástrojům a testovacím zařízením jsem nebyl schopen vám ukázat účinky měnící se teploty na obvod.
Cílem použití BJT vedle MOSFETů je to, že vám chci ukázat, jak špatný může být BJT pro tento druh aplikace.
Hodnoty zpětnovazebních rezistorů a vstupních rezistorů musí být v rozsahu KΩ, protože s nižšími hodnotami rezistorů protéká více proudu přes MOSFET, takže na MOSFET bude klesat více napětí a způsobovat nepředvídatelné výsledky.
Další vylepšení
Obvod lze dále upravit, aby se zlepšil jeho výkon, jako bychom mohli přidat filtr pro odmítnutí vysokofrekvenčních zvuků.
Protože se v tomto testu používá operační zesilovač LM358 Jelly Bean, chyby výstupního zesilovače hrají při výstupním napětí hlavní roli. Lze jej tedy dále vylepšit použitím instrumentálního zesilovače namísto LM358.
Tento obvod je vyroben pouze pro demonstrační účely. Pokud uvažujete o použití tohoto obvodu v praktické aplikaci, musíte k dosažení absolutní stability použít operační zesilovač typu chopper a vysoce přesný odpor 0,1 ohmu.
Doufám, že se vám tento článek líbil a dozvěděli jste se z něj něco nového. Máte-li jakékoli pochybnosti, můžete se zeptat v komentářích níže nebo můžete použít naši fóra pro podrobnou diskusi.