راهنمای کلی عیبیابی آردوینو
یک روش نظاممند برای عیبیابی آردوینو یاد میگیرید؛ خواندن پیامهای کنسول، جدا کردن مشکل نرمافزار از سختافزار و جدول ارجاع به درسهای تخصصی خطاها.
آنچه در این درس میآموزید
- پیامهای کنسول IDE 2 را نظاممند و از پایین به بالا بخوانید
- مشکل را به نرمافزار یا سختافزار تفکیک کنید با آپلود اسکچ سالم
- پس از هر تغییر سیمکشی، آیین پنجگامی بازبینی را اجرا کنید
فهرست مطالب
آردوینو کار نمیکند؛ از کجا شروع کنید؟ تفاوت مبتدی و حرفهای در «تصادف دانستن» نیست، در روش است: حرفهایها مشکل را مرحلهبهمرحله محدود میکنند تا فقط یک علت باقی بماند. این درس نقشهٔ راه کل دورهٔ عیبیابی است؛ چهار درس بعدی هر کدام یک دسته از خطاها را عمیق بررسی میکنند و اینجا یاد میگیرید کِی سراغ کدام بروید.
خواندن پیام کنسول در IDE 2
هر خطایی که IDE نشان میدهد در کنسول پایین پنجره ظاهر میشود؛ متن خطا معمولاً نارنجی یا قرمز است. دو قاعدهٔ خواندن:
- از پایین به بالا بخوانید. پایینترین خط کنسول، نتیجهٔ نهایی (مثلاً
exit status 1) است و هرچه بالاتر بروید جزئیات بیشتری میبینید؛ نخستین جایی که پیام خطای واقعی با نام فایل و شمارهٔ خط آمده، ریشهٔ مشکل است و خطاهای بعدی اغلب فقط پیامد هماناند. - فقط اولین خطا را اصلاح کنید و دوباره کامپایل کنید. یک اشتباه کوچک میتواند ده خطای زنجیرهای بسازد؛ اصلاح تکبهتک از گمشدن جلوگیری میکند.
جدا کردن نرمافزار از سختافزار
پیش از هر چیز باید بدانید مشکل در کد است یا در مدار. آزمون طلایی: یک اسکچ سالم و شناختهشده آپلود کنید — همان Blink درسهای قبل که مطمئنید درست کار میکند:
- Blink درست اجرا شد؟ برد، کابل و پورت سالماند؛ پس مشکل در کد یا سیمکشیِ خودِ شماست.
- Blink هم کار نکرد؟ مشکل پایهای است: تغذیه، کابل، درایور یا پورت؛ سراغ درسهای آپلود و سختافزار بروید.
قاعدهٔ کنار آن: هر بار فقط یک چیز را عوض کنید. اگر همزمان کد و سیمکشی و پورت را تغییر دهید و درست شود، نمیدانید کدام علت واقعی بود و دفعهٔ بعد همان دوباره گریبانتان را میگیرد.
نقشهٔ دستهبندی خطاها
جدول زیر نشانههای پرتکرار را به درس مرجع هر کدام وصل میکند:
| نشانهٔ اصلی | دسته | درس مرجع |
|---|---|---|
| هنگام Verify خطای قرمز میدهد؛ اصلاً کامپایل نمیشود | نرمافزار — کامپایل | compile-errors |
| کامپایل سبز است اما هنگام Upload خطا میدهد | ارتباط — آپلود | upload-errors |
| برد در Tools > Port دیده نمیشود یا پورت خاکستری است | ارتباط — آپلود | upload-errors |
| LED روشن نمیشود، برد خودش ریست میشود، رگولاتور داغ است | سختافزار — تغذیه | hardware-power-issues |
| سریال مانیتور خالی است، حروف نامفهوم میدهد یا ورودی نمیگیرد | ارتباط — سریال | serial-monitor-issues |
جدول رفع سریع ده خطای رایج
| نشانه | علت محتمل | راهحل یکخطی |
|---|---|---|
| برد در فهرست پورتها نیست | کابل فقط شارژی است یا درایور نصب نیست | کابل USB دادهدار بزنید یا درایور CH340 را نصب کنید |
expected ';' before '}' token |
جاافتادن سمیکالن در خط قبل | سمیکالن انتهای خط قبلی را اضافه کنید |
'ledPin' was not declared in this scope |
غلط تایپی یا ناهمخوانی بزرگ/کوچکی حروف | نام را دقیقاً مثل محل تعریف بنویسید |
not in sync: resp=0x00 هنگام آپلود |
برد یا پورت اشتباه انتخاب شده | از Tools برد و پورت درست را انتخاب کنید |
Access is denied هنگام آپلود |
برنامهٔ دیگری پورت را گرفته | سریال مانیتور و برنامههای سریال را ببندید |
invalid device signature |
برد دیگری غیر از Uno انتخاب شده | از Tools > Board برد واقعی را انتخاب کنید |
| LED روشن نمیشود | پین اشتباه، قطبیت یا مقاومت | سیمها را با نقشه مقایسه و قطبیت LED را برعکس کنید |
| سریال مانیتور چیزی نشان نمیدهد | نبود Serial.begin یا باود ناهمخوان |
باود را 9600 بگذارید و Serial.begin(9600) در setup بگذارید |
| حروف نامفهوم در مانیتور | باود ریت مانیتور با کد فرق دارد | سرعت منوی پایین مانیتور را با کد یکی کنید |
| برد هنگام روشنشدن موتور ریست میشود | افت ولتاژ تغذیه | منبع جدا برای موتور، زمین مشترک و دیود هرزگرد |
آیین پنجگامی پس از هر تغییر سیمکشی
هر وقت مدار را دستکاری کردید، این پنج گام را به همین ترتیب اجرا کنید:
- تغییر را مکتوب کنید. دقیقاً بنویسید چه چیزی را جابهجا کردید؛ حافظه قاتل عیبیابی است.
- سیمکشی را سیمبهسیم با نقشه مقایسه کنید. نه از حفظ، نه با نگاه کلی؛ هر سیم را یکییکی دنبال کنید.
- تغذیه را یک بار قطع و وصل کنید. کابل USB را بکشید، چند ثانیه صبر کنید و دوباره وصل کنید.
- اسکچ سالم شناختهشده را آپلود کنید تا سمت نرمافزار از سمت سختافزار جدا شود.
- فقط یک اصلاح اعمال کنید و دوباره آزمایش کنید و نتیجه را کنار یادداشت گام ۱ بنویسید.
تمرینها
تمرین
تمرین ۱ — انتخاب ترتیب درست عیبیابی
سناریو: اسکچ چشمکزن را با موفقیت آپلود کرده بودید. سپس یک LED خارجی با مقاومت روی بردبورد اضافه کردید و کد را هم عوض کردید تا هم LED داخلی و هم LED خارجی بچشمد. حالا هیچکدام کار نمیکند و سریال مانیتور هم چیزی چاپ نمیکند. از میان گزینههای زیر، ترتیب درست اقدام را انتخاب کنید و بگویید چرا:
- الف) برد را عوض کنید
- ب) اسکچ Blink سالم را آپلود کنید
- ج) سیمکشی جدید را سیمبهسیم با نقشه مقایسه کنید
- د) همزمان کد را بازنویسی و مدار را از نو ببندید
- ه) تغذیه را قطع و وصل کنید و پس از آن فقط یکی از تغییرات را برگردانید
نمایش راهحل
ترتیب درست: ه → ب → ج (و اگر لازم شد فقط یک اصلاح، سپس تکرار). گام نخست همیشه جدا کردن دو متغیر است: شما همزمان سختافزار (LED خارجی) و نرمافزار (کد) را عوض کردهاید؛ پس اول تغذیه را قطع و وصل کنید و یک تغییر را برگردانید تا فقط یک متغیر بماند. سپس با آپلود Blink سالم تفکیک میکنید: اگر Blink کار کرد، برد و کابل سالماند و مشکل در کد یا سیمکشی جدید است؛ حالا گام ج، سیمبهسیم مقایسه با نقشه، مقصر را پیدا میکند. گزینهٔ الف آخرین راه است، نه اول؛ و د) دقیقاً برعکس قاعدهٔ «هر بار یک تغییر» است.
:::
خلاصه
- کنسول IDE 2 را از پایین به بالا بخوانید و هر بار فقط نخستین خطا را اصلاح کنید.
- آپلود یک اسکچ سالم شناختهشده مثل Blink، مشکل نرمافزار را از سختافزار جدا میکند.
- هر بار فقط یک چیز را تغییر دهید؛ وگرنه نمیدانید کدام تغییر مؤثر بود.
- جدول دستهبندی این درس، مسیر رفتن به درس تخصصی درست را نشان میدهد.
- پس از هر تغییر سیمکشی، آیین پنجگامی را اجرا کنید و تغییرها را مکتوب نگه دارید.
با این نقشهٔ راه، در درس بعدی نخستین دسته را عمیق میشکافیم: خطاهای کامپایل و زبانِ دقیقِ پیامهایی که کامپایلر به شما میگوید.