در صنعت اندازهگیری، یک بلوک کاربردی بسیار مهم، تقویتکننده بهره قابل برنامهریزی (PGA) است.
فهرست مطالب
تقویت کننده بهره قابل برنامه ریزی با MOSFET و ترانزیستور
اگر علاقهمند به الکترونیک یا دانشجو هستید، احتمالاً شما یک مولتیمتر یا اسیلوسکوپ را مشاهده کردهاید که ولتاژهای بسیار کمی را خیلی خوب اندازهگیری میکند زیرا مدار دارای یک PGA داخلی در کنار یک ADC قدرتمند است که به فرایند اندازهگیری دقیق کمک میکند.
امروزه، تقویتکننده PGA یک تقویتکننده غیر معکوس با یک عامل افزایش قابل برنامهریزی برای کاربر ارائه میدهد. این نوع دستگاه دارای مقاومت ظاهری (امپدانس) ورودی بسیار بالا، پهنای باند پهن و یک مرجع ولتاژ ورودی قابل انتخاب است که درون IC قرار دارد. اما تمام این ویژگیها با هزینهای همراه هستند و ازنظر من، ارزش آن را ندارد که یک تراشه گرانقیمت برای یک برنامه عمومی باشد.
بنابراین برای غلبه بر این شرایط، من آرایش متشکل از Op-amp، MOSFET و Arduino را ارائه دادهام که از طریق آن توانستم افزایش برنامهنویسی op-amp را تغییر دهم. بنابراین، در این آموزش، ما به شما نشان میدهیم که چگونه میتوانید آمپلیفایر بهره قابل برنامهریزی خود را با یک op-amp LM358 و MOSFETS بسازید و درمورد تست در مورد برخی از جوانب مثبت و منفی مدار صحبت خواهم کرد.
تستر اپ امپ
برای درک کار این مدار، بسیار مهم است که بدانید یک تقویتکننده عملیاتی چگونه کار میکند. با دنبال کردن این مدار تستر Op-amp در مورد Op-amp بیشتر بدانید.
در شکل بالا میتوانید یک تقویتکننده عملیاتی را مشاهده کنید. کار اصلی تقویتکننده تقویت یک سیگنال ورودی است، در کنار تقویت، Op-amp همچنین میتواند عملیات مختلفی مانند جمع، دیفرانسیل تشکیل دادن، ادغام و غیره را انجام دهد، در اینجا در مورد آمپلیفایر جمعبندی و آمپلیفایر دیفرانسیل بیشتر بدانید.
Op-amp تنها سه ترمینال دارد. ترمینال با علامت (+) ورودی غیرمعکوس نامیده میشود و ترمینال با علامت (-) ورودی معکوس نامیده میشود. علاوه بر این دو پایانه، ترمینال سوم ترمینال خروجی است.
Op-amp فقط دو قانون را دنبال میکند:
- هیچ جریانی در داخل یا خارج از ورودی Op-amp وجود ندارد.
- Op-amp سعی دارد ورودی ها را در همان ولتاژ نگه دارد.
بنابراین با پاک کردن آن دو قانون، میتوانیم مدارهای زیر را آنالیز کنیم. همچنین، با عبور از مدارهای مختلف مبتنی بر Op-amp، در مورد Op-amp اطلاعات بیشتری کسب کنیم.
عملکرد تقویت کننده بهره قابل برنامه ریزی
شکل بالا ایده اصلی در مورد ترتیب مدار آمپلی فایر PGA خام ما را ارائه میدهد. در این مدار، op-amp به عنوان یک تقویتکننده غیرمعکوس پیکربندی شده است، و همانطور که همه ما میدانیم با یک ترتیب مدار غیر معکوس، میتوانیم با تغییر مقاومت فیدبک یا مقاومت ورودی، بهره op-amp را تغییر دهیم. همانطور که از ترتیب مدار بالا میبینید، فقط باید یک بار MOSFET را عوض کنیم تا بهره op-amp را تغییر دهم.
در بخش تست، من فقطMOSFET ها را یک بار تغییر دادم و مقادیر اندازهگیری شده را با مقادیر عملی مقایسه کردم، که میتوانید نتایج را در بخش “تست مدار” در زیر مشاهده کنید.
اجزای موردنیاز ساخت تقویت کننده بهره قابل برنامه ریزی
- (Arduino Nano (1
- آی سیLM358 (یک عدد)
- رگولاتور LM7805 (یک عدد)
- (BC548 Generic NPN Transistor (2
- (BS170 Generic N-channel MOSFET (2
- مقاومت 200K (یک عدد)
- مقاومت 50K (یک عدد)
- مقاومت 24K (دو عدد)
- مقاومت 6.8K (یک عدد)
- مقاومت 1K (چهار عدد)
- مقاومت 4.7K (یک عدد)
- مقاومت 1%، 220R (یک عدد)
- ژنراتور سوئیچ لمسی (1)
- (Amber LED 3mm (2
- بردبورد (1)
- سیمهای جامپر عمومی (10)
- منبع تغذیه ± 12V (یک عدد)
نمودار شماتیک
برای نمایش آمپلیفایر بهره قابل برنامهریزی، مدار با کمک شماتیک بر روی یک بردبورد بدون لحیم ساخته میشود. برای کاهش اندوکتانس داخلی و ظرفیت خازنی بردبورد، تمام اجزای موجود تا آنجا که ممکن است قرار داده شده است.
و اگر تعجب میکنید چرا یک دسته سیم در بردبورد وجود دارد، بگذارید به شما بگویم که این کار ارتباط خوب زمینی را فراهم میکند زیرا اتصالات داخلی زمین در بردبورد بسیار ضعیف است. در اینجا op-amp در مدار به عنوان یک تقویتکننده غیر معکوس پیکربندی شده است و ولتاژ ورودی از تنظیمکننده ولتاژ 7805، 4.99V است.
مقادیر اندازهگیری شده برای مقاومت R6 برابر 6.75K و R7 برابر با 220.8R است. این دو مقاومت تقسیم ولتاژ را تشکیل میدهند که برای تولید ولتاژ تست ورودی برای op-amp استفاده میشود. مقاومتهای R8 و R9 برای محدودکردن جریان پایه ورودی ترانزیستور T3 و T4 استفاده میشوند. از مقاومتهای R10 و R11 برای محدود کردن سرعت سوئیچینگ MOSFETs T1 & T2 استفاده میشود، در غیر این صورت میتواند باعث نوسان در مدار شود.
در اینجا، من میخواهم دلیل استفاده از MOSFET را به جای BJT، به شما نشان دهم.
برنامه نویسی آردوینو برای PGA
در اینجا Arduino Nano برای کنترل پایه ترانزیستور و دروازه MOSFET ها استفاده میشود و از یک مولتیمتر برای نشان دادن سطح ولتاژ استفاده میشود زیرا ADC داخلی آردوینو کار بسیار ضعیفی را انجام میدهد، هنگامی که اندازهگیری سطح ولتاژ پایین میآید.
کد کامل آردوینو برای این پروژه در زیر آورده شدهاست. از آنجا که این یک کد Arduino بسیار ساده است، نیازی به کتابخانه نداریم. اما ما باید برخی از ثابتها و پینهای ورودی را همانطور که در کد نشان داده شده است تعریف کنیم.
The void setup بلوک اصلی عملکردی است که در آن عملیات خواندن و نوشتن برای همه ورودیها و خروجیها طبق نیاز انجام میشود.
#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); // read input value 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.99V R7 = 220.8 Ω R6 = 6.82 KΩ R5 = 199.5K R4 = 50.45K R3 = 23.99K R2 = 23.98K R1 = 50.5K
توجه داشته باشید! مقادیر اندازهگیری مقاومت نشان داده شده است زیرا با مقادیر مقاومت اندازهگیری شده میتوانیم مقادیر نظری و مقادیر عملی را از نزدیک مقایسه کنیم.
اکنون برآورد از حسابکننده تقسیم ولتاژ در زیر نشان داده شده است.
خروجی تقسیم ولتاژ 0.1564V است.
محاسبه بهره تقویتکننده غیر معکوس برای 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، ولتاژ خروجی را نشان میدهد، از این رو جریان از طریق Resistor R4 جریان مییابد.
تصویر فوق هنگامی که MOSFET T2 روشن است ولتاژ خروجی را نشان میدهد، از این رو جریان از طریق مقاومت R2 جریان مییابد.
تصویر بالا هنگام روشن بودن ترانزیستور T3 ولتاژ خروجی را نشان میدهد، از این رو جریان از طریق مقاومت R3 جریان مییابد. همانطور که از طرح کلی میبینید T1 ،T2 ماسفت و T3 ،T4 ترانزیستور هستند.
بنابراین هنگامی که از MOSFET استفاده میشود، خطا در دامنه 1 تا 5 میلیولت است اما وقتی ترانزیستورها به عنوان سوییچ استفاده میشوند، ما در محدوده 10 تا 50 میلیولت دچار خطا میشویم.
با نتایج فوق، مشخص است که MOSFET برای این نوع کاربردها، راهحل است و خطاهای نظری و عملی ممکن است به دلیل خطای افست op-amp ایجاد شود.
توجه داشته باشید! که من دو LED را فقط به خاطر آزمایش اضافه کردهام و شما نمیتوانید آنها را در نمودار واقعی بیابید، این کد باینری را نمایش میدهد تا نشان دهد کدام پین فعال است.
جوانب مثبت و منفی تقویت کننده بهره قابل برنامه ریزی
از آنجاکه این مدار ارزان، آسان و ساده است، میتوان آن را در بسیاری از برنامههای مختلف پیادهسازی کرد. در اینجا از MOSFET به عنوان سوئیچ استفاده میشود تا تمام جریان را از طریق مقاومت به زمین منتقل کند به همین دلیل تأثیر دما قطعی نیست و با ابزار محدود و تجهیزات تست من نتوانستم اثرات تغییر درجه حرارت را به شما نشان دهم.
هدف از استفاده از BJT در کنار MOSFETها به این دلیل است که میخواهم به شما نشان دهم که یک BJT برای این نوع کاربردها چقدر ضعیف است. مقادیر مقاومتهای فیدبک و مقاومتهای ورودی باید در محدوده KΩ باشد، به این دلیل که با مقادیر مقاومت کمتر، جریان بیشتری از طریق MOSFET جریان مییابد، بنابراین ولتاژ بیشتر در سراسر MOSFET فرو میرود و باعث نتایج غیرقابل پیشبینی میشود.
تقویت بیشتر
مدار را میتوان برای بهبود عملکرد آن اصلاح کرد، مانند اینکه میتوانیم فیلتر را برای از بین بردن صداهای با فرکانس بالا اضافه کنیم. از آنجا که op-amp ژل LM358 op-amp در این تست استفاده میشود، خطاهای افست op-amp در ولتاژ خروجی نقش عمده ای دارند. بنابراین میتوان آن را با استفاده از یک تقویت کننده به جای LM358 بهبود داد. این مدار فقط برای اهداف نمایش ساخته شده است. اگر به دنبال استفاده از این مدار در یک برنامه کاربردی هستید، برای رسیدن به ثبات مطلق، باید از مقاومت نوع op-amp و مقاومت بالای 0.1 اهم استفاده کنید.