وبلاگ آموزشی جم ترونیک

ارورهای آردوینو

همه ی ارورهای آردوینو به همراه راه حل

برای افرادی که پیش‌زمینه الکترونیکی ندارند، شروع کار با آردوینو به عنوان یک مبتدی می‌تواند بسیار چالش برانگیز باشد. شما بدون شک در مراحل کار با آردوینو با خطاهایی مواجه می‌شوید، که برخی از آنها ممکن است راه‌حل‌های ساده‌ای داشته باشند و برخی دیگر شاید چند روز طول بکشند تا بتوانید آنها را رفع کنید. بنابراین، برای ساده کردن کار شما، ما در این بررسی به ارورهای آردوینو اشاره می‌کنیم.

1- ارور شناسایی نشدن برد آردوینو

این ارور به وضعیتی اشاره دارد که در آن برد آردوینو متصل به کامپیوتر توسط کامپیوتر شناسایی نمی‌شود. وقتی این اتفاق می افتد، برد معمولاً در لیست پورت‌های Arduino IDE قرار نمی‌گیرد و گاهی اوقات در بخش دیوایس منیجر، USB2.0 را لیبل می زند.

آردوینو مگا 2560 – Arduino MEGA CH340G

 Sync نشدن برد آردوینو

راه حل:

این ارور زمانی اتفاق می افتد که از رابط های ارزان قیمت آردوینو استفاده می‌کنید که از تراشه مبدل USB به سریال CH340g به جای FTDI (FT232RL) و سایر موارد مورد استفاده توسط بردهای استاندارد آردوینو بهره می‌برند. درایورهای تراشه‌های مبدل USB به سریال که توسط بردهای استاندارد آردوینو استفاده می‌شوند، همیشه همراه با فایل نصب Arduino IDE فشرده سازی می‌شوند، بنابراین وقتی IDE را نصب می‌کنید، درایورها به طور خودکار روی کامپیوتر شخصی شما نصب می‌شوند. برای اینکه بتوانید از این بردهای آردوینو مبتنی بر مبدل USB به سریال CH340g بهره ببرید، باید درایور تراشه را دانلود و نصب کنید. درایور از این لینک قابل دانلود است. شرایط نصب طبق عکس زیر است:

مهم ترین ارورهای آردوینو

با انجام این کار، اکنون باید بتوانید پورتی را که برد به آن متصل است در Arduino IDE پیدا کنید.

همچنین می توانید برای یادگیری نحوه اتصال آردوینو به اینترنت مقاله مربوط به آن را بخوانید.

2- Sync نشدن برد آردوینو

معمولاً وقتی (این) ارور رخ می‌دهد، نمی‌توانید کد را روی برد آردوینو program کنید (اگرچه IDE گاهی اوقات بارگذاری را انجام شده نشان می‌دهد) برد آردوینو و IDE کد خطای زیر را نمایش می‌دهد:

vrdude: stk500_getsync(): not in sync: resp=0x00

راه حل:

not in sync: resp=0x00 یک پاسخ عمومی است که به صورت «Atmega chip is not working» در آردوینو ترجمه می‌شود. وقتی این اتفاق میفتد، یک سری چیزها وجود دارند که ممکن است اشتباه باشند. در ادامه به مراحل رفع این خطا اشاره می‌کنیم:

مطمئن شوید که هیچ چیزی به پایه‌های دیجیتال صفر و یک در آردوینو از جمله شیلد متصل نیست.
مطمئن شوید که پورت com و برد صحیح در منوی ابزار انتخاب شده است.
دکمه ریست را چند بار روی آردوینو فشار دهید و کد را دوباره آپلود کنید.
کابل ارتباطی آردوینو را جدا کرده و دوباره به کامپیوتر وصل کنید.
Arduino IDE را مجدداً راه اندازی کنید.

اگر هر یک از اینها جواب نداد، ممکن است وقت آن رسیده باشد که از برد آردوینو دیگری برای کامپیوتر شخصی استفاده کنید یا از برد آردوینو معیوب روی کامپیوتر دیگری بهره ببرید. این کارها باید به شما کمک کنند که تشخیص دهیدکامپیوتر یا آردوینو، کدام یک منشأ مشکل هستند. اگر متوجه شدید که مشکل از کامپیوتر شخصی است، Arduino IDE را دوباره نصب کنید  با این حال، اگر برد آردوینو منبع مشکل باشد، راه حل نهایی فلش کردن برد با سیستم عامل آردوینو خواهد بود. اگر هیچ یک از موارد بالا کار نکرد، ممکن است زمان آن رسیده که برد آردوینو را عوض کنید.

3- شروع نشدن کد با ریست پاور

این ارور به مواردی اشاره دارد که آردوینو هنگام روشن شدن، پروژه ی آپلود شده روی خود را اجرا نمی‌کند و در بیشتر موارد، فقط به پروژه ی چشمک زدن مرتبط با بوت لودر حالت دریافت فایل بوت یا اجرا برمی‌گردد.

راه حل:

تعدادی عوامل می‌توانند باعث این ارور آردوینو شود. اگر برد هنگ کرد و کاری انجام نداد، باید کد خود را بررسی کنید تا مطمئن شوید که آردوینو داده‌های سریال را هنگام روشن شدن به برد ارسال نمی‌کند. هنگامی که آردوینو روشن می‌شود، بوت لودر در چند ثانیه اول منتظر به کامپیوتر می‌شود تا پروژه جدیدی را برای آپلود روی برد بفرستد. اگر پروژه ی جدیدی دریافت نشد، پس از مدت کوتاهی، زمان دریافت فایل بوت از طرف کاربر می‌شود و آخرین پروژه آپلود شده روی برد را اجرا می‌کند. اگر کد شما در چند دقیقه اول داده‌های سریال را ارسال کند، بوت لودر به پایان نمی‌رسد و آخرین پروژه آپلود شده روی برد شروع نمی‌شود.

اگر ارسال داده‌های سریال به محض روشن شدن برد بخش مهمی از پروژه شماست، راهی پیدا کنید تا کمی تاخیر ایجاد شود تا از رسیدن اطلاعات سریال به محض روشن شدن آردوینو جلوگیری صورت گیرد. اگر انجام تنظیمات بر کاری که پروژه باید انجام دهد تأثیر می‌گذارد، ممکن است مجبور شوید پروژه خود را با استفاده از یک برنامه نویس خارجی روی برد آپلود کنید. اگر برد هنگ نکرد اما به حالت چشمک زدن آردوینو برگردد (Led در پین 13 پشت سر هم چشمک بزند)، یک راه حل ساده فلش کردن برد با بوت لودر آردوینو است، زیرا ممکن است صفحه روی برد خراب شده باشد.

4- خطای سیگنیچر دستگاه نامعتبر

این خطا زمانی نمایش داده می‌شود که تلاشی برای آپلود کد در یک برد متفاوت از بردی که در فهرست tools>board در Arduino IDE انتخاب شده است، نمایش داده می‌شود. این ارور معمولاً به این دلیل رخ می‌دهد که سیگنیچر دستگاه روی برد هدف با سیگنیچر برد انتخاب شده در IDE متفاوت است.

راه حل:

راه حل این خطا، انتخاب برد صحیح در Arduino IDE است. اگر مشکل حل نشد، ممکن است نیاز به فلش کردن میکروکنترلر با آخرین نسخه بوت لودر آردوینو وجود داشته باشد.

آردوینو مگا 2560 – Arduino MEGA R3

5- خطای Launch4j

راه حل خطای Launch4j

آردوینو IDE گاهی اوقات قبل از بارگیری کمی زمان لازم دارد و وقتی بارگذاری می‌شود، اگر روی هر چیزی کلیک کنید، خطای Launch4J را مانند تصویر بالا نمایش می‌دهد. Launch4j ابزاری است که برای پکیج کردن برنامه‌های جاوا (jars) در فایل‌های اجرایی فعال ویندوز استفاده می‌شود. این ابزار به فایل‌های اجرایی فعال ویندوز اجازه می‌دهد به عنوان یک برنامه معمولی ویندوز کار کنند. خود Arduino IDE به زبان جاوا نوشته شده است و این خطا به دلیل ناسازگاری کتابخانه Java Run Time Environment (JRE) ارائه شده با Arduino IDE رخ می‌دهد.

راه حل:

این خطا را می‌توان با خاموش کردن بلوتوث یا اتصال وای فای کامپیوتر شخصی پاک کرد. با این حال، راه حل کامل‌تر و دائمی‌تر، جایگزینی JRE در بسته آردوینو با نسخه اخیر است.

6- ارور پورت سریال

 راه حل ارور پورت سریال

این ارور احتمالاً یکی از ساده‌ترین خطاها است که می‌توانید حل کنید. این ارور معمولاً زمانی اتفاق می افتد که وقتی ترمینال سریال باز است، سعی می‌کنید کد را روی آردوینو آپلود کنید (اگر از نسخه‌های اخیر IDE استفاده می‌کنید دیگر مشکلی وجود ندارد) یا زمانی که می‌خواهید ترمینال سریال را هنگامی که آردوینو با نرم افزار یا دستگاه دیگری ارتباط دارد راه اندازی کنید. همچنین اگر بخواهید همزمان از پورت سریال آردوینو برای دو چیز مختلف استفاده کنید، این خطا رخ می‌دهد.

راه حل:

دقیقاً همانطور که IDE پیشنهاد کرد، هر نرم افزار، نمایشگر یا پلاتر سریال را که ممکن است از پورت com استفاده کند ببندید. اگر از نرم افزار خاصی مطمئن نیستید، آردوینو را از برق بکشید. تا زمانی که آردوینو را دوباره وصل کنید، سیستم باید آماده کار باشد.

7- مشکلات ارور آپلودهای پروژه

این ارور مشابه برخی از خطاهای دیگر است که قبلاً در بالا مورد بررسی قرار گرفت. برای این خطا، Arduino IDE پیشنهاد می‌کند که کد با موفقیت آپلود شده است، اما برد هیچ کاری انجام نمی‌دهد.

راه حل:

مطمئن شوید که برد انتخاب شده در IDE با برد مورد نظر یکی است. این مشکل می‌تواند به دلیل بزرگتر بودن اندازه پروژه از ظرفیت برد باشد. اندازه پروژه را بررسی کنید و از برخی از روش‌های ذکر شده در بالا برای کاهش اندازه استفاده کنید. در نهایت، این خطا ممکن است زمانی رخ دهد که منبع تغذیه پر سر و صدا است. مطمئن شوید که منبع تغذیه به اندازه کافی پایدار و بدون صدا است.

8- ارور لینک خراب

این ارور احتمالاً تنها خطای نادری است که در این لیست قرار گرفته است. این خطا زمانی اتفاق می افتد که یک نسخه قدیمی از کتابخانه آردوینو را روی کامپیوتر شخصی خود دارید که به احتمال زیاد مربوط به نصب قبلی است.

راه حل:

برای حل این خطا، comm.jar یا jcl.jar را در /System/Library/Frameworks/JavaVM.framework/ یا در فهرست‌های موجود در متغیرهای محیط CLASSPATH یا PATH کامپیوتر شخصی خود جستجو کنید.

9- اندازه بزرگ پروژه

 راه حل ارورهای آردوینو

این خطا زمانی رخ می‌دهد که کد شما بزرگتر از حافظه فلش برد آردوینو باشد. به عنوان مثال، اندازه فلش مموری آردوینوUno  حدود 32 کیلوبایت است و 2 کیلوبایت در حال حاضر توسط بوت لودر آردوینو استفاده می‌شود. اگر باید کدی با اندازه بالاتر از 32 کیلوبایت آپلود کنید، آردوینو این خطا را نمایش می‌دهد.

راه حل:

همانطور که در بالا ذکر شد، این ارور زمانی اتفاق می افتد که سایز کد پروژه ی شما بزرگتر از حافظه فلش برد باشد که استفاده می‌کنید، بنابراین برای حل این مشکل، باید راه‌هایی برای کاهش مقدار فضای اشغال شده توسط کد پیدا کنید. برخی از نکات برای دستیابی به این امر عبارتند از:

در صورت امکان، از انواع داده‌های عدد صحیح به جای حالت ممیز شناور عدد استفاده کنید.
در صورت امکان از نوع اعلان Const هنگام اعلام متغیرها استفاده کنید.
فقط کتابخانه های ضروری را شامل شود. در صورت امکان، از نسخه‌های سبک حجم مهم‌ترین کتابخانه‌ها استفاده کنید.
به طور کلی کد را بهبود ببخشید. الگوریتم‌هایی را توسعه دهید که می‌توانند به کوتاه‌تر و سبک‌تر کردن کد شما کمک کنند.

راه حل رادیکال‌تر، انتقال پروژه به برد دیگری مانند آردوینو مگا است که حافظه فلش بزرگتری در مقایسه با Uno دارد.

10- ارور java.lang.StackOverflowError

هنگام پردازش پروژه، آردوینو از برخی عبارات منظم برای پردازش استفاده می‌کند و گاهی اوقات زمانی که با خطاهای مرتبط با رشته‌های خاصی مانند کاراکترها یا کلمات از دست رفته مواجه می‌شود، دچار مشکل خواهد شد.

راه حل:

این خطا با نگاهی دوباره به کد حل می‌شود، به خصوص قسمت‌هایی که از دنباله رشته‌ها(String) استفاده می‌شود. مطمئن شوید که کاراکترها یا کلمات کامل هستند، از بک اسلش‌ها به درستی استفاده می شود و غیره.

11- ارور  ESP32 Issue

اگر از ماژول ESP32 در آردوینو استفاده می‌کنید، خود را برای مواجهه با مشکلات آماده سازید. مشکل Arduino ESP32 زمانی ظاهر می‌شود که IDE و کامپیوتر شما ماژول ESP32 را تشخیص ندهند. شما نمی‌توانید هیچ کدی را آپلود کنید و اگر می‌خواهید از شر این مشکل Arduino ESP32 خلاص شوید، باید برخی از عیب یابی‌های (debug) اولیه را انجام دهید.

راه حل ارور ESP32-Issue

راه حل:

Arduino IDE را باز کنید و بررسی کنید که آیا می‌توانید ماژول ESP32 را در آنجا ببینید (مانند تصویر زیر). اگر وجود دارد، باید روی آن کلیک کرده و آن را انتخاب کنید. در غیر این صورت، باید (extension) افزونه ESP32 را برای آردوینو دانلود کنید. این به کامپیوتر شما اجازه می‌دهد تا ماژول را تشخیص دهد. همچنین، reset را در دستگاه ESP32 خود فشار دهید و ممکن است کار کنند.

12- ارور stk500_recv():programmer is not responding

برای درک چنین خطاهایی ابتدا باید بدانیم avrdude چیست و برای چه منظوری در Arduino IDE استفاده می‌شود. avrdude ابزاری است که توسط Arduino IDE برای آپلود اسکچ‌ها/کدها در برد میکروکنترلر استفاده می‌شود. بنابراین، از اینجا می‌توانیم فرض کنیم که این خطا ممکن است در صورت بروز مشکل در آپلود کد در برد آردوینو ظاهر شود.

از ظاهر خطا به وضوح می‌توان دریافت که (arduino IDE) و برد آردوینو به درستی به یکدیگر متصل نبوده یا هر دو قادر به برقراری ارتباط با یکدیگر نیستند. به طور خلاصه می‌توان گفت که این خطا زمانی ظاهر می‌شود که (arduino IDE) و برد آردوینو نتوانند به درستی با یکدیگر ارتباط برقرار کنند. این خطا بیشتر زمانی رخ می‌دهد که ما از هر وسیله ارتباطی مانند بلوتوث با آردوینو استفاده می‌کنیم که از پین‌های TX و RX آردوینو بهره نمی‌برد.

ارور stk500_recvprogrammer-is-no

راه حل:

برای نشان دادن اینکه چگونه می‌توانید این خطای ارتباطی را در زمان آپلود کد حذف کنید، ماژول بلوتوث را به آردوینو Uno وصل کنید و کد خود را آپلود نمایید. خطایی که در تصویر زیر می‌بینید را دریافت می‌کنید. پایه‌های TX و RX آردوینو را به بلوتوث وصل کنید.

رایج ترین ارورهای اردوینو

اکنون برای رفع خطا، پایه‌های TX و RX ماژول بلوتوث را همانطور که در تصویر زیر می‌بینید از برد آردوینو جدا کرده و سپس کد را کامپایل کنید.

حال در شکل مشاهده می‌کنید که در آپلود کد روی برد آردوینو خطایی وجود ندارد.

راه حل های کاربردی برای رفع ارورهای اردوینو

کلام آخر

این لیست شامل برخی از رایج‌ترین خطاهایی است که مبتدیان هنگام استفاده از آردوینو با آن مواجه می‌شوند. با برطرف کردن هر ارور آردوینو می‌توانید پروژه خود را یک گام به جلوتر سوق دهید. پس اگر با یک خطای خاصی دست و پنجه نرم می‌کنید، این امکان را دارید سوالات خود را در همین مقاله و در بخش نظرات با ما در میان بگذارید. همچنین برای خرید آردوینو به جم ترونیک مرجع خرید اینترنتی قطعات الکترونیکی مراجعه کنید.

بازگشت به لیست

2 دیدگاه در “ارورهای آردوینو

  1. مهدی گفت:

    دوستانی که مشکل گیر کردن در اپلودینگ رو دارن و تموم نمیشه یا خطا میده هر سری نسخه های قدیمی مثل 1.8.5 رو نصب کنید و از ورژن پورتابل استفاده نکنید

  2. مجید گفت:

    سلام خداقوت
    باتشکرازمطالب با ارزشتان
    ولتمتربابردآردینو باسون سگمنت1637 اجراکرده ام ولتاژرانشان میدهدخیلی دقیق هم هست ولی وقتی ولتاژ اندازه گیری شده صفر میباشد روی خروجی اعداد شناورظاهرمی شود
    ممنون میشوم اگه راهنمایی کنید این مشکل را حل کنم.

دیدگاهتان را بنویسید