Driver پل بین «فرمان» و «توان» است
میکروکنترلر میگوید چه میخواهد؛ Driver جریان موردنیاز موتور را از منبع توان عبور میدهد. برای موتور DC دوطرفه، H-Bridge چهار سوئیچ قدرت دارد که جهت جریان را عوض میکنند.
MCU PWM/DIR ──> Motor Driver ──> Motor
↑
Battery / Supply
MCU GND ─────────── GND مشترک
منبع موتور را از روی جریان انتخاب کن
فقط ولتاژ نامی مهم نیست. مجموع جریان موتورهای فعال، پیک شروع و Stall را در نظر بگیر. اگر منبع ضعیف باشد، با شروع موتور ولتاژ میافتد و MCU ممکن است Reset شود؛ علامتی که گاهی اشتباه به «باگ کد» نسبت داده میشود.
مسیر توان و مسیر سیگنال
سیمهای موتور جریان و نویز بیشتری دارند. آنها را کوتاه و مناسب نگه دار و تا حد امکان از مسیرهای حساس سنسور جدا کن. خازنهای Decoupling نزدیک برد و طراحی زمین مناسب میتوانند کمک کنند، ولی مقدار/نوع باید با سختافزار واقعی سازگار باشد.
H-Bridge و جهت
Driverهای مختلف API متفاوت دارند؛ بعضی IN1/IN2 + EN و بعضی DIR + PWM. قبل از کد، جدول حقیقت Datasheet/Module را بخوان. هرگز دو حالت ممنوع یا جریان بیش از Rating را حدس نزن.
عیبیابی Reset هنگام موتور
اگر Arduino با روشن شدن موتور Reset میشود:
- ولتاژ تغذیه MCU را هنگام Start موتور اندازه بگیر.
- منبع و جریان قابل تامین را بررسی کن.
- GND و کانکتورها را چک کن.
- موتور را بدون بار و سپس با بار مقایسه کن.
- نویز/Decoupling و مسیر سیمها را بررسی کن.
تمرین
بلوک دیاگرام یک ربات دوچرخ بکش: باتری، Driver، دو موتور، Arduino و سنسور. مسیر توان موتور را با مسیر 5V منطق جدا نشان بده و نقطه GND مشترک را مشخص کن. بعد یک Failure Mode بنویس: «باتری ضعیف در Start» و اندازهگیریای که آن را ثابت میکند.