🧪 شبیهسازی مدار (سیمولیشن مدار) چیست؟ آموزش کامل با مثال (Circuit Simulation)
قبل از اینکه قطعه بخری و هویه را روشن کنی، میتوانی مدار را در کامپیوتر بسازی و ببینی کار میکند یا نه. به این کار شبیهسازی مدار میگویند؛ در گفتوگوی روزمره «سیمولیشن مدار» هم میگویند (از Circuit Simulation) و بعضیها دنبال «مدار سیمولیشن» میگردند. این راهنما توضیح میدهد شبیهساز دقیقاً چه چیزی را حساب میکند، چه نوعهایی دارد، کدام نرمافزار برای چه کاری خوب است و کجا ممکن است اشتباه کند. در آخر هم دو مدار را با عدد و قدمبهقدم شبیهسازی میکنیم.
شبیهسازی مدار یعنی چه؟
شبیهسازی مدار یعنی یک برنامه بهجای تو حساب کند که در هر نقطهی مدار چه ولتاژی هست و از هر سیم چه جریانی میگذرد. تو مدار را میکشی؛ برنامه آن را به چند معادله تبدیل و حلشان میکند. این معادلهها همان قانونهایی است که سر کلاس فیزیک خواندهای:
- قانون اهم (Ohm's Law): ولتاژ دو سر مقاومت برابر جریان ضرب در مقاومت است. (قانون اهم در واژهنامه)
- قانونهای کیرشهف (Kirchhoff's Laws): جریانی که وارد یک گره میشود همانقدر است که خارج میشود، و جمع ولتاژها در هر حلقهی بسته صفر است. (قانون کیرشهف)
- مدل قطعهها (Device Models): برای قطعههای غیرخطی مثل دیود، LED و ترانزیستور، فرمولهایی که رابطهی ولتاژ و جریانشان را توصیف میکنند.
شبیهساز اول مدار تو را به یک نتلیست (Netlist) تبدیل میکند: فهرستی که میگوید هر قطعه بین کدام گرهها (Node) نشسته است. بعد یک دستگاه معادله میسازد و با روشهای عددی، مثل نیوتن-رافسون برای قطعههای غیرخطی، حلش میکند. بیشتر شبیهسازهای حرفهای از نسل SPICE هستند؛ برنامهای که در دههی ۱۹۷۰ در دانشگاه برکلی ساخته شد و هنوز ریشهی LTspice، PSpice و ngspice است.
شبیهسازی مدار الکتریکی دو فایدهی بزرگ دارد. اول، قطعه نمیسوزد و پولی خرج نمیشود. دوم، چیزهایی را میبینی که با چشم دیده نمیشوند؛ مثل جهت جریان در هر سیم یا ولتاژ یک خازن در هر میلیثانیه.
انواع شبیهسازی مدار
«شبیهسازی» فقط یک نوع نیست. بسته به سؤالی که داری، شبیهساز نوع خاصی از تحلیل (Analysis) را اجرا میکند:
| نوع | English | چه سؤالی را جواب میدهد | مثال |
|---|---|---|---|
| تحلیل نقطهی کار DC | DC Operating Point | وقتی همهچیز آرام گرفت، ولتاژ هر گره و جریان هر شاخه چقدر است؟ | مقسم ولتاژ، جریان LED |
| جاروب DC | DC Sweep | اگر ولتاژ منبع یا مقدار یک قطعه را کمکم عوض کنم، خروجی چطور تغییر میکند؟ | منحنی جریان-ولتاژ دیود |
| تحلیل گذرا (حوزهی زمان) | Transient Analysis | مدار در طول زمان چه میکند؟ | شارژ خازن، چشمکزن ۵۵۵ |
| تحلیل AC (پاسخ فرکانسی) | AC Sweep / Frequency Response | بهره و فاز در فرکانسهای مختلف چقدر است؟ | فیلتر RC، تقویتکنندهی صوتی |
| شبیهسازی دیجیتال یا منطقی | Digital / Logic Simulation | با این ورودیهای صفر و یک، خروجی چه میشود؟ | گیتها، نیمجمعکننده، شمارنده |
| شبیهسازی میکروکنترلر | Microcontroller Emulation | اگر این کد روی تراشه اجرا شود، پایهها چه میکنند؟ | چشمکزن آردوینو، سنسور پارک |
| تحلیل مونتکارلو و تلرانس | Monte Carlo / Tolerance | اگر مقاومتها ۵ درصد خطا داشته باشند، مدار هنوز کار میکند؟ | مقسم دقیق، فیلتر |
| شبیهسازی ترکیبی | Mixed-Signal Simulation | آنالوگ، دیجیتال و کد با هم | آردوینویی که یک سنسور آنالوگ میخواند |
هرکدام را کی لازم داری؟
- نقطهی کار DC برای بیشتر مدارهای ساده کافی است: باتری، مقاومت، LED، کلید. جواب یک عکس فوری از مدار است.
- تحلیل گذرا وقتی لازم است که چیزی با زمان عوض میشود: خازن پر و خالی میشود، تایمر ۵۵۵ چشمک میزند یا رله وصل و قطع میشود. شبیهساز زمان را به قدمهای خیلی کوچک تقسیم میکند و مدار را قدمبهقدم جلو میبرد.
- تحلیل AC برای طراحی فیلتر و تقویتکننده است. خروجیاش معمولاً نمودار بود (Bode Plot) است: بهره بر حسب فرکانس.
- شبیهسازی دیجیتال ولتاژ را فقط صفر یا یک میبیند و به همین دلیل خیلی سریع است؛ برای مدارهای منطقی بزرگ مناسب است.
- شبیهسازی میکروکنترلر کد تو را روی یک تراشهی مجازی اجرا میکند؛ این همان کاری است که برای آردوینو، ESP32 و پیکو لازم داری.
تینکرکد فارسی کدام را انجام میدهد؟
بگذار صادق باشیم: هیچ شبیهسازی همهی اینها را برای همهی سطحها خوب انجام نمیدهد. در تینکرکد فارسی، مود «ساده» در هر لحظه مدار را با تحلیل گره (Nodal Analysis) حل میکند و برای خازنها، تایمر ۵۵۵ و رلهها حالت گذرا را قدمبهقدم در زمان جلو میبرد؛ گیتهای منطقی، آپامپ و آیسیها هم مدل رفتاری دارند. مود «آردوینو» کد را روی یک آردوینوی مجازی اجرا میکند و همان موتور مدار، ولتاژ پایهها و سنسورها را حساب میکند؛ یعنی یک شبیهسازی ترکیبی ساده. چیزی که ندارد تحلیل AC و نمودار پاسخ فرکانسی است؛ برای طراحی فیلتر و تقویتکننده سراغ LTspice یا ngspice برو.
مقایسهی نرمافزارهای شبیهسازی مدار
این جدول ابزارهای معروف را با اسم فارسی و انگلیسی کنار هم گذاشته است. قیمت را عمداً نیاوردهایم، چون مدام عوض میشود؛ ملاک انتخاب باید کاری باشد که میخواهی انجام بدهی.
| ابزار | English | کجا اجرا میشود | نقطهی قوت | آردوینو؟ |
|---|---|---|---|---|
| تینکرکد فارسی | Tinkercad.ir | مرورگر، کاملاً فارسی | مدار بدون کد با فیزیک واقعی، عیبیاب فارسی، درس و پروژهی آماده | بله؛ Uno و Nano (اجرای ESP32، پیکو و مگا جزو اشتراک Plus است) |
| تینکرکد سرکیت | Autodesk Tinkercad Circuits | مرورگر، انگلیسی | ساده و آموزشی، بردبورد و قطعههای پایه | بله، Uno |
| ووکوی | Wokwi | مرورگر | میکروکنترلرها: آردوینو، ESP32، رزبری پای پیکو و STM32، بهعلاوهی وایفای مجازی | بله |
| پروتئوس | Proteus (Labcenter) | دسکتاپ ویندوز | شبیهسازی ترکیبی SPICE و میکروکنترلر، طراحی PCB | بله |
| التیاسپایس | LTspice (Analog Devices) | دسکتاپ (ویندوز و مک) | شبیهسازی دقیق آنالوگ و منبع تغذیهی سوئیچینگ | نه |
| فالستاد | Falstad Circuit Simulator | مرورگر | انیمیشن جریان؛ عالی برای فهم شهودی مدار | نه |
| مولتیسیم | NI Multisim | دسکتاپ ویندوز، نسخهی آنلاین هم دارد | ابزارهای مجازی آزمایشگاه؛ رایج در دانشگاهها | محدود |
| ایزیایدیای | EasyEDA | مرورگر و دسکتاپ | از شماتیک تا PCB در یک جا، با شبیهسازی پایه | نه |
| کایکد + انجیاسپایس | KiCad + ngspice | دسکتاپ، متنباز | طراحی PCB حرفهای با شبیهساز SPICE داخلی | نه |
| پیاسپایس | PSpice (Cadence OrCAD) | دسکتاپ ویندوز | استاندارد صنعتی، مدلهای آمادهی سازندههای قطعه | نه |
| فریتزینگ | Fritzing | دسکتاپ | اساساً ابزار رسم: نمای بردبورد و مستندسازی پروژه؛ شبیهساز نسخههای جدیدش فقط برای مدارهای DC خیلی ساده است | فقط رسم، اجرای کد ندارد |
یک راهنمای سریع برای انتخاب:
- تازه شروع کردهای یا معلمی: یک شبیهساز آنلاین فارسی که درس و پروژهی آماده دارد. مقایسهی کاملتر را در بهترین شبیهساز مدار آنلاین فارسی ببین.
- پروژهی ESP32، پیکو و اینترنت اشیا: ووکوی؛ راهنمای فارسیاش شبیهسازی مدار در ووکوی است.
- درس الکترونیک دانشگاه، فیلتر و تقویتکننده: LTspice یا Multisim.
- طراحی برد مدار چاپی: KiCad یا EasyEDA.
شبیهسازی کجا اشتباه میکند؟
شبیهساز فقط همانقدر درست است که مدلهایش. اینها جاهایی است که دنیای واقعی با صفحهی نمایش فرق دارد:
- قطعههای ایدهآل (Ideal Parts): سیم در شبیهساز تقریباً مقاومت ندارد و اتصال بردبورد همیشه محکم است. در واقعیت سیم جامپر شل، فنر خستهی بردبورد و باتری نیمهخالی کم پیدا نمیشوند.
- بدون تلرانس (No Tolerances): مقاومت ۱ کیلواهمِ شبیهساز دقیقاً ۱۰۰۰ اهم است؛ مقاومت واقعی با تلرانس ۵ درصد هر عددی بین ۹۵۰ و ۱۰۵۰ اهم میتواند باشد. خازن الکترولیتی حتی ۲۰ درصد خطا دارد.
- بدون نویز (No Noise): در شبیهساز ساده نه نویز برق هست، نه تداخل موتور، نه سیمهای بلندی که مثل آنتن عمل کنند. پایهی ورودی شناور آردوینو در واقعیت عددهای تصادفی میخواند.
- لرزش کلید (Switch Bounce): دکمهی واقعی موقع فشار چند بار در چند میلیثانیه وصل و قطع میشود. اگر کدت دیبانس نداشته باشد، یک فشار را چند فشار میشمارد.
- گرما و دما: مشخصات ترانزیستور و LED با دما عوض میشود و هر مقاومت توان محدودی دارد (معمولاً ۱/۴ وات).
- اجزای پنهان (Parasitics): خازن و سلف ناخواستهی سیمها و بردبورد در فرکانسهای بالا مهم میشوند.
- موتور و بارهای سلفی: جریان راهاندازی موتور چند برابر جریان کار آن است و ولتاژ برگشتیاش میتواند ترانزیستور را خراب کند.
- زمانبندی کد: آردوینوی مجازی ممکن است در زمانبندیهای میکروثانیهای دقیقاً مثل تراشهی واقعی رفتار نکند.
پس چرا هنوز روی سختافزار تست میکنیم؟ چون شبیهسازی میگوید طراحی درست است، نه اینکه ساخت درست است. ترتیب درست این است: شبیهسازی برای پیدا کردن اشتباههای طراحی، بردبورد برای پیدا کردن اشتباههای ساخت، و مولتیمتر برای مقایسهی این دو. مقالهی شبیهساز یا قطعهی واقعی همین مقایسه را برای آردوینو کامل کرده است.
مثال ۱: شبیهسازی مدار تقسیم ولتاژ (Voltage Divider) قدمبهقدم
مقسم ولتاژ دو مقاومت سری است که ولتاژ را به نسبت مقدارشان تقسیم میکنند. فرمولش این است: Vout = Vin × R2 ÷ (R1 + R2). اول با دست حساب میکنیم، بعد در تینکرکد فارسی شبیهسازی میکنیم و در آخر مقایسه.
- شبیهساز را باز کن و مود «ساده» را انتخاب کن.
- یک باتری ۹ ولت، دو مقاومت و یک مولتیمتر روی صفحه بکش.
- روی هر مقاومت بزن و در پنل ویژگیها مقدارش را ۱ کیلواهم بگذار.
- سیمکشی: مثبت باتری ← مقاومت اول (R1) ← مقاومت دوم (R2) ← منفی باتری.
- سر مثبت مولتیمتر را به نقطهی وسط دو مقاومت و سر منفیاش را به منفی باتری وصل کن و حالتش را روی ولت (V) بگذار.
- اجرا را بزن.
حساب دستی: 9 × 1000 ÷ 2000 = 4.5 ولت. مولتیمتر هم حدود ۴٫۵ ولت نشان میدهد. (باتری مجازی هم مثل باتری واقعی کمی مقاومت داخلی دارد، پس رقمهای آخر اعشار ممکن است کمی کمتر باشند.) حالا عددها را عوض کن و هر بار اول خودت حدس بزن:
| R1 | R2 | ولتاژ وسط (حسابشده) | جریان مدار |
|---|---|---|---|
| ۱ کیلواهم | ۱ کیلواهم | ۴٫۵ ولت | ۴٫۵ میلیآمپر |
| ۱ کیلواهم | ۲٫۲ کیلواهم | حدود ۶٫۲ ولت | حدود ۲٫۸ میلیآمپر |
| ۱۰ کیلواهم | ۱ کیلواهم | حدود ۰٫۸ ولت | حدود ۰٫۸ میلیآمپر |
| ۱۰ کیلواهم | ۱۰ کیلواهم | ۴٫۵ ولت | ۰٫۴۵ میلیآمپر |
ردیف آخر درس مهمی دارد: تا وقتی نسبت دو مقاومت ثابت بماند، ولتاژ وسط هم ثابت است، ولی جریان ده برابر کمتر میشود. یعنی مقسم با مقاومتهای بزرگتر باتری کمتری مصرف میکند. برای دیدن جریان، مولتیمتر دوم را روی آمپر (A) بگذار و سری در مسیر قرار بده.
آزمایش بار: چرا مقسم ولتاژ منبع تغذیه نیست؟
مدار را به حالت ۱ کیلو و ۱ کیلو برگردان. حالا یک مقاومت ۲۲۰ اهم و یک LED قرمز را بین نقطهی وسط و منفی باتری بگذار. ولتاژ وسط از ۴٫۵ ولت به حدود ۲٫۵ ولت میافتد! چون LED هم جریان میکشد و عملاً با R2 موازی شده است. همین آزمایش ساده نشان میدهد چرا برای تغذیهی یک بار از رگولاتور ولتاژ استفاده میکنند و مقسم را فقط برای اندازهگیری و ساختن ولتاژ مرجع (مثلاً برای ورودی آنالوگ آردوینو) به کار میبرند.
مدار آمادهی همین آزمایش مدار تقسیم ولتاژ است و حساب سریعش را ماشینحساب مقسم ولتاژ انجام میدهد.
مثال ۲: شبیهسازی مدار LED با مقاومت (LED with Resistor)
- یک باتری ۹ ولت، یک مقاومت و یک LED قرمز بچین.
- مسیر: مثبت باتری ← مقاومت ← پایهی بلند LED (آند) ← پایهی کوتاه (کاتد) ← منفی باتری.
- مقاومت را ۲۲۰ اهم بگذار و اجرا را بزن. LED پرنور روشن میشود.
- مولتیمتر را روی آمپر (A) بگذار و آن را سری بین مقاومت و LED قرار بده تا جریان را بخوانی.
حساب دستی با افت ولتاژ حدود ۲ ولت برای LED قرمز: (9 − 2) ÷ 220 ≈ 0.032 آمپر، یعنی حدود ۳۲ میلیآمپر. LED روشن است و نمیسوزد، ولی این جریان از ۲۰ میلیآمپرِ پیشنهادی بیشتر است؛ LED واقعی با این جریان داغتر کار میکند و عمرش کوتاهتر میشود. حالا مقاومت را عوض کن و نتیجه را با این جدول مقایسه کن:
| مقاومت | جریان تقریبی | چیزی که میبینی |
|---|---|---|
| بدون مقاومت | خیلی زیاد | LED میسوزد (در شبیهساز از حدود ۴۰ میلیآمپر به بالا) |
| ۱۰۰ اهم | حدود ۷۰ میلیآمپر | باز هم میسوزد |
| ۲۲۰ اهم | حدود ۳۲ میلیآمپر | خیلی پرنور، بیش از حد پیشنهادی |
| ۳۳۰ اهم | حدود ۲۱ میلیآمپر | پرنور، در مرز مجاز |
| ۴۷۰ اهم | حدود ۱۵ میلیآمپر | روشنایی خوب و امن؛ انتخاب پیشنهادی |
| ۱ کیلواهم | حدود ۷ میلیآمپر | کمنورتر ولی کاملاً واضح |
| ۱۰ کیلواهم | کمتر از ۱ میلیآمپر | خیلی کمنور |
دو آزمایش دیگر هم انجام بده. اول، LED را برعکس بگذار: جریان صفر میشود و LED فقط خاموش میماند. دوم، ولتاژ دو سر LED را با هر مقاومت بخوان: تقریباً ثابت و بین ۱٫۶ تا ۲ ولت میماند، هر مقاومتی که بگذاری. این همان رفتار غیرخطی دیود است که شبیهساز با مدلش حساب میکند و دلیل اینکه LED بدون مقاومت خودش جریانش را محدود نمیکند. نسخهی آمادهی این مدار مدار LED با مقاومت است و چراییاش در چرا LED بدون مقاومت میسوزد؟ آمده.
۱۵ مدار که ارزش دارد اول شبیهسازی کنی
این مدارها از ساده به پیچیده مرتب شدهاند و هرکدام یک مفهوم مهم را نشان میدهد. همه در شبیهساز آمادهاند:
| # | اسم فارسی | English | چه چیزی یاد میدهد | صفحه |
|---|---|---|---|---|
| ۱ | مدار LED با مقاومت | LED with Resistor | قانون اهم و محدود کردن جریان | باز کن |
| ۲ | مدار تقسیم ولتاژ | Voltage Divider | تقسیم ولتاژ و اثر بار | باز کن |
| ۳ | مدار دو LED سری | Two LEDs in Series | جریان مشترک، ولتاژ تقسیمشده | باز کن |
| ۴ | مدار دو LED موازی | Two LEDs in Parallel | ولتاژ مشترک، جریان تقسیمشده | باز کن |
| ۵ | مدار اتصال کوتاه | Dead Short | چرا باتری داغ میشود | باز کن |
| ۶ | مدار شارژ خازن | Capacitor Charging | تحلیل گذرا و ثابت زمانی RC | باز کن |
| ۷ | مدار محو شدن آرام LED | Capacitor Fade-out | خازن بهعنوان باتری کوچک | باز کن |
| ۸ | مدار دیود درستجهت | Diode Forward Bias | جریان یکطرفه و افت ولتاژ دیود | باز کن |
| ۹ | مدار LED با ترانزیستور | Transistor Switch | کنترل جریان بزرگ با جریان کوچک | باز کن |
| ۱۰ | مدار چراغ خواب خودکار | Automatic Night Light | حسگر نور و مقسم ولتاژ روی بیس | باز کن |
| ۱۱ | مدار چشمکزن ۵۵۵ | 555 Astable Blinker | نوسانساز بدون میکروکنترلر | باز کن |
| ۱۲ | مدار رله با دکمه | Relay on a Button | کلید آهنربایی و تماس NO | باز کن |
| ۱۳ | مدار گیت XOR | XOR Gate | منطق دیجیتال و جدول درستی | باز کن |
| ۱۴ | مدار چراغ راهپله | Two-way (Stairway) Switch | کلید تبدیل و سیمکشی خانه | باز کن |
| ۱۵ | مدار چشمکزن آردوینو | Arduino Blink | شبیهسازی میکروکنترلر و کد | باز کن |
روال کاری پیشنهادی برای سیمولیشن مدار
- قبل از اجرا حدس بزن. حتی یک حساب تقریبی با قانون اهم کافی است.
- شبیهسازی کن و مقایسه کن. اگر عدد خیلی با حدست فرق داشت، یا حساب اشتباه است یا سیمکشی.
- هر بار فقط یک چیز را عوض کن، نه چند چیز با هم؛ وگرنه نمیفهمی کدام تغییر اثر داشت.
- حالتهای خراب را هم امتحان کن: باتری ضعیف، قطعهی برعکس، سیم جداشده. عیبیاب «چرا کار نمیکند؟» در هرکدام میگوید چه شده.
- روی بردبورد ببند و همان نقطهها را با مولتیمتر اندازه بگیر. اختلاف کم عادی است؛ اختلاف زیاد یعنی اشتباه ساخت.
برای ساخت قدمبهقدم یک مدار، از ایده تا بردبورد، راهنمای ساخت مدار از صفر را نوشتهایم. همهی امکانات شبیهساز فارسی هم در صفحهی شبیه ساز مدار آنلاین خلاصه شده است.
یک مدار را همین حالا شبیهسازی کن 🧪سؤالهای رایج
شبیه سازی مدار چیست؟
شبیهسازی مدار یعنی یک نرمافزار ولتاژ هر نقطه و جریان هر سیم مدار را با قانون اهم، قانونهای کیرشهف و مدل قطعهها حساب کند تا قبل از ساختن مدار واقعی ببینی درست کار میکند یا نه.
سیمولیشن مدار با شبیه سازی مدار فرقی دارد؟
نه، هر دو یک چیزند. سیمولیشن از کلمهی انگلیسی Simulation آمده و شبیهسازی معادل فارسی آن است. «مدار سیمولیشن» هم همان معنا را دارد.
بهترین نرم افزار شبیه سازی مدار برای شروع کدام است؟
برای یادگیری، مدارهای ساده و آردوینو یک شبیهساز آنلاین مثل تینکرکد فارسی یا Falstad کافی است. برای طراحی آنالوگ دقیق LTspice و برای پروژههای ESP32 و پیکو ووکوی مناسبتر است.
اگر مدار در شبیهساز کار کرد، در واقعیت هم حتماً کار میکند؟
نه همیشه. شبیهساز قطعهها را ایدهآل فرض میکند و تلرانس، نویز، لرزش کلید و اتصال شل بردبورد را نمیبیند. شبیهسازی اشتباههای طراحی را پیدا میکند و تست روی بردبورد اشتباههای ساخت را.
میشود مدار آردوینو را هم شبیه سازی کرد؟
بله. در مود آردوینوی تینکرکد فارسی کد روی یک آردوینوی مجازی اجرا میشود و LED، سروو، بازر و سنسورها به آن واکنش نشان میدهند.