🆚 آردوینو اونو، نانو یا مگا؟ مقایسهی کامل و راهنمای انتخاب برد
سه بردی که در هر فروشگاه قطعات الکترونیک میبینی آردوینو اونو، نانو و مگا هستند. هر سه با یک زبان و یک نرمافزار برنامهنویسی میشوند و یک برنامهی چشمکزن روی هر سه بدون تغییر کار میکند. پس فرقشان چیست و کدام را بخریم؟ در این راهنما مشخصات هر سه را کنار هم میگذاریم، فرقهایی را که وسط پروژه غافلگیرت میکنند (مثل پینهای I2C مگا) توضیح میدهیم و برای هر نوع پروژه پیشنهاد مشخص میدهیم.
جدول مقایسه
| ویژگی | اونو (Uno R3) | نانو (Nano) | مگا (Mega 2560) |
|---|---|---|---|
| تراشه | ATmega328P | ATmega328P | ATmega2560 |
| پین دیجیتال | ۱۴ (۶ تا PWM) | ۱۴ (۶ تا PWM) | ۵۴ (۱۵ تا PWM) |
| ورودی آنالوگ | ۶ | ۸ (A6 و A7 فقط آنالوگ) | ۱۶ |
| حافظهی برنامه (فلش) | ۳۲ کیلوبایت | ۳۲ کیلوبایت | ۲۵۶ کیلوبایت |
| رم (SRAM) | ۲ کیلوبایت | ۲ کیلوبایت | ۸ کیلوبایت |
| EEPROM | ۱ کیلوبایت | ۱ کیلوبایت | ۴ کیلوبایت |
| سریال سختافزاری | ۱ | ۱ | ۴ |
| پین وقفهی خارجی | ۲ و ۳ | ۲ و ۳ | ۲، ۳، ۱۸، ۱۹، ۲۰، ۲۱ |
| I2C (SDA، SCL) | A4، A5 | A4، A5 | ۲۰، ۲۱ |
| SPI | ۱۰ تا ۱۳ | ۱۰ تا ۱۳ | ۵۰ تا ۵۳ |
| اندازه | حدود ۶۹ × ۵۳ میلیمتر | حدود ۴۵ × ۱۸ میلیمتر | حدود ۱۰۱ × ۵۳ میلیمتر |
| سرعت و ولتاژ کاری | هر سه ۱۶ مگاهرتز و ۵ ولت | ||
این مقایسه دربارهی نسخههای کلاسیک است. اونوی نسل جدید (Uno R4) تراشهی ۳۲ بیتی دیگری دارد و داستانش جداست.
آردوینو اونو: بهترین معلم
آردوینو اونو برد استاندارد آموزش است. پینهایش هدر مادگی دارند و سیم جامپر مستقیم در آنها فرو میرود، روی برد شمارهی هر پین درشت نوشته شده و تقریباً هر آموزش و کتاب و شیلدی برای آن طراحی شده است. جک آداپتور دارد و با ۷ تا ۱۲ ولت هم روشن میشود. نقطهی ضعفش اندازه است: داخل یک جعبهی کوچک یا روی ربات مینیاتوری جا نمیشود.
آردوینو نانو: همان اونو، کوچک
آردوینو نانو همان تراشهی اونو را دارد، پس هر برنامهی اونو روی آن اجرا میشود. پایههایش نری است و برد را مستقیم روی بردبورد مینشانی؛ برای پروژهی جمعوجور و نهایی عالی است. دو ورودی آنالوگ اضافه هم دارد: A6 و A7. این دو فقط با analogRead کار میکنند و نمیشود آنها را خروجی دیجیتال یا ورودی با pull-up کرد. نکتهی خرید: بیشتر نانوهای بازار کپیاند، چیپ USB آنها CH340 است و درایورش باید نصب شود، و موقع آپلود اغلب باید گزینهی ATmega328P (Old Bootloader) را انتخاب کنی.
آردوینو مگا: وقتی پین کم میآوری
آردوینو مگا ۲۵۶۰ برای پروژههای بزرگ است: ۵۴ پین دیجیتال، ۱۶ ورودی آنالوگ، هشت برابر حافظهی برنامه و چهار برابر رم. مهمتر از همه چهار پورت سریال سختافزاری دارد؛ یعنی میتوانی همزمان با کامپیوتر، ماژول بلوتوث، GPS و یک نمایشگر سریال حرف بزنی بدون اینکه سراغ SoftwareSerial بروی. برای چاپگر سهبعدی، ربات با چند موتور، ماتریس بزرگ LED یا تابلوی پر از دکمه و نمایشگر، مگا انتخاب طبیعی است.
یک غافلگیری رایج: پینهای I2C مگا روی A4 و A5 نیستند، روی ۲۰ (SDA) و ۲۱ (SCL) هستند. شیلدی که I2C را از A4 و A5 برمیدارد روی مگا کار نمیکند. پینهای SPI هم ۵۰ تا ۵۳ است و شیلدهایی که SPI را از هدر ششپایهی ICSP میگیرند روی هر سه برد درست کار میکنند.
یک برنامه برای هر سه: «من کدام بردم؟»
محیط آردوینو هنگام کامپایل اسم برد را به شکل یک ماکرو به برنامه میدهد. این برنامه از همین استفاده میکند و روی برد واقعی اسم برد و تعداد پینهایش را در سریال مانیتور چاپ میکند:
// Which board am I? Prints the board name and its pin counts.
#if defined(ARDUINO_AVR_MEGA2560)
const char* BOARD = "Arduino Mega 2560";
#elif defined(ARDUINO_AVR_NANO)
const char* BOARD = "Arduino Nano";
#elif defined(ARDUINO_AVR_UNO)
const char* BOARD = "Arduino Uno";
#else
const char* BOARD = "another board";
#endif
void setup() {
Serial.begin(9600);
Serial.print("Board: ");
Serial.println(BOARD);
Serial.print("Digital pins (incl. analog): ");
Serial.println(NUM_DIGITAL_PINS);
Serial.print("Analog inputs: ");
Serial.println(NUM_ANALOG_INPUTS);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
// A0 exists on every board; a Nano can also read A6 and A7.
int value = analogRead(A0);
Serial.print("A0 = ");
Serial.println(value);
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
delay(1000);
}
ARDUINO_AVR_UNOو دو ماکروی دیگر را خود Arduino IDE بر اساس بردی که در منوی Tools انتخاب کردهای تعریف میکند.NUM_DIGITAL_PINSروی اونو و نانو ۲۰ و روی مگا ۷۰ است، چون پینهای آنالوگ هم شمارهی دیجیتال دارند.NUM_ANALOG_INPUTSهم به ترتیب ۶، ۸ و ۱۶ است.LED_BUILTINدر هر سه برد پین ۱۳ است، پس چراغ داخلی روی هر سه چشمک میزند.
#if پینهای I2C یا سریال دوم را برای مگا جدا تعریف کن تا یک کد روی هر سه برد درست کار کند.کدام را بخرم؟
| پروژه | پیشنهاد | چرا |
|---|---|---|
| اولین برد، یادگیری، کلاس | اونو | سیمکشی راحت، آموزش بیشتر، شیلدها |
| پروژهی کوچک و نهایی، ربات مینیاتوری، پوشیدنی | نانو | کوچک، روی بردبورد، ارزان |
| پروژهی مدرسه با چند سنسور و یک نمایشگر | اونو | پین و حافظه کافی است |
| چند ماژول سریال همزمان (بلوتوث، GPS، …) | مگا | چهار سریال سختافزاری |
| دهها LED، دکمه یا رله | مگا (یا اونو با شیفت رجیستر) | ۵۴ پین دیجیتال |
| برنامهی بزرگ با کتابخانههای سنگین | مگا | ۲۵۶ کیلوبایت فلش و ۸ کیلوبایت رم |
| پروژهای که باید به وایفای وصل شود | هیچکدام؛ ESP32 | وایفای داخلی |
اگر پروژهات به اینترنت نیاز دارد، مقایسهی ESP32 و آردوینو اونو و ESP32 یا ESP8266 را بخوان.
هر سه را در شبیهساز امتحان کن
قبل از خرید میتوانی هر سه برد را در شبیهساز تینکرکد فارسی ببینی. اونو و نانو و همهی درسها و مثالهایشان رایگاناند و اجرای مگا به اشتراک Plus نیاز دارد (باز کردن و خواندن پروژههایش رایگان است). برای دیدن ورودیهای اضافهی نانو، چشمکزن با سرعت قابل تنظیم روی پین A7 نانو را باز کن، و برای حس کردن پینهای زیاد مگا، نشانگر سطح با آردوینو مگا را ببین. مقایسهی بردهای دیگر هم در مقایسهی بردهای آردوینو آمده است.
اشتباههای رایج
- استفاده از A6 و A7 نانو بهعنوان دیجیتال: این دو فقط آنالوگاند؛
digitalRead(A6)جواب درست نمیدهد. - LCD I2C روی مگا کار نمیکند: سیمها را از A4 و A5 به ۲۰ و ۲۱ ببر.
- نانو آپلود نمیشود: Old Bootloader و درایور CH340 را چک کن؛ جزئیات در ارورهای رایج آردوینو.
- خرید مگا فقط برای احتیاط: اگر پروژهات در اونو جا میشود، اونو سادهتر و ارزانتر است.
همهی آموزشهای آردوینو در صفحهی آردوینو هستند و اگر دنبال ایدهای، پروژهی مدرسه با آردوینو را ببین.
اونو و نانو را رایگان در تینکرکد فارسی امتحان کن 🆚سؤالهای رایج
فرق آردوینو نانو و اونو چیست؟
تراشه و حافظهشان یکی است و کدشان هم یکی. نانو کوچک است و روی بردبورد جا میشود و دو ورودی آنالوگ بیشتر (A6 و A7) دارد. اونو بزرگتر است، شیلدها رویش سوار میشوند و برای کلاس و شروع راحتتر است.
کد اونو روی مگا اجرا میشود؟
بیشتر کدها بدون تغییر اجرا میشوند. فقط پینهای I2C (روی مگا ۲۰ و ۲۱)، SPI (۵۰ تا ۵۳) و پینهای وقفه فرق دارند.
برای پروژهی مدرسه کدام آردوینو بهتر است؟
برای بیشتر پروژههای مدرسه اونو کافی است. اگر پروژه باید کوچک و جمعوجور باشد نانو، و اگر چند نمایشگر و ماژول سریال و دهها پین لازم دارد مگا.