- Основи Op-Amp
- Програмований підсилювач посилення працює
- Потрібні компоненти
- Принципова схема
- Код Arduino для PGA
- Розрахунки для програмованого підсилювача посилення
- Тестування схеми підсилювача з програмованим підсиленням
- Плюси та мінуси програмованого підсилювача посилення
- Подальше вдосконалення
У вимірювальній галузі дуже важливим функціональним блоком є програмований підсилювач посилення (PGA). Якщо ви любитель електроніки або студент коледжу, ви, напевно, бачили мультиметр або осцилограф, що дуже дорого вимірює дуже малі напруги, оскільки в схему вбудований PGA поряд з потужним АЦП, який допомагає в точному процесі вимірювання.
У наш час підсилювач PGA пропонує неінвертуючий підсилювач на основі операційного підсилювача з програмованим користувачем коефіцієнтом підсилення. Цей тип пристроїв має дуже високий вхідний опір, широку смугу пропускання та вибір вхідної напруги вбудованої в мікросхему. Але всі ці функції мають свою вартість, і для мене не варто використовувати такі дорогі мікросхеми для загального застосування.
Отже, щоб подолати ці ситуації, я придумав механізм, що складається з операційного підсилювача, MOSFET та Arduino, завдяки якому мені вдалося програмно змінити коефіцієнт підсилення операційного підсилювача. Отже, у цьому підручнику я збираюся показати вам, як створити свій власний програмований підсилювач посилення з підсилювачем LM358 та MOSFETS, і я обговорюватиму деякі плюси та мінуси схеми поряд з тестуванням.
Основи Op-Amp
Щоб зрозуміти роботу цієї схеми, дуже важливо знати, як працює операційний підсилювач. Дізнайтеся більше про Op-amp, дотримуючись цієї схеми тестера op-amp.
На малюнку вище ви можете побачити операційний підсилювач. Основна робота підсилювача полягає в посиленні вхідного сигналу, поряд з підсиленням, операційний підсилювач також може виконувати різні операції, такі як сума, диференціювання, інтегрування тощо. Дізнайтеся більше про підсумовуючий підсилювач та диференціальний підсилювач тут.
Операційний підсилювач має лише три термінали. Термінал зі знаком (+) називається неінвертуючим входом, а термінал зі знаком (-) - інвертуючим входом. Крім цих двох терміналів, третій термінал є вихідним терміналом.
Операційний підсилювач дотримується лише двох правил
- Струм не тече ні з входів операційного підсилювача, ні з нього.
- Операційний підсилювач намагається підтримувати входи на однакових рівнях напруги.
Отже, з ясненням цих двох правил ми можемо проаналізувати наведені нижче схеми. Крім того, дізнайтеся більше про Op-amp, пройшовши різні схеми на основі Op-amp.
Програмований підсилювач посилення працює
Наведений вище малюнок дає вам основне уявлення про схему розташування мого сирого підсилювача PGA. У цій схемі операційний підсилювач налаштований як неінвертуючий підсилювач, і, як ми всі знаємо з неінвертуючою схемою схеми, ми можемо змінити коефіцієнт підсилення операційного підсилювача, змінивши резистор зворотного зв'язку або вхідний резистор, як ви можете бачити з наведеної схеми схеми, мені просто потрібно перемикати МОП-транзистори по одному, щоб змінити коефіцієнт підсилення операційного підсилювача.
У тестовому розділі я зробив лише те, що я перемикав МОП-транзистори по одному і порівнював виміряні значення з практичними значеннями, і ви можете спостерігати результати в розділі "Тестування схеми" нижче.
Потрібні компоненти
- Arduino Nano - 1
- LM358 IC - 1
- Регулятор LM7805 - 1
- BC548 Загальний транзистор NPN - 2
- BS170 Загальний N-канальний MOSFET - 2
- Резистор 200К - 1
- Резистор 50K - 2
- 24K резистор - 2
- 6.8K резистор - 1
- Резистор 1К - 4
- 4.7K резистор - 1
- 220R, 1% резистор - 1
- Тактильний перемикач Generic - 1
- Янтарний світлодіод 3мм - 2
- Хлібна дошка загальна - 1
- Провід перемичок загальний - 10
- Джерело живлення ± 12В - 1
Принципова схема
Для демонстрації програмованого підсилювача посилення схема побудована на безпаяній макетній платі за допомогою схеми; Щоб зменшити внутрішню паразитну індуктивність та ємність макетної дошки, всі компоненти розміщені якомога ближче.
І якщо вам цікаво, чому в моєму макеті є скупчення проводів? дозвольте сказати вам, що це зробити хороше заземлення, оскільки внутрішні заземлення в макетній панелі дуже погані.
Тут операційний підсилювач у схемі виконаний як неінвертуючий підсилювач, а вхідна напруга від регулятора напруги 7805 становить 4,99 В.
Виміряне значення для резистора R6 становить 6,75 К, а R7 - 220,8 R. Ці два резистори утворюють дільник напруги, який використовується для генерації вхідної контрольної напруги для операційного підсилювача. Резистори R8 і R9 використовуються для обмеження вхідного струму бази транзистора T3 і T4. Ці резистори R10 і R11, використовуються для обмеження швидкості перемикання МОП - транзисторів Т1 і Т2, в іншому випадку, це може викликати коливання в контурі.
У цьому блозі я хочу показати вам причину використання MOSFET, а не BJT, отже, схема схеми.
Код Arduino для PGA
Тут Arduino Nano використовується для управління базою транзистора і затвором МОП-транзисторів, а мультиметр використовується для показу рівнів напруги, оскільки вбудований АЦП Arduino робить дуже погану роботу, коли йдеться про вимірювання низьких рівні напруги.
Повний код Arduino для цього проекту наведено нижче. Оскільки це дуже простий код Arduino, нам не потрібно включати будь-які бібліотеки. Але нам потрібно визначити деякі константи та вхідні штифти, як показано в коді.
Налаштування void () є основним функціональним блоком, де операція зчитування та запису для всіх входів та виходів виконується відповідно до вимог.
#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, 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); // читаємо вхідне значення 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; }}}
Розрахунки для програмованого підсилювача посилення
Виміряні значення для схеми підсилювача PGA показані нижче.
Vin = 4,99 В R7 = 220,8 Ом R6 = 6,82 КОм R5 = 199,5 К R4 = 50,45 К R3 = 23,99 К R2 = 23,98 К R1 = 50,5 К
Примітка! Показані виміряні значення резистора, оскільки за допомогою виміряних значень резистора ми можемо тісно порівняти теоретичні та практичні значення.
Тепер розрахунок з калькулятора дільника напруги показано нижче,
Вихід дільника напруги 0,1564В
Розрахунок коефіцієнта підсилення неінвертуючого підсилювача для 4 резисторів
Vout, коли R1 - обраний резистор
Vout = (1+ (199,5 / 50,5)) * 0,1564 = 0,77425V
Vout, коли R2 - обраний резистор
Vout = (1+ (199,5 / 23,98)) * 0,1564 = 1,45755V
Vout, коли R3 - вибраний резистор
Vout = (1+ (199,5 / 23,99)) * 0,1564 = 1,45701V
Vout, коли R4 - вибраний резистор
Vout = (1+ (199,5 / 50,45)) * 0,1564 = 0,77486V
Я зробив усе це, щоб порівняти теоретичні та практичні значення якомога ближче.
Після всіх проведених розрахунків ми можемо перейти до розділу тестування.
Тестування схеми підсилювача з програмованим підсиленням
На зображенні вище показано вихідну напругу, коли MOSFET T1 увімкнено, отже, струм протікає через резистор R1.
На зображенні вище показано вихідну напругу, коли транзистор T4 увімкнено, отже, струм протікає через резистор R4.
Наведене вище зображення показує вихідну напругу, коли MOSFET T2 увімкнено, отже, струм протікає через резистор R2.
На зображенні вище показано вихідну напругу, коли транзистор T3 увімкнено, отже, струм протікає через резистор R3.
Як видно зі схеми, T1, T2 - це MOSFET-транзистори, а T3, T4 - транзистори. Отже, коли використовуються MOSFET, помилка знаходиться в діапазоні від 1 до 5 мВ, але коли транзистори використовуються як перемикачі, ми отримуємо помилку в діапазоні від 10 до 50 мВ.
З наведених вище результатів стає зрозуміло, що MOSFET є найкращим рішенням для такого роду програм, і теоретичні та практичні помилки можуть бути спричинені помилкою зміщення операційного підсилювача.
Примітка! Зверніть увагу, що я додав два світлодіоди лише для тестування, і ви не можете знайти їх у власне схемі, він показує двійковий код, щоб показати, який штифт активний
Плюси та мінуси програмованого підсилювача посилення
Оскільки ця схема є дешевою, простою і простою, вона може бути реалізована в багатьох різних додатках.
Тут MOSFET використовується як перемикач для пропускання всього струму через резистор на землю, тому вплив температури не визначений, і, маючи обмежені інструменти та випробувальне обладнання, я не зміг показати вам вплив змін температури на ланцюга.
Метою використання BJT поряд з MOSFET є те, що я хочу показати вам, наскільки BJT може бути бідним для такого роду додатків.
Значення резисторів зворотного зв'язку та вхідних резисторів повинні знаходитися в діапазоні КОм, тобто тому, що при менших значеннях резисторів більше струму буде протікати через MOSFET, тим самим більше напруги буде падати на MOSFET, що спричиняє непередбачувані результати.
Подальше вдосконалення
Схему можна додатково модифікувати для поліпшення її продуктивності, як ми можемо додати фільтр для відхилення високочастотних шумів.
Оскільки в цьому випробуванні використовується операційний підсилювач LM358 з желейними бобами, помилки зміщення операційного підсилювача відіграють важливу роль на вихідній напрузі. Отже, його можна вдосконалити за допомогою інструментального підсилювача, а не LM358.
Ця схема зроблена лише для демонстрації. Якщо ви думаєте про використання цієї схеми в практичному застосуванні, вам доведеться використовувати опт-підсилювач типу вертоліт і високоточний резистор 0,1 Ом для досягнення абсолютної стабільності.
Сподіваюся, вам сподобалась ця стаття і ви дізналися з неї щось нове. Якщо у вас є якісь сумніви, ви можете запитати в коментарях нижче або скористатися нашими форумами для детального обговорення.