آردوینو یک ماژول الکترونیکی مناسب برای طراحی تجهیزات الکترونیکی است که براساس سخت ­افزار و نرم­ افزار منعطف طراحی شده است. ماژول های مختلفی از آردوینو در اندازه­ های متفاوت با اندازه حافظه و سرعت های متفاوت در بازار یافت می­شود که بر حسب نیاز قابل تهیه می ­باشد. ماژول های آردوینو مبتنی بر هسته های میکروکنترلری از خانواده AVR یا ARM هستند. مرسوم ترین از مدل­های آردوینو 32 کیلوبایت حافظه داشته و دارای سرعت پردازنده 16 مگاهرتز هستند. 

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

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

در مقایسه با سایر پلتفرم ­های میکروکنترلری، آردوینو نسبتا ارزان است. پس از آپلود برنامه بر روی بورد آردوینو، میکروکنترلر آن به راحتی از روی بورد قابل جداسازی می­باشد.

آردوینو به راحتی می­ تواند کنترل انواع سنسورها را در دست گرفته و از این طریق بر دنیای اطراف خود تاثیرگذاری کند. این کار با استفاده از شیلدهای مختلف آردوینو تا حد امکان ساده ­سازی شده است. منظور از شیلد، ماژول ­های آماده­ ای است که برای کاهش هزینه و تلفات زمان توسط شرکت­های مختلف ارائه شده و به پین­ های ورودی/خروجی آردوینو متصل می­شود که از جمله می­توان به شیلدهای رله، صفحه نمایش، سنسورهای مختلف، وای­ فای و اترنت اشاره نمود. زبان رایج برای برنامه­ نویسی آردوینو زبان C می­باشد.  نرم افزار، بسیاری از کتابخانه ها و کدهای مورد نظر خود را می توانید از سایت رسمی آردوینو یعنی https://www.arduino.cc دانلود کنید. 

یکی از رایج­ ترین، ساده ­ترین و محبوب­ ترین بوردهای آردوینو، برد یونو (UNO) است که در شکل زیر نشان داده شده است.

معرفی آردوینو یونو (UNO)

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

  • سوکت (USB Socket): به کمک آن، عملیات برنامه ­ریزی از کامپیوتر انجام می­گیرد. همچنین به عنوان لینک ارتباطی با سایر تجهیزات و یا به عنوان فراهم­ کننده ولتاژ تغذیه می­تواند به­ کار گرفته شود.
  • سوئیچ ریست (Reset Switch): با فشردن آن آردوینو ری­ استارت شده و برنامه داخل آن از ابتدا شروع به اجرا می ­شود.
  • پایه های ورودی/خروجی دیجیتال (Digital IO Pins): دارای 14 پایه ورودی/خروجی دیجیتال از شماره 0 تا 13 است که می­تواند به صورت ورودی یا خروجی تعریف شود. به عنوان مثال می­توان یک کلید فشاری یا سوئیچ صفر-یک را به عنوان ورودی و LED را به عنوان خروجی به این پایه­ ها متصل نمود. ولتاژ پین‌ها 5 ولت بوده و حداکتر جریان هر پین حداکثر 40 میلی آمپر می‌باشد. پین های 3، 5، 6، 9، 10 و 11 می تواند بعنوان خروجی PWM  8 بیتی استفاده شود. همچنین ورودی های آنالوگ A0 تا A5 را نیز می توان به صورت پایه دیجیتالی تعریف کرد. البته به شرط اینکه از قبل برای نمونه برداری آنالوگ رزرو نشده باشد.
  • لامپ ال ­ای ­دی(L): بطور پیش­فرض به پایه 13 متصل شده است.
  • ال ­ای ­دی تغذیه (Power LED): به محض اتصال تغذیه به ماژول این لامپ با رنگ سبز روشن می­شود.
  • ATMega328: قلب ماژول آردوینو یونو است. این تراشه یک میکروکنترلر از خانواده AVR است که دارای 32 کیلوبایت حافظه فلش برای ذخیره برنامه، 2 کیلوبایت حافظه SRAM و 1 کیلوبایت حافظه EEPROM می­باشد. پس از آپلود برنامه این میکروکنترلر قابلیت جداسازی دارد و به همراه یک کریستال 16 مگاهرتز می‌تواند بر روی سایر بوردها مورد استفاده قرار گیرد.
  • هدر برنامه ­ریز سریال (ICSP Header): برای برنامه ­ریزی مستقیم تراشه ATMega328 بدون استفاده از بوت لودر آردوینو استفاده می­شود. در این حالت نیاز به پروگرامر AVR می­باشد و اکثر برنامه­ نویسان آردوینو معمولاً از آن استفاده نمی­ کنند. 
  • پایه­ های آنالوگ (Analog Pins): برای اندازه­ گیری ولتاژهای آنالوگ بین صفر تا پنج ولت با دقت 10 بیت می توان از پایه­ های A0 تا A5 استفاده نمود. 
  • کانکتور اتصالات تغذیه (Power Connector): یک راه دیگر برای تغذیه آردوینو می­باشد که شامل ورودی 5 ولت، زمین و همچنین خروجی 5 و 3/3 ولت جهت تغذیه مدارت جانبی می­باشد.
  • سوکت تغذیه DC: جکی است که بطور مستقل می­توان به آن ولتاژهای بین 7 تا 12 ولت اعمال کرد و به کمک یک رگولاتور روی بورد، ولتاژ 5 ولت تولید کرد.
  • رابط سریال (Serial Interface): به منظور انتقال برنامه از کامپیوتر به بورد آردوینو و همچنین ارسال و دریافت داده­ های متنی استفاده می­شود.  پایه 0 و 1 بورد آردوینو مربوط به ارتباط سریال بوده و به سوکت USB بورد متصل می­باشد.

برنامه ­ریزی آردوینو

برای انتقال برنامه نوشته شده بر روی حافظه فلش آردوینو نیاز به یک برنامه واسط (IDE) داریم. به کمک یک کابل USB و اتصال آن به کامپیوتر و آردوینو به راحتی قادر به انتقال برنامه­ ها هستیم. نکته قابل توجه اینکه، این برنامه واسط بر روی کامپیوترهایی با سیستم عامل ویندوز، مک و لینوکس قابل اجرا است. 

قسمت­های مختلف نرم‌افزار  واسط آردوینو در شکل زیر آورده شده است.

  • محیط برنامه­ نویسی (Program Area): پنجره­ای است که در آن برنامه مورد نظر نوشته می­شود.
  • تایید (Verify): جهت کامپایل کردن برنامه و یافتن خطاهای احتمالی استفاده می شود. در صورت وجود خطا در پنجره پایین به نام صفحه گزارش (Log) این خطا درج می­گردد.
  • بارگذاری (Upload): علاوه بر کامپایل، کدهای تولید شده را نیز به آردوینو منتقل می­کند.
  • وضعیت (Status): در پایین صفحه و گوشه راست صفحه گزارش ظاهر می­شود. نوع آردوینو متصل شده به IDE را مشخص کرده و در صورت استفاده از سیستم عامل ویندوز، پورت سریال متصل شده (COMxx) به همراه شماره آن را درج می­کند.
  • مانیتور سریال (Serial monitor): برای نمایش داده‌های دریافت شده از پورت سریال بورد آردوینو و همچنین ارسال داده به بورد آردوینو سوئیچ استفاده می‌شود. همچنین از مسیر Tools/Serial plotter  می­توان داده های دریافتی از بورد را بصورت نمودار مشاهده کرد.