داشبورد›رودمپ›میکروکنترلر
🧩 میکروکنترلر · درس ۳

ADC، PWM، Timer و Serial

با ابزارهای داخلی MCU برای خواندن مقدار آنالوگ، ساخت خروجی شبه‌آنالوگ و ارتباط آشنا می‌شوی.

⏱ ۱۶ دقیقه 🌱 آسان ⭐ +۳۰ XP 🧠 کوئیز الزامی
🎯
بعد از این درس

قراره چی یاد بگیری؟

  • فرق ADC و PWM را توضیح بدهی.
  • Timer را به عنوان منبع زمان‌بندی مستقل از delay بشناسی.
  • UART/Serial را برای دیباگ و ارتباط ساده تشخیص بدهی.

ADC؛ تبدیل ولتاژ به عدد

دنیای واقعی فقط صفر و یک نیست. سنسورهایی داریم که ولتاژ بین ۰ و ولتاژ مرجع تولید می‌کنند. ADC این ولتاژ را به عدد تبدیل می‌کند. اگر ADC ده‌بیتی باشد، ۱۰ بیت یعنی 2^10 = 1024 سطح؛ معمولا عدد ۰ تا ۱۰۲۳.

رزولوشن به معنی دقت مطلق نیست. نویز، ولتاژ مرجع و کیفیت سنسور هم روی نتیجه اثر دارند.

PWM؛ کنترل میانگین با پالس

PWM خروجی آنالوگ واقعی نیست. Pin با سرعت بین HIGH/LOW سوئیچ می‌کند و نسبت زمان HIGH به کل دوره را Duty Cycle می‌نامیم.

25%:  █___█___█___
50%:  ██__██__██__
75%:  ███_███_███_

برای LED چشم ما میانگین روشنایی را می‌بیند؛ برای موتور Driver می‌تواند اثر توان متوسط متفاوت ایجاد کند. فرکانس PWM هم در بعضی کاربردها مهم است.

Timer؛ ساعت داخلی برای زمان‌بندی

Timer سخت‌افزاری شمارنده‌ای است که با Clock جلو می‌رود. MCU می‌تواند از آن برای PWM، اندازه‌گیری زمان یا Interrupt دوره‌ای استفاده کند. این باعث می‌شود بسیاری از کارهای زمانی بدون توقف کامل CPU انجام شوند.

UART / Serial

UART بیت‌ها را سریالی منتقل می‌کند. در Arduino، Serial اغلب برای ارتباط برد با کامپیوتر و دیدن Log استفاده می‌شود:

Serial.begin(9600);
Serial.println(sensorValue);

دو طرف باید تنظیمات سازگار مثل Baud Rate داشته باشند. اگر Baud اشتباه باشد ممکن است متن نامفهوم ببینی.

یک سناریوی کامل

پتانسیومتر → ADC → عدد → تصمیم برنامه → PWM → روشنایی LED. در همین زنجیره می‌توان مقدار ADC و Duty Cycle را روی Serial چاپ کرد و فهمید مشکل در ورودی است یا خروجی.

تمرین

اگر ADC ده‌بیتی مقدار ۵۱۲ بدهد، در مدل ایده‌آل تقریبا وسط محدوده است. توضیح بده چگونه همین مقدار را به PWM تقریبا ۵۰٪ تبدیل می‌کنی. لازم نیست فرمول دقیق map را حفظ کنی؛ باید بفهمی محدوده ورودی و خروجی فرق دارند و باید Scale شوند.

🃏
مرور سریع

فلش کارت‌ها

۱ / ۳
🧠
برای تکمیل درس لازمه

آزمون کوتاه همین درس

حد نصاب ۷۰٪

برای عبور از درس، مفهوم را روی یک موقعیت واقعی به کار ببر؛ جواب‌ها از حفظ یک جمله نیستند.

۱

ADC ده‌بیتی چند سطح کدگذاری دارد؟

۲ امتیاز
۲

PWM روی GPIO معمولی لزوما یک ولتاژ DC پیوسته و واقعی تولید می‌کند.

۱ امتیاز
۳

اگر Serial Monitor متن نامفهوم نشان دهد، یکی از اولین چیزهایی که باید بررسی شود چیست؟

۲ امتیاز
۳ سوال هنوز جواب نداره.
🔗
برای عمیق‌تر شدن

منابع تکمیلی