تحلیل و بررسی برد آردوینو اونو Arduino Uno
بررسی اجمالی برد آردوینو Arduino Uno
برد آردوینو Arduino Uno R3 با تراشه R3 یک میکروکنترلر بر پایه ATmega 328 می باشد. برد آردوینو Arduino Uno R3 با تراشه R3 14 پین ورودی و خروجی دیجیتال (که 6 تای آن می تواند به عنوان خروجی PWM استفاده گردد)، 6 ورودی آنالوگ، یک تشدیدگر سرامیکی 16 مگاهرتز (Ceramic Resonator)، یک پورت USB، یک ورودی منبع تغذیه، یک ICSP header و یک دکمه ریست دارد. برد آردوینو Arduino Uno R3 با تراشه R3 شامل کلیه امکانات مورد نیاز جهت بکارگیری میکروکنترلر موجود بر روی برد می باشد. برای شروع تنها با یک کابل USB، به سـادگی برد را به کامپیوترتان متصـل کنید و یـا آن را با یـک آداپـتور AC-To-DC و یا باتری راه اندازی نمایید. برد آردوینو Arduino Uno R3 با تراشه R3 با بردهای قبلی تفاوت دارد؛ زیرا در آن از تراشه FTDI USB-to-serial استفاده نشده است و به جای آن از یک Atmega16U2 که به عنوان تبدیل کننده USB-to-serialتنظیم شده است؛ استفاده می کند. ورژن 2 برد آردوینو Arduino Uno R3 با تراشه R3 دارای یک مقاومت جهت پولینگ اتصال HWB میکروکنترلر به زمین می باشد که تغییر حالت به DFU را آسان تر می کند. برد آردوینو Arduino Uno R3 با تراشه R3 ورژن R3 با وجود اینکه خیلی جدید نیست ولی هنوز در رده پرفروش های سایت اسپارک فان می باشد.
ویژگیهای ورژن 3 آردوینو اونو Arduino Uno
- pinout: پین های SDA و SCL نزدیک پین AREF و 2 پین جدید دیگر در نزدیکی پین Reset اضافه شده اند. یکی از این پین های جدید IOREF می باشد که اجازه می دهد شیلدها، خود را با ولتاژ خروجی برد هماهنگ کنند. در آینده شیلدها قادر خواهند بود خود را با بردهایی که از AVR با ولتاژ 5 ولت استفاده می کنند و همچنین بردهای آردوینوDue که از ولتاژ 3/3 ولت استفاده می کنند، تطبیق دهند. دومین پین برای تغییرات آینده رزرو شده است و در حال حاضر هیچ کاربردی ندارد. "Uno" به ایتالیایی معنی "یک" را می دهد. برای مشخص کردن نسخه 1/0 نرم افزار آردوینو انتخاب شده است. Uno آخرین سری از بردهای USB دار آردوینو و همچنین مدل مرجع پلت فرم آردوینو می باشد.
خلاصه ویژگیهای برد آردوینو Arduino UNO R3
میکروکنترلر |
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مگاهرتز |
تغذیه برد آردوینو اونو Arduino Uno R3
ولتاژ مورد نیاز برد آردوینو Arduino Uno R3 با تراشه R3می تواند از طریق اتصال USB و یا یک منبع تغذیه خارجی مثل باتری یا آداپتور AC-to-DC تأمین شود. منبع تغذیه به صورت خودکار انتخاب می شود. آداپتور می تواند به پاورجک موجود برروی برد متصل شود و سیم های باتری می توانند مستقیماً وارد پین های GND و Vin شوند. برد آردوینو Arduino Uno R3 با تراشه R3 میتواند با منبع تغذیه خارجی 6 تا 20 ولت کار کند. اگر ولتاژ منبع تغذیه پایین تر از 7 ولت باشد، روی ولتاژ پین ها نیز تاثیردارد و ممکن است ولتاژ خروجی آنها کمتر از 5 ولت شود. ولتاژ بیش از 12 ولت نیز، می تواند موجب افزایش دمای رگولاتور و در نتیجه آسیب برد شود. ولتاژ پیشنهادی مناسب بین 7 تا 12 ولت می باشد. نظرات کاربران در خصوص برد Arduino Uno
پینهای تغذیه روی برد آردوینو Arduino Uno
VIN: این پین، پین ورودی ولتاژ آردوینو است که در مواقع استفاده از منبع تغذیه خارجی (به جای منبع تغذیه تنظیم شده یا اتصالUSB 5ولتی) از آن استفاده می شود و اگر برد از طریق پاورجک به منبع تغذیه وصل شده باشد، می توانید از طریق این پین (به عنوان خروجی) به ولتاژ منبع تغذیه دسترسی داشته باشید. 5V: این پین یک ولتاژ تنظیم شده 5 ولت را از طریق رگولاتور موجود بر روی برد فراهم می کند. برد می تواند از طریق پاورجک 7 تا 12 ولت DC، پورتUSB با ولتاژ 5 ولت و یا پین VIN روی برد با ولتاژ 7 تا 12 ولت تغذیه شود. ولتاژ پین های 5 ولت و 3/3 ولت از رگولاتور عبور می نماید و استفاده از ولتاژ این پین ها ممکن است باعث خراب شدن برد شود. 3.3V: یک ولتاژ 3/3 ولتی، بوسیله ی رگولاتور روی برد فراهم می شود که حداکثر جریان آن 50 میلی آمپر می باشد. GND: پین های زمین یا منفی مدار میباشند. IOREF:این پین میزان ولتاژ مرجعی را که میکروکنترلر با آن کار می کند، مشخص می نماید. یک شیلد که به درستی تنظیم شده باشد، می تواند مقدار ولتاژ را از پین IOREF: خوانده و منبع تغذیه مناسب خود را انتخاب نماید و یا اینکه مبدل های ولتاژ را برای کار کردن با ولتاژهای 5 ولت یا 3/3 ولت، برروی پین خروجی ها فعال کند.
حافظه برد آردوینو Arduino Uno
همانطور که در بالا توضیح داده شد، برد آردوینو Uno دارای تراشه ATmega328 میباشد. این تراشه دارای حافظه 32 کیلو بایتی است وهمچنین دارای 2 کیلو بایت حافظه SRAM و 1 کیلو بایت حافظه EEPROM می باشد. کلیه این موارد در بخش ویژگیهای صفحه محصول برد آردوینو Arduino Uno R3 با تراشه R3 اورجینال توضیح داده شده است.
پین های ورودی و خروجی I/O آردوینو Uno
هریک از 14 پین دیجیتال برد آردوینو Arduino Uno R3 با تراشه R3 می تواند با استفاده از توابع pinMode()،digitalWrite()، digitalRead() به عنوان ورودی یا خروجی استفاده شود. ولتاژ پین ها 5 ولت بوده و ظرفیت جریان برای هر پین حداکثر 40 میلی آمپر می باشد. همچنین هر یک از این پین ها دارای یک مقاومت داخلی 50-20 کیلواهم جهت Pull-Up می باشد، که به صورت پیش فرض غیرفعال است. همچنین بعضی از پین ها دارای عملکردهای اختصاصی می باشند که به صورت زیر است: Serial پین های (RX) یا 0 و (TX) یا 1: پین RX برای دریافت و TX جهت انتقال اطلاعات به صورت سریال و با پروتکلTTL استفاده می شود. این پین ها به پین های مرتبط USB-to-TTL ATmega8U2 متصل هستند. وقفه های خارجی 2 و 3: این پین ها می توانند طوری تنظیم شوند که یک وقفه را براساس اندکی افزایش یا کاهش لبه، و یا هر نوع تغییر در مقدار، ایجاد نمایند. PWM پین های 11, 10, 9, 6, 5, 3 : امکان دسترسی به یک خروجی 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 نامگذاری شده اند. به صورت پیش فرض این پین ها می توانند ولتاژی بین ولتاژ پایه (Ground) تا حداکثر 5 ولت را اندازه گیری نمایند. ولی با استفاده از پین AREF و تابع analogReference() تغییر دادن حد بالای جداشدن امکان پذیر می باشد. همچنین بعضی از پین ها دارای عملکردهای اختصاصی می باشند که به صورت زیراست: TWIپین A4 یا SDA و A5 یا SCL: این پین ها امکان ایجاد یک ارتباط TWI را با استفاده از توابع کتابخانه ای Wire امکان پذیرمی شود. AREF:ولتاژ مرجع برای ورودی های آنالوگ، از طریق این پین و با استفاده از تابع analogReference() انجام می شود. Reset:وضعیت خط مرتبط را برای ریست میکروکنترلر در حالت Low قرار می دهد، معمولاً زمانی از این پین استفاده می شود که بخواهید بر روی شیلدتان دکمه ریست قرار دهید. زیرا استفاده از شیلدها از دسترسی به دکمه ریست موجود بر روی برد آردوینو جلوگیری می کند. نقشه اتصال بین پین های آردوینو به پورت های ATmega328 را مشاهده نمایید. نحوه اتصال پین ها برای ATmega168، ATmega8 و ATmega328 یکسان می باشد.
شماتیک و طرح مرجع برای ساخت آردوینو Arduino
توجه: طرح مرجع آردوینو می تواند از یک ATmega168 ، ATmega8 و یا ATmega328 استفاده نماید. در نسخه های جدید از ATmega328 استفاده شده اما همچنان در طرح شماتیک،ATmega8 به عنوان مرجع نشان داده شده است. ساختار پین ها در هر سه پردازشگر یکسان است. خرید آردوینو Arduino Uno
ارتباطات برد آردوینو uno
برد آردوینو Arduino Uno R3 با تراشه R3 دارای امکاناتی است که ارتباط با کامپیوتر، سایر بردهای آردوینو، و یا دیگر میکروکنترلرها را برقرار می کند. ATmega328 امکان ارتباط سریالی با UART TTLفراهم می کند. ATmega16U2 موجود بر روی برد، این ارتباط سریال را تبدیل به یک ارتباط USB نموده و در نهایت یک پورت سریال مجازی(COM) روی کامپیوتر شما ایجاد می کند. برنامه موجود برروی ATmega16U2 از درایور USB Com استفاده می کند و به هیچ درایور جانبی نیاز ندارد. به هر حال در سیستم عامل ویندوز یک فایل .inf مورد نیاز می باشد. نرم افزار آردوینو شامل یک بخش کنترل پورت سریال است که به شما اجازه می دهد داده های متنی را به آردوینو ارسال، یا از آن دریافت نمایید. چراغ های RX و TX موجود بر روی برد در زمان ارسال و دریافت اطلاعات از طریق پردازشگر مبدل USB به سریال و یا اتصال USB به کامپیوتر (به غیر از ارتباط سریالی پین های 0 و 1) در حالت چشمک زن قرار می گیرد. یک تابع کتابخانه ای SoftwareSerial امکان ارتباط سریال را برروی هریک از پین های دیجیتال فراهم می کند. همچنین ATmega328 از ارتباط TWI و SPI پشتیبانی می نماید. نرم افزار آردوینو شامل یک تابع کتابخانه ای به نام Wire Library برای ساده سازی استفاده از درگا هI2C می باشد.
برنامه نویسی با کامپایلر آردوینو Arduino IDE
بردهای آردوینو با نرم افزار آردوینو قابل برنامه نویسی هستند. از منوی Tools > Board برد مورد نظر خود را (با توجه به نوع میکروکنترلر برد) انتخاب نمایید. ATmega328 موجود بروی برد آردوینو دارای یک bootloader از پیش آماده می باشد که به شما این امکان را می دهد تا بدون نیاز به پروگرامر جانبی، کدهای جدید خود را آپلود و اجرا نمایید. این ارتباط بر اساس پروتکل STK500 بر قرار می شود. همچنین شما می توانید BootLoader را نادیده گرفته و مستقیماً از طریق ICSP header برد را برنامه ریزی نمایید. سورس کد firmware مربوط به پردازشگر ATmega16U2یا 8U2 در بردهای نسخه ی Rev1 و Rev2 وجود دارد. همچنین ATmega16U2/8U2 با یک DFU bootloader بارگذاری شده است. همچنین شما می توانید از نرم افزار FLIP یا یک DFU پروگرمر (سیستم عامل MAC OS X و لینوکس) و یا یک پروگرامر جانبی از طریق پورت ISP برای بارگذاری Firmware جدید استفاده نمایید.
ریست خودکار توسط نرم افزار آردوینو
برد آردوینو Arduino Uno R3 با تراشه R3طوری طراحی شده است که در صورت اتصال به کامپیوتر، قبل از آپلود کد جدید، امکان ریست به وسیله ی نرم افزار آردوینو را به جای فشار دکمه ریست داشته باشید. یکی از خطوط سخت افزاری کنترل جریان (DTR) میکروکنترلر ATmega8U216U2 از طریق یک خازن 100 نانوفارادی به پایه ریست ATmega328 متصل شده است. زمانی که این خط آزاد می شود (در حالت LOW قرار می گیرد) پایه ریست در وضعیتی قرار می گیرد که باعث ریست پردازنده می شود. با استفاده از این خازن نرم افزار آردوینو به شما اجازه می دهد که به راحتی و با فشردن دکمه Upload در محیط نرم افزاری آردوینو، کد خود را آپلود نمایید. بدین معنی که در وضعیت Low قرار گرفتن DTR همزمان با شروع آپلود، هماهنگی خوبی برای داشتن Time out کوتاه تر توسط BootLoader ایجاد می نماید.
زمانی که برد آردوینو Arduino Uno R3 به کامپیوتری که سیستم عامل آنMac OS X یا لینوکس است، متصل باشد در هر بار ارتباط نرم افزار با برد از طریق کابل USB عمل ریست اتفاق می افتد. بعد از گذشت نیم ثانیه یا بیشتر BootLoader برد آردوینوUno در حال اجرا می باشد. از آنجا که آردوینو Uno طوری برنامه نویسی شده است که داده های ناقص (به عنوان مثال داده ای در حاشیه آپلود کد جدید) را حذف کند، چند بایت اول هر داده ای را که بعد از ایجاد ارتباط به برد ارسال می شود، جدا می کند. چناچه برنامه ای بر روی برد در حال اجرا باشد، در زمان شروع برنامه می تواند تنظیمات اولیه و یا سایر داده ها را دریافت کند. برد آردوینو Arduino Uno R3 شامل یک مسیر می باشد که با قطع آن می توانید ریست خودکار را غیر فعال نمایید. این دو نقطه در هر دو طرف این مسیر می توانند دوباره با لحیم کاری به یکدیگر متصل شوند، تا مجدداً ریست خودکار فعال گردد. همچنین شما می توانید با اتصال یک مقاومت 110 اهم از پین 5 ولت به پین ریست، سیستم ریست خودکار را غیر فعال نمایید.
محافظت پورت USB آردوینو از جریان بیش از حد
برد آردوینو Arduino Uno R3 با تراشه R3 دارای یک پلی فیوز قابل ریست جهت محافظت از پورت USB کامپیوتر شما در مقابل افزایش یا کاهش جریان می باشد. علاوه بر این بیشتر کامپیوترها سیستم محافظت داخلی خودشان را دارند و این فیوز صرفاً یک لایه حفاظتی مجزا را فراهم می نماید. چناچه بیش از 500 میلی آمپر جریان از پورت USB گرفته شود، فیوز به صورت خودکار تا زمان متعادل شدن جریان ارتباط را قطع می نماید.
مشخصه های فیزیکی
حداکثر طول و عرض PCB برد Uno به ترتیب 6/86 و 5/33 سانتی متر می باشد که با احتساب کانکتور USB و پاورجک، ابعاد اصلی آن افزایش می یابد. چهار سوراخ موجود بر روی برد به شما اجازه می دهد که برد را برروی یک سطح یا جعبه پیچ نمایید. توجه کنید که فاصله بین پین های دیجیتال 7 و 8 برابر 160 میلی متر و فاصله بین سایر پین ها 100میلی متر می باشد. سایت سازنده: ARDUINO
جمع بندی برد آردوینو UNO R3
- تراشه Atmega328
- دارای رگولاتر 5 ولت
- فرکانس پردازش 16MHz
- سازگار با محیط IDE آردوینو
- تنوع در شیلدها و مناسب پروژههای رباتیکی
- دارای 28 پایه GPIO برای ارتباط با سنسورها و بردهای دیگر