یک کامپیوتر کوچک برای کنترل
میکروکنترلر یا MCU تراشهای است که معمولا CPU، حافظه و واحدهای ورودی/خروجی را در یک بسته دارد. هدفش اجرای یک برنامه کنترل روی سختافزار است؛ مثلا خواندن سنسور، تصمیمگیری و تولید PWM برای موتور.
مدل ساده:
┌──────── MCU ────────┐
Sensor ───>│ GPIO / ADC │
│ CPU │───> GPIO / PWM ───> Driver
│ Flash + RAM │
PC/Module <│ UART / I2C / SPI │
└─────────────────────┘
بخشهای اصلی
- CPU: دستورهای برنامه را اجرا میکند.
- Flash: برنامه در آن ذخیره میشود و با خاموش شدن معمولا باقی میماند.
- RAM: متغیرها و داده موقت زمان اجرا؛ ظرفیت محدودتر و فرّار.
- GPIO: پایههای ورودی/خروجی دیجیتال.
- ADC: ولتاژ آنالوگ را به عدد تبدیل میکند.
- Timer/PWM: زمانبندی و تولید سیگنالهای دقیق.
- UART/I2C/SPI: روشهای ارتباط با ماژولها و بردهای دیگر.
MCU با لپتاپ چه فرقی دارد؟
لپتاپ سیستمعامل، حافظه و پردازش بسیار بیشتری دارد و برای کارهای عمومی ساخته شده. MCU معمولا بدون سیستمعامل کامل، با مصرف کم و کنترل مستقیم پایهها کار میکند. این به معنی «ضعیف و بیفایده» نیست؛ برای کنترل real-time ساده، روشن شدن سریع و مصرف کم، دقیقا مناسب است.
مثال ربات
یک Arduino Uno از MCU خانواده AVR استفاده میکند. برنامه در Flash قرار میگیرد، متغیرهای لحظهای در RAM هستند، سنسور از GPIO/ADC خوانده میشود و خروجی PWM به Driver موتور میرود. خود Driver توان موتور را تامین میکند؛ MCU فقط فرمان منطقی میدهد.
محدودیت مهم
هر MCU ولتاژ منطقی، حافظه، سرعت، تعداد Timer و Peripheral متفاوت دارد. قبل از اتصال ماژول باید Datasheet/Board documentation را ببینی. «همه میکروکنترلرها ۵ ولتاند» تصور غلطی است؛ ESP32 مثلا معمولا منطق ۳.۳V دارد.
تمرین
برای یک «دماسنج با فن» چهار جزء را مشخص کن: داده کجا وارد MCU میشود، کدام بخش تصمیم میگیرد، برنامه کجا ذخیره است و خروجی چگونه به فن میرسد. اگر فن جریان بالایی دارد، Driver را هم در بلوک دیاگرام بگذار.