به نام خدا

آردوینو Uno

 آردوینو Uno R3 نمای مقابل  آردوینو Uno R3 نمای پشت

 آردوینو Uno R2 نمای مقابل  آردوینو Uno SMD  آردوینو Uno نمای مقابل  آردوینو Uno نمای پشت

 

معرفی

برد آردوینو Uno یک میکروکنترلر بر پایه ATmega328 می باشد (datasheet). این برد 14 پین ورودی و خروجی دیجیتال (که 6 تای آن می تواند به عنوان خروجی PWM استفاده گردد)، 6 ورودی آنالوگ، یک تشدیدگر سرامیکی 16مگاهرتز (Ceramic Resonator)، یک پورت USB، یک پاورجک (ورودی منبع تغذیه)، یک ICSP header و یک دکمه ریست دارد. برد Uno شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود بر روی برد می باشد. برای شروع تنها با یک کابل USB، به سـادگی برد را به کامپیوترتان متصـل کنید و یـا آن را با یـک آداپـتور AC-To-DC و یا باتری راه اندازی نمایید.

Uno با بردهای پیشین متفاوت است؛ زیرا در آن از تراشه FTDI USB-to-serial استفاده نشده است و به جای آن از یک Atmega16U2 (تا نسخه R2 از Atmega8U2) که به عنوان مبدل USB-to-serialبرنامه ریزی شده، استفاده گردیده است.
نسخه R2 برد Uno دارای یک مقاومت جهت پولینگ اتصال HWB میکروکنترلر به زمین می باشد که تغییر حالت به DFU را آسان تر می کند.
نسخه R3 برد، ویژگی های جدیدی دارد که در ادامه آمده است:

  • 1.0 pinout: پین های SDA و SCL نزدیک پین AREF و 2 پین جدید دیگر در نزدیکی پین Reset اضافه شده اند. یکی از این پین های جدید IOREF می باشد که اجازه می دهد شیلدها، خود را با ولتاژ خروجی برد تطبیق دهند. در آینده شیلدها قادر خواهند بود خود را با بردهایی که از AVR با ولتاژ 5 ولت استفاده می کنند و همچنین بردهای آردوینوDue که از ولتاژ 3/3 ولت استفاده می کنند، تطبیق دهند. دومین پین برای تغییرات آتی رزرو شده است و در حال حاضر هیچ کاربردی ندارد.
  • مدار ریست قوی تر
  • ATmega16U2 جایگزین 8U2 شده است.

"Uno" مخفف واژگان one in Italian می باشد که برای مشخص کردن نسخه 1/0 نرم افزار آردوینو انتخاب شده است. Uno آخرین سری از بردهای USB دار آردوینو و همچنین مدل مرجع پلت فرم آردوینو می باشد؛ برای مقایسه نسخه های قدیمی به فهرست بردهای آردوینو مراجعه نمایید.

خلاصه

میکروکنترلر ATmega328
ولتاژ عملیاتی 5 ولت
ولتاژ ورودی (پیشنهادی) 7-12 ولت
ولتاژ ورودی (محدوده) 6-20 ولت
پین های دیجیتال ورودی/خروجی 14 (6 تای آن به عنوان خروجی PWM استفاده می شود.)
پین های ورودی آنالوگ 6
جریان DC هر پین ورودی و خروجی 40 میلی آمپر
جریان DC جهت پین 3.3V 50 میلی آمپر
حافظه فلش 32 کیلوبایت  (ATmega328) که 0.5 کیلوبایت از آن مورد استفاده BootLoader قرار می گیرد.
SRAM 2 کیلوبایت (ATmega328)
EEPROM 1 کیلوبایت (ATmega328)
سرعت ساعت 16 مگاهرتز

شماتیک و طرح مرجع

EAGLE files: arduino-uno-Rev3-reference-design.zip (NOTE: works with Eagle 6.0 and newer)

Schematic: arduino-uno-Rev3-schematic.pdf

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

Power

ولتاژ مورد نیاز آردوینو Uno می تواند از طریق اتصال USB و یا یک منبع تغذیه خارجی مثل باتری یا آداپتور AC-to-DC تأمین گردد. منبع تغذیه به صورت خودکار انتخاب می شود.

آداپتور (که سوکت آن از نوعcenter-positive  با قطر 2/1 میلی متری باشد) می تواند به پاورجک موجود برروی برد متصل گردد و سیمهای باتری می توانند مستقیماً وارد پین های GND و Vin شوند.

برد می تواند با منبع تغذیه خارجی 6 تا 20 ولت کار کند. اگر ولتاژ منبع تغذیه پایین تر از 7 ولت باشد، روی ولتاژ پین ها نیز اثر خواهد گذاشت و ممکن است ولتاژ خروجی آنها کمتر از 5 ولت شود، و باعث نوسان گردد. ولتاژ بیش از 12 ولت نیز، می تواند موجب افزایش دمای رگولاتور و در نتیجه آسیب برد گردد. ولتاژ پیشنهادی مناسب بین 7 تا 12 ولت می باشد.

پین های مربوط به Power (منبع تغذیه) به شرح زیر است:

  • VIN: این پین، پین ورودی ولتاژ آردوینو است که در مواقع استفاده از منبع تغذیه خارجی (به جای منبع تغذیه تنظیم شده یا اتصال USB 5 ولتی) از آن استفاده می شود و چنانچه برد از طریق پاورجک به منبع تغذیه وصل شده باشد، می توانید از طریق این پین (به عنوان خروجی) به ولتاژ منبع تغذیه دسترسی داشته باشید.

  • 5V: این پین یک ولتاژ تنظیم شده 5 ولت را از طریق رگولاتور موجود بر روی برد فراهم می کند. برد می تواند از طریق پاورجک (12-7 ولت) DC، پورت(5 ولت) USB و یا پین VIN برد (12-7 ولت)، تغذیه گردد. ولتاژ پین های  5 ولت و 3/3 ولت از رگولاتور عبور می نماید و استفاده از ولتاژ این پین ها ممکن است باعث صدمه دیدن برد شود. از همین رو استفاده از این پین ها توصیه نمی گردد.

  • 3.3V : یک ولتاژ 3/3 ولتی، بوسیله ی رگولاتور روی برد فراهم می گردد که حداکثر جریان آن 50 میلی آمپر می باشد.

  • GND: پین های زمین.

  • IOREF:این پین میزان ولتاژ مرجعی را که میکروکنترلر با آن کار می کند، مشخص می نماید. یک شیلد که به درستی تنظیم شده باشد، می تواند مقدار ولتاژ را از پین IOREF خوانده و منبع تغذیه مناسب خود را انتخاب نماید و یا اینکه مبدل های ولتاژ را برای کار کردن با ولتاژهای 5 ولت یا 3/3 ولت، برروی خروجی ها فعال نماید.

حافظه

ATmega328 دارای 32 کیلو بایت حافظه است (نیم کیلوبایت از آن برای BootLoader استفاده می شود.( همچنین دارای 2 کیلو بایت حافظه SRAM و 1 کیلو بایت حافظه EEPROM می باشد (که با توابع کتابخانه ای EEPROM قابلیت خواندن و نوشتن را دارد) .

پین های ورودی و خروجی

هریک از 14 پین دیجیتال Uno می تواند با استفاده از توابع pinMode()،digitalWrite()، digitalRead() به عنوان ورودی یا خروجی استفاده شود. ولتاز پین ها 5 ولت بوده و ظرفیت جریان جهت هر پین حداکثر 40 میلی آمپر می باشد. همچنین هر یک از این پین ها دارای یک مقاومت داخلی (50-20 کیلواهم) جهت Pull-Up می باشد (که به صورت پیش فرض غیرفعال است). بعلاوه بعضی از پین ها دارای عملکردهای منحصر به فردی می باشند که شرح آن در ذیل آمده است:

  • Serial - (RX) 0 و (TX) 1 : پین RX برای دریافت و TX جهت انتقال اطلاعات به صورت سریال و با پروتکل TTL استفاده می شود. این پین ها به پین های مرتبط USB-to-TTL ATmega8U2 متصل هستند.

  • External interrupts (وقفه های خارجی) - 2 و 3: این پین ها می توانند طوری تنظیم شوند که یک وقفه را براساس اندکی افزایش یا کاهش لبه، و یا هر نوع تغییر در مقدار، ایجاد نمایند. برای جزئیات بیشتر، تابع attachInterrupt() را مشاهده نمایید.

  • 11, 10, 9, 6, 5, 3 - PWM : امکان دسترسی به یک خروجی PWM هشت بیتی را با استفاده از تابع analogWrite() فراهم می کنند.

  • SPI – 10(SS)، 11(MOSI)، 12(MISO) ، 13(SCK) : با استفاده از توابع کتابخانه ای SPI این پین ها می توانند یک ارتباط SPI library ایجاد نمایند.

  • LED – 13: یک LED آماده، به پین دیجیتال 13 متصل شده است. هنگامی که پین در حالت HIGH قرار دارد، LED روشن و زمانی که پین در حالت LOW قرار دارد، خاموش می شود.

Uno 6 ورودی آنالوگ دارد که از A0 تا A5 نامگذاری شده اند. میزان تفکیک پذیری هر یک از پین ها تا 10 بیت می باشد(به عنوان1024مقدار مختلف). به صورت پیش فرض این پین ها می توانند ولتاژی بین ولتاژ پایه (Ground) تا حداکثر 5ولت را اندازه گیری نمایند. ولی با استفاده از پین AREF و تابع analogReference() تغییر حد بالای میزان تفکیک پذیری امکان پذیر می باشد. همچنین بعضی از پین ها دارای عملکردهای منحصر به فردی می باشند که شرح آن در ذیل آمده است:

  • TWI : پین A4 یا SDA و A5 یا SCL: این پین ها امکان ایجاد یک ارتباط TWI را با استفاده از توابع کتابخانه ای Wire مقدور می سازند.

سایر پین ها:

  • AREF:ولتاژ مرجع برای ورودی های آنالوگ، از طریق این پین و با استفاده از تابع analogReference() تأمین می گردد.

  • Reset:وضعیت لاین مرتبط را برای ریست میکروکنترلر در حالت Low قرار می دهد، معمولاً زمانی از این پین استفاده می شود که بخواهید بر روی شیلدتان دکمه ریست قرار دهید. زیرا استفاده از شیلدها از دسترسی به دکمه ریست موجود بر روی برد آردوینو جلوگیری می کند.

نقشه اتصال بین پین های آردوینو به پورتهای ATmega328 را مشاهده نمایید. نحوه اتصال پین ها برای ATmega168 ، ATmega8 وATmega328 یکسان می باشد.

ارتباطات

آردوینو Uno شامل امکاناتی می باشد که ارتباط با کامپیوتر، سایر بردهای آردوینو، و یا دیگر میکروکنترلرها را مقدور می سازد. The ATmega328 امکان ارتباط سریالی(5ولت) UART TTL را از طریق پین های 0(RX)، 1(TX) فراهم می نماید. ATmega16U2 موجود بر روی برد، این ارتباط سریال را تبدیل به یک ارتباط USB نموده و در نهایت یک پورت سریال مجازی(COM) روی کامپیوتر شما ایجاد می کند. برنامه موجود برروی ATmega16U2 از درایور USB Com استفاده می نماید و به هیچ درایور جانبی نیاز ندارد. به هر حال در سیستم عامل ویندوز یک فایل .inf مورد نیاز می باشد. نرم افزار آردوینو شامل یک بخش کنترل پورت سریال است که به شما اجازه می دهد داده های متنی را به آردوینو ارسال، یا از آن دریافت نمایید. چراغهای RX و TX موجود بر روی برد در زمان ارسال و دریافت اطلاعات از طریق پردازشگر مبدل USB به سریال و یا اتصال USB به کامپیوتر (به غیر از ارتباط سریالی پین های 0 و 1) در حالت چشمک زن قرار می گیرد.

یک تابع کتابخانه ای SoftwareSerial (برای ایجاد پورت سریال نرم افزاری) امکان ارتباط سریال را برروی هریک از پین های دیجیتال فراهم می کند.

همچنین ATmega328 از ارتباط (I2C(TWI و SPI پشتیبانی می نماید. نرم افزار آردوینو شامل یک تابع کتابخانه ای به نام Wire Library جهت ساده سازی استفاده از درگا هI2C می باشد. برای جزئیات بیشتر، بخش مستندات را مشاهده نمایید. برای ارتباط SPIاز تابع کتابخانه ای SPI استفاده کنید.

برنامه نویسی

آردوینو Uno با نرم افزار آردوینو قابل برنامه نویسی است (دانلود). از منوی Tools > Board برد مورد نظر خود را (با توجه به نوع میکروکنترلر برد) انتخاب نمایید. برای اطلاعات بیش تر بخش راهنمای مرجع و آموزش ها را مشاهده کنید.

ATmega328 موجود بروی برد آردوینو دارای یک bootloader از پیش آماده می باشد که به شما این امکان را می دهد تا بدون نیاز به پروگرامر جانبی، کدهای جدید خود را آپلود و اجرا نمایید. این ارتباط بر اساس پروتکل STK500 بر قرار می شود (راهنمای مرجع، C header files ).

همچنین شما می توانید BootLoader را نادیده گرفته و مستقیماً از طریق ICSP header (مخفف In-Circuit Serial Programming) برد را برنامه ریزی نمایید. برای مشاهده ی دستورالعمل ها اینجا کلیک کنید.

سورس کد firmware مربوط به پردازشگر ATmega16U2 (یا 8U2 در بردهای نسخه ی Rev1 و Rev2) موجود می باشد. همچنین ATmega16U2/8U2 با یک DFU bootloader بارگذاری شده است،که می تواند به شیوه های زیر فعال شود:

  • نسخه Rev1: جامپر مربوطه را در پشت برد (نزدیک نقشه چایی ایتالیا) متصل نمایید و سپس ATmega8U2 را ریست نمایید.
  • نسخه Rev2به بعد: برد Uno دارای یک مقاومت جهت پولینگ اتصال HWB میکروکنترلر ATmega8U2/16U2 به زمین می باشد که تغییر حالت به DFU را آسان تر می کند.

همچنین شما می توانید از نرم افزار FLIP شرکت Atmel (سیستم عامل ویندوز) یا یک DFU پروگرمر (سیستم عامل MAC OS X و لینوکس) و یا یک پروگرامر جانبی از طریق پورت ISP جهت بارگذاری Firmware جدید استفاده نمایید (تا DFU bootloader بازنویسی شود). برای اطلاعات بیشتر بخش آموزش ها را مشاهده نمایید.

ریست خودکار (نرم افزاری)

برد آردوینوUno طوری طراحی شده است که در صورت اتصال به کامپیوتر، قبل از آپلود کد جدید، امکان ریست بوسیله ی نرم افزار آردوینو را به جای فشار دکمه ریست داشته باشید. یکی از خطوط سخت افزاری کنترل جریان (DTR) میکروکنترلر ATmega8U2\16U2 از طریق یک خازن 100 نانوفارادی به پایه ریست ATmega328 متصل شده است. زمانی که این خط آزاد می شود (در حالت LOW قرار می گیرد) پایه ریست در وضعیتی قرار می گیرد که باعث ریست پردازنده می شود. با استفاده از این خازن نرم افزار آردوینو به شما اجازه می دهد که به راحتی و با فشردن دکمه Upload در محیط نرم افزاری آردوینو، کد خود را آپلود نمایید. بدین معنی که در وضعیت Low قرار گرفتن DTR همزمان با شروع آپلود، هماهنگی خوبی برای داشتن Time out کوتاهتر توسط BootLoader ایجاد می نماید.

این راه اندازی ملزومات دیگری نیز دارد، زمانی که برد Uno به کامپیوتری که سیستم عامل آنMac OS X یا لینوکس است، متصل باشد در هر بار ارتباط نرم افزار با برد (از طریق کابل USB) عمل ریست اتفاق می افتد. بعد از گذشت نیم ثانیه یا بیشتر BootLoader بردUno در حال اجرا می باشد. از آنجا که Uno طوری برنامه نویسی شده است که داده های ناقص (به عنوان مثال داده ای در حاشیه آپلود کد جدید) را نادیده بگیرد، چند بایت اول هر داده ای را که بعد از ایجاد ارتباط به برد ارسال می گردد، جدا می نماید. چناچه برنامه ای بر روی برد در حال اجرا باشد، در زمان شروع برنامه می تواند تنظیمات اولیه و یا سایر داده ها را دریافت کند. توجه داشته باشید نرم افزاری که قرار است با برد آردوینو ارتباط برقرار کند، می بایست حداقل بعد از یک ثانیه تأخیر پس از برقراری ارتباط، نسبت به ارسال اطلاعات اقدام نماید.

Uno شامل یک مسیر می باشد که با قطع آن می توانید ریست خودکار را غیر فعال نمایید. این دو نقطه در طرفین این مسیر می توانند دوباره با لحیم کاری به یکدیگر متصل شوند، تا مجدداً ریست خودکار فعال گردد. این قسمت با برچسب"RESET-EN" مشخص شده است. همچنین شما می توانید با اتصال یک مقاومت 110 اهم از پین 5 ولت به پین ریست، سیستم ریست خودکار را غیر فعال نمایید. برای اطلاعات بیشتر این موضوع را در انجمن مشاهده کنید.

محافظت پورت USB از جریان بیش از حد

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

مشخصه های فیزیکی

حداکثر طول و عرض PCB برد Uno به ترتیب 6.86 و 5.33 سانتی متر می باشد که با احتساب کانکتور USB و پاورجک، ابعاد اصلی آن افزایش می یابد. چهار سوراخ موجود بر روی برد به شما اجازه می دهد که برد را برروی یک سطح یا جعبه پیچ نمایید. توجه کنید که فاصله بین پین های دیجیتال 7 و 8 برابر 160 میلی متر (0.16 اینچ) و فاصله بین سایر پین ها 100میلی متر می باشد.