آموزش کامل پروگرام کد های آردوینو روی ATMEGA8

تبدیل ATMEGA8 به آردوینو

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

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


شرح آموزش

بطور کلی در این روش، ابتدا توسط یک بورد آردوینو بوت لودر مربوط را برروی ATMEGA8ریخته و بعد از انجام تنظیماتی در نرم افزار، توسط یک مبدل سریال میکروکنترلر ATMEGA8 را از این پس میتوانیم پروگرام کنیم. به این نکته توجه داشته باشید که این آموزش برای میکروکنترلر های سری ATMEGA8 (ATMEG8, 48, 88, 168, 328) مورد استفاده می‌باشد. من در این آموزش از بورد Arduino UNO و ATMEGA8 استفاده کرده ام.

در تصویر زیر مشخصات پایه های میکروکنترلر را ملاحظه میکنید. به این نکته توجه کنید که وقتی در محیط برنامه نویسی آردوینو مثلا دستور “(HIGH, 8)digitalWrite” را مینویسیم، منظور  این است پایه شماره 8 دیجتال، فعال یا یک منطقی شود. این پایه برروی برد آردوینو مشخص شده است. اما روی آیسی اتمگا 8 مد نظر ما پس از ریختن بوت لودر در این آموزش، منظور پایه 14 آیسی خواهد پس به این نکته مهم توجه کنید.

Arduino ATMEGA8 Pinout
مشخصات پایه آردوینو ATMEGA8

برای اینکه فریمور آردوینو رو روی اتمگا 8 آپلود کنیم، در اولین مرتبه، نیاز به یک پروگرامر (مانند USB ASP) داریم یا یک برد آردوینو (مانند UNO).


وسایل مورد نیاز

ATMEGA8

Arduino UNO

مبدل USB به سریال

برد بورد


شماتیک

با استفاده از شماتیک زیر اتصالات بین بورد آردوینو و ATMEGA8 را برقرار نمایید.

شماتیک
شماتیک

بهتر است بین پایه 20 آیسی ATMEGA8 و GND یک خازن با ظرفیت 10 میکرو فاراد وصل نمایید.

مدار مونتاژ شده
مدار مونتاژ شده

نصب بوت لودر

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

بعد از باز کردن سورس کد (optiloader.ino)، حتما در بخش ابتدایی برنامه define های مربوطه را بررسی کنید و متناسب با نوع بورد آردوینو خود و نحوه سیم بندی شماتیک خود در صورت نیاز آن را تغییر دهید. مثلا اگر در این آموزش پایه ریست میکرو را به پایه دیجیتال 10 بورد ARDUNI UNO متصل کردیم پس باید در سورس نیز 10 باشد که البته همین هست. یا مثلا برای بورد آردوینو مگا 2560 باید سه قسمت SCK، MOSI و MISO را متناسب با شماره پایه های مربوط به آن تغییر دهید. ولی ریست را به هر کدام از پایه که وصل کردیم همان را مینویسم مثلا پایه 10.

ریختن بوت لودر آردوینو روی اتمگا 8
سورس کد

بعد از طی مراحل بالا و انتخاب شماره پورت و نوع بورد خود، برنامه را روی آردوینو آپلود کرده و تا موقعی که “Done Uploading” نمایش داده شود صبر می‌کنیم. بعد از انجام این مرحله و موفقیت آمیز بودن آپلود برنامه، سریال مانیتور آردوینو را باز کنید.

در ابتدا باودریت سریال مانیتور را روی “19200” تنظیم نموده و یکبار دکمه ریست آردوینو را بزنید. بعد از این کار اطلاعاتی را مانند تصویر زیر در سریال مانیتور مشاهده خواهید کرد که نشان دهنده این است که بوت لودر روی اتمگا 8 با موفقیت نصب شده است.

برای اطمینان در سریال مانیتور یک بار حرف “G” را تایپ و اینتر مینزنیم و مجدد نتیجه را بررسی می‌کنیم. یا اگر خواستید برروی یک  ATMEGA8 دیگر نیز بوت لودر  نصب کنید، میتوانید آن را جایگزین ATMEGA8 فعلی کنید و حرف “G” را ارسال کرده و منتظر بمانید تا بودت لودر روی آن پروگرام شود.

ریختن بوت لودر آردوینو روی اتمگا 8
اطلاعات خروجی

پروگرام کردن میکروکنترلر

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


مرحله اول: تنظیمات نرم افزار Arduino IDE


در اولین گام به منوی Files > Preferences وارد شوید. و در مکان مشخص شده لینک زیر را کپی و پیست کرده و برروی OK بزنید.

https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json

اضافه کردن لینک دانلود پکیج minicore
اضافه کردن لینک دانلود پکیج minicore

حالا از منوی Tools > Board > Boards Manage را کلیک کنید، در ابتدا از اتصال به اینتنرت مطمئن شوید. در پنجره نمایش داده شده عبارت “minicore” را سرچ کنید. طبق تصویر زیر روی گزینه install بزنید و منتظر بمونید تا نصب پکیج بصورت کامل انجام شود.

دانلود پکیج minicore
دانلود پکیج minicore

طبق توضحیات ارائه شده، این پکیج مناسب برای آیسی های ATMEGA328, 168, 48, 88, 8 می‌باشد.

بعد از انجام این مرحله وارد منوی Tools > Boards شده و از بین بورد های موجود با اسکرول کردن به پایین در قسمت MiniCore، آیسی مورد نظر را برای پروگرام کردن انتخاب کنید. که ما در این مطلب چون از ATMEGA8 استفاده میکنیم پس همین مورد را انتخاب خواهیم کرد.

انتخاب آیسی از MiniCore
انتخاب آیسی از MiniCore

بعد از انتخاب ATMEGA8، مجدد به منوی Tools مراجعه میکنیم . طبق تصویر زیر مشاهده میکنید که چند قسمت جدید به این منو اضافه شده است که در ادامه آنها را بررسی خواهیم کرد.

انتخاب آیسی از MiniCore

از بخش Clock می‌توانیم مشخص کنیم از چه روشی کلاک پالس میکروکنترلر را تامین می‌کنیم. مثلا داخلی با فرکانس 1MHz یا خارجی با فرکانس 16MHz و … . (شخصا خواستم بدون کریستال خارجی هم تست کنم یعنی کریستال خارجی وصل نکنم و از اسیلاتور داخلی میکرو استفاده کنم، اما این کار ممکن نبود.)

بخش BOD مربوط به تنظیمات فیوز بیت BOD هست که مشخص میکنه چه زمانی میکرو ریست شود. مثلا اگر 2.7V انتخاب کنیم وقتی ولتاژ ورودی کمتر از این مقدار باشه میکرو ریست خواهد شد. یا اگر 4V رو انتخاب کردیم، اگر ولتاژ ورودی کمتر از 4 ولت بود میکرو را ریست خواهد شد.

بخش Compile LTO می‌توانیم انتخاب کنیم که عمل پروگرام کردن سریع تر باشد یا خیر. اگر Disable که بصورت پیشفرض همین مورد انتخاب شده است را انتخاب کنید، عمل پروگرام کردن مدت زمان بیشتری نسبت به حالت Enable خواهد داشت. Enable برای زمانی است که بخواهیم سریع تر عمل پروگرام انجام شود.


مرحله دوم: تنظیمات و فراهم کردن سخت افزار


برای انجام عمل پروگرام کردن ابتدا طبق جدول زیر اتصلات را برقرار کنید.

ATMEGA8 مبدل USB به سریال
Reset CTR
TX RX
RX TX
VCC VCC
GND GND

مدار مونتاژ شده:

مدار مونتاژ شده برای انجام پروگرام
مدار مونتاژ شده برای انجام پروگرام

نکته عملی: در صورتی که مبدل سریال شما دارای DTR باشد، بین پایه DTR مبدل سریال و پایه ریست اتمگا، از مدار زیر استفاده کنید.

ریختن بوت لودر آردوینو روی اتمگا 8
شماتیک

همچنین نحوه اتصال کریستال 16MHz مشابه مراحل قبل (طبق بخش “شماتیک”) می‌باشد و بهتر است بین پایه 20 آیسی ATMEGA8 و GND یک خازن با ظرفیت 10 میکرو فاراد وصل کنید.

نکته عملی و خیلی مهم:
اگر مبدل سریال شما پایه DTR ندارد، در مدار تصویر بالا، خازن 100nF را حذف کنید. و هنگام آپلود کد یک لحظه پایه RESET میکروکنترلر را بصورت دستی به GND وصل کنید (پین دیگر مقاومت 10K). برای اینکار میتونید از یک پوش باتن استفاده کنید و یک طرف را به پایه ریست میکرو و طرف دیگه اش رو هم به زمین وصل کنید. 

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

بعد از اعمال تنظیمات مد نظر، مبدل سریال را به پورت USB و مدار مونتاژ شده وصل کنید. و در نرم افزار آردوینو از منوی Tools وارد قسمت Com شوید. پورتی که مبدل وصل است را انتخاب کنید. سپس برنامه زیر را در Arduino IDE بنویسید:

void setup() 
{
  pinMode(13, OUTPUT);
}

void loop() 
{
  digitalWrite(13, HIGH);   
  delay(1000);                       
  digitalWrite(13, LOW);    
  delay(1000);                      
}

بعد از نوشتن برنامه فوق، ابتدا یک LED بین پایه 13 دیجیتال (پایه شماره 19 میکروکنترلر ATMEGA8) وصل نمایید. طبق توضیحات بخش قبلی (مرحله اول) شروع به انجام تنظیماتِ انتخاب آیسی از منوی Boards و پروگرام کردن میکروکنترلر خواهیم کرد.

در نهایت با بررسی مجدد تنظیمات و شماره پورت مربوطه، دکمه آپلود در نرم افزار آردوینو (Ctrl + U) را میزنیم. با این کار عمل پروگرام آغاز خواهد شود. چناچه مبدل شما دارای پایه DTR می‌باشد و بین پایه ریست و DTR خازن قرار ندهید، برنامه پروگرام نخواهد شد و ارور دریافت خواهید کرد.

در نهایت با آپلود کامل برنامه بر روی میکروکنترلر، مشاهده خواهید کرد که LED متصل به پایه دیجیتال 13، هر یک ثانیه چشمک خواهد زد.

نکته: در صورتی که مبدل سریال شما فاقد DTR می‌باشد، طبق توضیحات بخش قبل در هنگام پروگرام کردن عمل کنید.

امیدوارم از این آموزش کمال بهره را برده باشید. در صورتی که هرگونه نظر یا سوال داشتید درباره این آموزش لطفا اون رو در انتهای همین صفحه در قسمت دیدگاه ها قرار بدید. در کوتاه ترین زمان ممکن به اون ها پاسخ خواهم داد. اگر این مطلب براتون مفید بود، اون رو حتما به اشتراک بگذارید. همینطور میتونید این آموزش را پس از اجرای عملی توی اینستاگرام با هشتگ microelecom# به اشتراک بگذارید و پیج مایکروالکام (microelecom@) رو هم منشن کنید.

 


۷۲ دیدگاه برای “آموزش کامل پروگرام کد های آردوینو روی ATMEGA8

  1. سلام من یک برد اردونیو دارم و میخوام با گوشی روش کد اپلود کنم.
    وقتی مدل اصلی اردوینو رو انتخاب میکنم میگه مشکلی در اپلود وجود داره و گاهی وقتا با کمی دستکاری تنظیمات کد اپلود میشه و چراغ tx اردوینو چشمک میزنه و میگه کد اپلود شد اما بعد دستورات رو اجرا نمیکنه میشه بگید مشکل از چیه؟

  2. سلام ممنون از توضیحات شما
    سوال داشتم فرکانس برد هدف مهم هستش در بورن بوت لدر؟ اکر هست از کجا تغییر بدم؟
    ممنون

  3. سلام و درود خدمت دوستان و جناب مهندس
    بنده مداری طراحی کردم من از ۶ رله ۵ ولتی استفاده کردم و از lm2596 جهت تغذیه رله‌ها استفاده کردم و از lm2596 جدا برای میکرو ،تغذیه اصلی هم ۱۲ ولت ۵ آمپر هست ، چیزی که هست همه رله‌ها درست کار میکنند ، در تست آخری که گرفتم یک رله را با استفاده از millis هر یک ثانیه روشن و خاموش میکنم و در رله دیگه از میلی ثانیه برای ۱۲ ثانیه روشن موندن و خاموش شدن استفاده کرده‌ام ، مشکلی که الان وجود دارد این است که رله اول هر ۱ ثانیه روشن و خاموش می‌شود ولی زمانی که رله مذکور دوم رو روشن میکنم هر دو رله استپ میکنند و رله اول هم دیگر روشن و خاموش نمیشود ، و جالبتر اینکه میکرو هنگ نمیکند و هم ماژول gsm پیامک ارسال میکند و هم میکرو رله‌های دیگر رو با استفاده از کلیدهای تعبیه شده روشن و خاموش میکند، انگار میلی ثانیه از کار می‌افتد ودیگر کار نمیکند و باقی میکرو طبق روال کار میکند، ضمنا وقتی که میکرو روی برد آردوینو یونو هست با ال ای دی که تست میکنم همه چیز درست کار میکنه
    میبخشید وقتتون رو میگیرم
    لطفاً راهنمایی بفرمایید تشکر ، بنظرتون احتمال داره از کریستال باشه ؟ البته کریستال هم ۱۶ مگ هستش

      1. عرض به حضور شما که میکرو وقتی رو برد آردوینو هست با ال ای دی تست کردم و وقتی روی بردی که خودم درست کردم رله هست تست میکنم این مشکل رو دارم ، روی برد خودم رله رو از مدار خارج نکردم که با ال ای دی جدا تست کنم ، اول فکر میکردم از تغذیه هست ولی هم تغذیه رو بهتر کردم هم خازنهای مناسب گذاشتم ولی مشکل همچنان پابرجاست خازن عدسی و سلف گذاشتم ، جالب اینجاست که ۱ ثانیه رو در ابتدا اجرا میکنه ولی ۱۲ ثانیه رو اجرا نمی‌کنه و میکرو هم هنگ نمیکنه

          1. مهندس جان تشکر مشکل حل شد ، از برنامه نویسی بود ، البته if در if بود که یکی از شرط‌ها رو حذف کردم درست شد ، البته متعجبم که چرا رو آردوینو کار میکرد و روی برد نه ، یک سوال دیگه داشتم ، فرمت ذخیره اطلاعات AT ماژول SIM800L مگر اینطور درست نیست:
            Sim800l.println(F(ATE1));
            Sim800l.println(F(“AT&W[1]”));
            طبق اطلاعات AT ماژول که خوندم الان باید ذخیره بشه و با فرمان ATZ به شکل زیر باید دوباره به ماژول القا بشه :
            Sim800l.println(F(“ATZ[1]”));
            بنظرتون فرمت نوشتنم درست نیست ؟

          2. خیلی ام خوب. گاهی اوقات سخت افزار و همه چی اوکیه ولی باگ سمت نرم افزار و کد ها هست. با قاعده نوشتن و شلوغ نکردن کد ها میشه خیلی وقتا از این موارد جلوگیری کرد. دلیل استفاده از F در آرگومان تابع ارسال چیه؟ بیشتر این مورد رو توی خوندن دیتا دیده بودم.

  4. سلام من میخوام روی atmega64 بوت لودر بریزم اما با مشکل
    Starting Program Mode – Failed, result = 0x0
    مواجه میشم
    لطفا راهنمایی کنید
    در کد باید تغییری ایجاد کنم؟
    ممنون

  5. سلام وقت بخیر ی مشکلی داشتم من برنامه اکسس کنترل از مثال های rc522 تو آردینو رو رو خود آردینو که اجرا
    میکنم جواب میگیرم اما وقتی میریزم روی مگا هشت جوا نمیده همه چیز هم چک کردم

  6. سلام ممنون از آموزش خوبتون خداخیرتون بده
    یه سوالی برام پیش اومده
    ترتیب پایه های آردینو و مگاهشت رو میخواستم بدونم؟؟؟؟؟؟؟؟؟؟؟؟

  7. با سلام و تشکر از مطالب مفید

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

    با سپاس

    1. سلام ارادت، بله.
      اگر بوت لودر اردوینو روی میکرو شما پروگرام بشه از اون به بعد میتونید مثل یک برد اردوینو اون رو تلقی و استفاده کنید. فقط باید متناسب با میکرو بوت لودر رو انتخاب و پروگرام کنید.

  8. با سلام وتشکر
    بسیار عالی بود فقط من تو برنامه نویسیش مشکل دارم که برنامه ای که مینویسم تا یجاییش مشکل نداره ولی وقتی ی چیز ساده بهش اضافه میکنم وقتی verify میزنم اخطار
    Error complling for board atmega8
    میده دوباره برنامه تغییر میدم درست میشه ولی باز دوباره ی جای دیگه همین خطا میده
    درضمن برنامم با تنظیمات آردوینو مشکل نداره ولی با تنظیمات atmega8 این خطا میده
    ممنون میشم راهنمایی کنید

    1. چیزی که میفرمایید را تا حالا برخورد نکردم باهاش!
      از درست وارد شدن کلمات یا حروف اون تیکه برنامه مطمئن هستید؟
      مجددا از اول تنظیمات مربوطه برای Mega8 رو طبق توضیحات بررسی کنید.

  9. سلام خسته نباشید
    برای این کار لازمه فیوز بیت های اتمگا۸ تغییر کنه یانه
    ممنون میشم جواب بدین

  10. سلام
    ممنون از آموزش رسا و ساده ای که در اختیارم قرار دادید
    من هر کاری میکنم ، بعد از آپلود بوت لودر ، در سریال مانیتور این پیغام میاد
    لطفا راهنمایی بفرمایید

    OptiLoader Bootstrap programmer.
    2011 by Bill Westfield (WestfW)

    Target power on! …
    Starting Program Mode – Failed, result = 0xFFFF

    Target power OFF!

    Type ‘G’ or hit RESET for next chip

    1. سلام، سلامت باشید و ممنون از لطفتون.
      G را وارد سریال مانیتور و ارسال کنید. بعدش مجددا بررسی کنید و ببینید وقتی میکرو رو از برد حارج میکنید و بجای مدار مطرح شده قرار میدید کار میکنه یا خیر.

      1. سلام،ممنون از پاسختون
        بوت لودر نصب و به درستی کار میکنه،اما در سریال مانیتور غیر از یک مربع کوچک ،چیز دیگه ای نمیاد

  11. سلام وقت تون به خیر، در آخرین مرحله ایجاد بوت لودر وقتی دکمه G را میزنم مینوسه:

    Target power on! …
    Starting Program Mode – Failed, result = 0x0

    Target power OFF!

    لطفا راهنمایی کنید

  12. سلام ممنون از اموزش خوبتون
    نمیشه از خود برد آردوینو به جای مبدل سریال استفاده کرد؟
    جایی نوشته بود اگه میکرو روی برد آردوینو رو برداری میشه از پایه های rx , tx برد به عنوان مبدل استفاده کرد منم این کار رو انجام دادم اما به نتیجه نرسیدم .یعنی برنامه اپلود نمیشه و ارور میده (avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x93
    avrdude: stk500_recv(): programmer is not responding
    )
    ممنون میشم راهنمایی کنید

    1. سلام، میتونید این کار رو کنید.
      نوع پروگرامر رو درست انتخاب کنید از داخل IDE، مدل USBASP اش رو انتخاب کنید و تست کنید. برای اطمینان مدل های دیگه موجود توی IDE رو هم امتحان کنید.

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

    avr-g++: error: unrecognized command line option ‘-std=gnu++17’
    Error compiling.

  14. درود بر شما و سپاس بابت آموزش خوبتون.بعد از ریختن بوت لودر و کد برنامه به میکرو . امکان این هست که از میکرو بدون کریستال خارجی و تنظیم کریستال داخلی استفاده کرد؟

      1. شما فرموده بودین با کریستال داخلی جواب نگرفتین.درست متوجه شدم یا اشتباه برداشت کردم؟

        1. بله ذکر شده میتونید از منوی معرفی شده نسبت به این کار (تغییر منبع کلاک) اقدام کنید. ولی متاسفانه جواب گرفته نشد برای اینکار در اون موقع. البته مطلق نیست این مورد بهتره شما هم تست بفرمایید یک مرتبه و نتیجه را بررسی کنید. خوشحال میشیم با ما هم به اشتراک بزارید یا اگر راه حل دیگه ای براش بدست آوردید.

  15. سلام،
    میتونیم بعد از اینکه بوت لودر را روی میکرو کنترلر پروگرم کردیم دوباره بدون استفاده از مبدل سریال با همان برد اردوینو برنامه اصلیمون را روی میکروکنترلر پروگرم کنیم؟اگر نه روشی هست؟

  16. با سلام.
    نمیدونم سوال منو میبینید یا نه .ولی اگر دیدید خواهشا جواب منو ایمیل بزنید.ممنون.ممنون.

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

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

        1. خواهش می‌کنم.
          اگر دقیقا مطابق با توضیحات مطرح شده این مطلب پیش برید قطعا مشکل رفع خواهد شد. مگر اینکه جایی رو با نقص پیش برده باشید یا صحیح انجام نداده باشید.
          موفق باشید.

  17. سلام . میشه از اول بدون داشتن آردوینو برنامه ای که گذاشتید با usbasp به مگا۸ امتقال داد و از آن به عنوان یک آردوینو استفاده کرد؟البته بعد از تنظیمات که گفتید.تشکر

    1. سلام. بله شما میتونید کد های خودتون را در Arduino IDE بنویسید و نهایتا کد هگز اون را متناسب با میکرو خودتون مستقیما از طریق پروگرامر روی میکرو پروگرامر کنید.

  18. سلام ممنون از مطالب مفیدتون یه سوال خیلی خیلی مهم داشتم من زمانی که از بعضی از کتاب خانه های اردینو استفاده می کنم برای مگا۸ ارور میده وخروجی کد هگز برای مگا۸ نمیده میشه لطف کنید بگید علت ارور چیه و چه جوری می شود مشکل حل کردواگز مشکل کم بود جا چه جوری می شود حجم کد هگز کم کرد تشکر

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

  19. بله فکر کنم برای من اتوماتیک ویندوز نصب می کرد و کار نمی کرد و بعد رفتم نسخه دیگر را دانلود کردم و درست شد

    1. سلام
      بله، فقط هنگام انتخاب میکروکنترلر از منوی Boards حتما میکرو مد نظر خودتون رو انتخاب کنید

  20. سلام خیلی ممنون بابت توضیحاتتون و من نتیجه را گرفتم فقط یک نکته ای را اگر در داخل سایتتون بگذارید خیلی خوب می شود:در صورتی که مبدل سریال پروگرام نمی کند درایور را حذف و یکی دیگر بریزند احتمالا درست شود

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

  21. سلام ممنون از توضیحاتتون.
    دو سوال داشتم از خدمتتون ،یکی اینکه میتونیم پروگرامر isp رو در تنظیمات برنامه اصلی خودمون انتخاب کنیم و دیگه بدون نیاز به بوت لودر فایل هگز رو با پروگرامر آپلود کنیم؟
    یعنی میکرو میتونه بدون بوت لودر این برنامه رو اجرا کنه؟ و سوال دومم اینه که آیا برنامه ای که در آردوئینو نوشته شده به نظرتون در استفاده در محصول تجاری دچار مشکل میشه؟ تشکر از زمانی که میزارید

    1. سلام؛
      ۱- بله میتونید بدون در نظر گرفتن یا استفاده از بوت لودر، میکرو رو پروگرام کنید. میتونید مستقیما کد هگز را از برنامه گرفته و میکرو رو از طریق پروگرامر و نرم افزار پروگرام کنید. مثلا با استفاده از STK500. با بعضی از پروگرامر ها هم میشه مستقیما از داخل نرم افزار آردوینو میکرو رو پرواگرم کرد.

      ۲- برنامه نوشته در محیط های برنامه نویسی صرفا یکسری کد هست که طبق یک الگوریتم مشخص توسط برنامه نویس و یا توسعه دهنده نوشته میشن. در این بین برنامه نویس باید بیاد جوری کد بزنه که حداقل فضا و امکانات از میکرو اشغال بشه. التبه محیط برنامه نویسی و اینکه چه کامپایلری هم استفاده شده هم مهم هست.
      اینکه یسری میگن آردوینو اسباب بازیه و بدرد نمیخوره صرفا یکسری حرف متعصبانه است و پایه علمی نداره از نظر من. برد های آردوینو باعث شده تا با کوتاه ترین زمان به نتیجه مد نظر برسیم. در بحث های تجاری علاوه بر مواردی که عرض کردم چیز های دیگه ای هم هست. مثل طراحی اصولی برد که نویز پذیریش به حداقل برسه و مصونیت داشته باشه. علاوه بر این سایر چیز های دیگه ام در تجاری سازی و تولید انبوه هم وجود دارد.

      1. خیلی ممنونم از توضیحتون
        فقط در حالتی که بخوایم با فایل هگز میکرو رو پروگرم کنیم دیگه نیازی به بوت لودر نیست؟

        1. سلام؛
          خواهش می‌کنم. خیر نیازی نیست. میتونید این کار رو انجام بدید. وقتی که خروجی هگز از اردوینو میگیرید ۲ تا بهتون کد هگز میده، یکی با بوت لودر یکی بدون بوت لودر. شما متناسب با نیاز خودتون یکیش رو انتخاب و پروگرام کنید.
          موفق باشید.

  22. سلام و تشکر بابت آموزش خوبتان
    می خواستم بدانم اگر بعد از نصب بوت لودر بخواهیم بوت لودر را از روی میکرو حذف کنیم باید چکار کنیم؟

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

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

    1. سلام دوست عزیز؛
      خوشحال ام از اینکه این مطلب تونسته مفید واقع بشه برات. خواهش میکنم. اگر سوال یا نکته ای هم مد نظرت بود توی همین دیدگاه ریپلای کن

  23. خیلی خوب بود.
    دنبال یه روش راحت بودم از این روش که شما آموزش دادید استفاده کردم. بدون مشکل پروگرام شد و دارم استفاده میکنم از میکروکنترلر اتمگا ۸ ام در پروژه. برای میکروکنترلر های اتماگا ۱۶ یا ۳۲ هم میشه استفاده کرد؟

    1. سلام دوست عزیز
      خوشحالم که این مطلب مفید بوده براتون. در خصوص میکرو های اتمگا ۱۶ و یا ۳۲ که گفتید، از این آموزش نمیشه استفاده کرد!
      اما روند کار به همین صورت هست و باید از پکیج mightycore استفاده بشه. بزودی سر فرصت آموزش این مورد هم قرار خواهم داد.
      ممنون از اینکه مطالب را دنبال میکنید.

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

نشانی ایمیل شما منتشر نخواهد شد.