🔺 آپامپ (تقویتکنندهی عملیاتی) (LM358 Op-Amp)
| اسم انگلیسی | LM358 Op-Amp |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | ⬛ آیسی، درایور و رگولاتور |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
آپامپ (Op-Amp) یا تقویتکنندهی عملیاتی آیسی کوچکی است که ولتاژ دو ورودیاش را با هم مقایسه میکند و اختلافشان را بسیار زیاد (حدود صد هزار برابر) بزرگ میکند. رایجترین و ارزانترینش در کیتها LM358 است: دو آپامپ در یک تراشهی هشتپایه که با همان ۵ ولت آردوینو کار میکند. با آن مقایسهگر نور و دما، تقویتکنندهی سیگنال ضعیف میکروفون و فیلتر میسازی. در این صفحه LM358 را کنار آردوینو اونو میبندی و با کد میبینی دقیقاً چه تصمیمی میگیرد.
آپامپ در ووکوی (Wokwi)
تا جایی که میدانیم ووکوی نسخهی آمادهی آپامپ را ندارد؛ تمرکز شبیهسازی ووکوی روی میکروکنترلر و ماژولهاست و مدار آنالوگ با مقاومت و آیسی را با جزئیات حل نمیکند. نزدیکترین جایگزین این است که کار مقایسهگر را در کد انجام بدهی: دو ولتاژ را با analogRead بخوان (مثلاً از wokwi-photoresistor-sensor و wokwi-potentiometer) و با یک if مقایسه کن. جالب است بدانی پایهی DO همان ماژول نور، روی نسخهی واقعی، خروجی یک آیسی مقایسهگر (LM393) است؛ یعنی همین ایده، آماده روی برد.
خود LM358 با مقاومت و LED در مود سادهی شبیهساز مدار تینکرکد فارسی رایگان شبیهسازی میشود و در مود آردوینو هم هست؛ مثال آمادهاش Op-amp با تغذیه است.
سیمکشی با آردوینو
مدار ما یک مقایسهگر نور (Light Comparator) است: مقسم ولتاژ LDR و مقاومت ۱۰ کیلواهم به ورودی +، و یک پتانسیومتر بهعنوان ولتاژ مرجع به ورودی −. خروجی هم به پین دیجیتال 2 میرود و هم از راه یک مقاومت به LED. برای عیبیابی، دو ورودی را به A0 و A1 هم میدهیم تا ببینی آپامپ چه چیزی را با چه چیزی مقایسه میکند. شمارش پایهها از کنار نیمدایرهی روی بدنه شروع میشود و پادساعتگرد جلو میرود.
| پایهی LM358 | شماره | وصل به |
|---|---|---|
| OUT A | ۱ | پین 2 آردوینو، و از راه مقاومت ۲۲۰ اهم به آند LED (کاتد به GND) |
| IN− A | ۲ | سر وسط پتانسیومتر ۱۰ کیلواهم (ولتاژ مرجع) و پین A1 |
| IN+ A | ۳ | نقطهی وسط LDR (از 5V) و مقاومت ۱۰ کیلواهم (به GND)، و پین A0 |
| GND | ۴ | GND |
| IN+ B و IN− B | ۵ و ۶ | آپامپ دوم بیکار است: پایهی ۵ به GND و پایهی ۶ به پایهی ۷ |
| VCC | ۸ | 5V |
با این چیدمان، هرچه نور بیشتر باشد ولتاژ IN+ بالاتر میرود و وقتی از مرجع رد شود خروجی بالا میرود. اگر میخواهی LED در تاریکی روشن شود، جای IN+ و IN− را عوض کن. برای حساب مقسم، ماشینحساب مقسم ولتاژ کمکت میکند.
کد نمونه
// LM358 comparator next to an Arduino Uno.
// IN+ (light divider) -> A0, IN- (reference pot) -> A1, OUT -> D2.
const int OUT_PIN = 2;
void setup() {
Serial.begin(9600);
pinMode(OUT_PIN, INPUT);
}
void loop() {
float vPlus = analogRead(A0) * 5.0 / 1023.0;
float vMinus = analogRead(A1) * 5.0 / 1023.0;
int out = digitalRead(OUT_PIN);
Serial.print("IN+:");
Serial.print(vPlus, 2);
Serial.print(" IN-:");
Serial.print(vMinus, 2);
Serial.print(" OUT:");
Serial.println(out);
// what the op-amp should decide on its own (skip the grey zone)
if (fabs(vPlus - vMinus) > 0.1) {
bool expected = vPlus > vMinus;
if (expected != (out == HIGH)) {
Serial.println("check wiring: OUT disagrees with the inputs");
}
}
delay(300);
}
این برنامه آردوینو را به یک ولتمتر دوکاناله کنار آپامپ تبدیل میکند. اگر خروجی با ورودیها نخواند، یعنی یا تغذیهی آیسی وصل نیست یا پایهها را اشتباه شمردهای. نکتهی مهم: خروجی LM358 با تغذیهی ۵ ولت تا حدود ۳٫۵ ولت بالا میرود، نه ۵ ولت؛ آردوینو اونو از حدود ۳ ولت به بالا را HIGH میخواند، پس مشکلی پیش نمیآید.
اشتباههای رایج
- تغذیهی آیسی فراموش شده: بدون پایهی ۸ (5V) و پایهی ۴ (GND) هیچ آپامپی کار نمیکند، حتی اگر ورودیها کاملاً درست باشند.
- انتظار خروجی ۵ ولتی: LM358 از نوع rail-to-rail نیست و خروجیاش حدود ۱٫۵ ولت زیر تغذیه میماند. اگر خروجی کامل لازم داری، آپامپ rail-to-rail بگیر.
- لرزش خروجی نزدیک آستانه: وقتی دو ورودی تقریباً برابرند، خروجی مدام بالا و پایین میپرد. یک مقاومت بزرگ (مثلاً یک مگااهم) از خروجی به ورودی + کمی هیسترزیس میدهد.
- شمارش برعکس پایهها: پایهی ۱ زیر نقطه یا کنار نیمدایره است؛ آیسی را از پشت نشمار.
آموزشهای مرتبط
- ۱۵ مدار پایهی الکترونیک برای آردوینوکارها (مقسم ولتاژ و مدارهای اطراف آن)
- سنسور نور LDR با آردوینو
- سنسور نور (LDR) در ووکوی
- ووکوی دقیقاً چه چیزی را شبیهسازی میکند؟
- آپامپ در واژهنامه
سؤالهای رایج
آپامپ LM358 را میشود با ۵ ولت آردوینو تغذیه کرد؟
بله. LM358 با تغذیهی تک از حدود ۳ تا ۳۲ ولت کار میکند، پس پایهی ۸ را به 5V و پایهی ۴ را به GND بزن. فقط بدان خروجیاش با تغذیهی ۵ ولت حداکثر به حدود ۳٫۵ ولت میرسد که آردوینو اونو هنوز آن را HIGH میخواند.
ووکوی آپامپ دارد؟
تا جایی که میدانیم ووکوی قطعهی آمادهی آپامپ ندارد. میتوانی مقایسه را در کد با analogRead انجام بدهی، یا خود LM358 را در شبیهساز مدار تینکرکد فارسی رایگان امتحان کنی.
فرق آپامپ LM358 با مقایسهگر LM393 چیست؟
هر دو دو ولتاژ را مقایسه میکنند، ولی LM393 مخصوص مقایسه ساخته شده، خروجی کلکتور باز دارد و مقاومت بالاکش میخواهد. LM358 تقویتکننده است و با دو مقاومت بازخورد میتواند سیگنال ضعیف را با بهرهی دلخواه بزرگ کند.