آموزش آردوینو

آموزش آردوینو – قسمت اول : ساختار برنامه و انواع داده ها در آردوینو

آموزش آردوینو

آموزش آردوینو یکی از آموزش هایی می باشد که برای دانشجویان الکترونیک و مکاترونیک ضروری می باشد
از این رو ما در ایده الکترونیک  سعی کرده ایم تا آموزش جامع و کاملی از آموزش بردهای آردوینو را برای شما قرار دهیم.

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

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

آردوینو یک نرم افزار رایگان و متن باز می باشد که میتوانید آن را از اینجا دانلود نمائید.

پایه این برنامه بر اساس جاوا بوده و تحت قوانین GPL می توانید در آن به زبان C/C++ برنامه نویسی کنید
و از توابع بسیار زیادی که برای آن وجود دارد به راحتی و رایگان استفاده کنید.
فقط باید بدانید که برای استفاده از نرم افزارهای متن باز و توابع باید از قوانین LGPL پیروی کنید!
اولین اصطلاحی که در برنامه نویسی آردوینو وجود دارد Sketch نامیده می شود.

Sketch چیست؟

برنامه نویسی در کامپایلر های غیر از آردوینو مجموع سورس کدهای خود را در یک مجموعه با نامه پروژه ذخیره می کردیم
در برنامه نویسی آردوینو از لغت Sketch یا طرح به جای Project استفاده می کنیم.

Structure یا ساختار:

برنامه های آردوینو را می توان به سه بخش تقسیم کرد:

  • Structure
  • Values که شامل ثابت ها و متغیرها می شود
  • Function

در این مبحث آموزش آردوینو ، مرحله به مرحله با برنامه نویسی در نرم افزار آردوینو آشنا خواهیم شد
و می آموزیم که چگونه می توانیم بدون اشتباه نحوی و تالیفی برنامه نویسی کنیم.
بهتر است با ساختار آغاز کنیم، ساختار برنامه نویسی آردوینو از دو تابع اصلی تشکیل شده است:

  • تابع setup

  • تابع Loop

آموزش آردوینو

تابع setup زمانی ضرورت پیدا می کند که Sketch آغاز می شود، در مثال زیر فرمت کلی تابع setup را می بینید:

void setup() {
}

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

بعد از ایجاد یک تابع setup که مقادیر اولیه را راه اندازی می کند تابع loop دقیقا همان کاری را انجام می دهد که از نامش پیداست!
و به طور متوالی و پشت سر هم تکرار خواهد شد و به برنامه شما این اجازه را می دهد که تغییر کند و خروجی جدیدی ایجاد کند.
در واقع از تابع loop برای کنترل برد آردوینو استفاده می کنیم.
برای توضیح دقیق تر باید بگویم دستورات درون تابع Loop دائما تکرار می شوند
به این صورت که دستورات و توابع موجود در این تابع از بالا به پایین خط به خط اجرا می شوند تا به انتهای تابع برسند
و بعد از آن مجددا از ابتدای حلقه شروع به اجرای فرامین خواهد کرد و یک حلقه بینهایت را در برنامه ایجاد میکند.

فرم کلی یک تابع Loop به صورت زیر است:

void loop() {
}

 انواع داده ها در آردوینو

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

آموزش متغیرهای آردوینو
انواع داده ها و متغیر های آردوینو را در جدول بالا مشاهده می کنید که در زیر به تفصیل در باره آنها صحبت خواهیم کرد.

  •  Void

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

  • Boolean

یک متغیر می باشد که به اندازه یک بایت از حافظه را اشغال میکند و فقط یکی از دو مقدار True یا False، یک یا صفر را در بر میگیرد.
مثال متغیر Boolean
boolean val = false ; // declaration of variable with type boolean and initialize it with false
boolean state = true ; // declaration of variable with type boolean and initialize it with

  •  Char

یک نوع داده که یک کاراکتر را ذخیره میکند و یک بایت از حافظه را اشغال میکند.
برای مقدار دهی به این نو متغیر از یک گیومه تک استفاده می شود به عنوان مثال از ‘A’ برای مقدار دهی به یک متغیر Char استفاده می کنیم
و برای کاراکترهای چندتایی یا همان آرایه ای از گیومه های دوتایی “” استفاده می شود،
به عنوان مثال از “ABC” برای مقداردهی به یک متغیر آرایه ای سه تایی استفاده میکنیم.
همچنین برای کاراکترها یک عدد در نظر کرفته می شود، بنابراین شما می توانید
به جای نوشتن کاراکترها از اعداد منحصر به آن کاراکتر استفاده نمایید.
شما می توانید در جدول ASCII رمزگذاری دقیق کاراکترها را مشاهده کنید،
این بدین معناست که انجام عملیات محاسبه نیز برای کاراکترها امکان پذیر است.
برای مثال مقدار ‘A’+1 برابر با 66 است زیرا مقدار حرف بزرگ A برابر 65 است.

Char chr_a = ‘a’ ;//declaration of variable with type char and initialize it with character a
Char chr_c = 97 ;//declaration of variable with type char and initialize it with character 97

آموزش آردوینو

  • Unsigned char

یک نوع داده بدون علامت است که یک بایت از حافظه را اشغال می کند. داده unsigned char از صفر تا 255 مقدار دهی می شود.

Unsigned Char chr_y = 121 ; // declaration of variable with type Unsigned char and initialize it with character y

  • Byte

یک Byte عدد بدون علامت را از صفر تا 255 ذخیره می کند که مقدار یک بایت معادل 8 بیت فضای حافظه را اشغال می کند.

byte m = 25 ;//declaration of variable with type byte and initialize it with 25

  • Int

اعداد صحیح اولین نوع داده برای ذخیره شماره ها هستند. یک متغیر Int به اندازه 2 بایت یا 16 بیت می باشد.
که این نشان دهنده این است که می تواند رنج -32768 تا 32768 را پذیرا باشد. (حداقل مقدار این نوع متغیر -2^15 و حداکثر آن 2^15-1 می باشد).

int counter = 32 ;// declaration of variable with type int and initialize it with 32

نکته: اندازه یک متغیر Int در برنامه نویسی در آردوینو برای بردها مختلف متفاوت می باشد
به عنوان مثال برای برد آردوینو Due یک متغیر int چهار بایت ظرفیت دارد
یعنی می تواند مقداری بین -2147483648 و 2147483483 را ذخیره نماید.

  • Unsigned int

این متغیر هم درست مثل متغیر Int مقدار 2 بایت را ذخیره میکند
و تنها تفاوت آن این است که فقط اعداد مثبت را ذخیره می کند.
رنج کاری کار آمد آن از صفر تا 65535 یعنی معادل 2به توان 16 منهای یک را در بر میگیرد.
نکته: پیرو تذکر داده شده در بند قبل باید اضافه کنیم
که متغیر unsigned int نیز در برد آردوینو Due معادل چهار بایت می باشد.
یعنی از حداقل 0 تا حداکثر 4294967295 می تواند مقداردهی شود.
Unsigned int counter = 60 ; // declaration of variable with type unsigned int and initialize it with 60

  • Word

در برد آردوینو Uno و دیگر بردهای بر پایه Atmega عدد بدون علامت 16 بیتی را ذخیره میکند
و در بردهای Due و Zero عدد بدون علامت 32 بیتی را ذخیره می کند.
word w = 1000 ;//declaration of variable with type word and initialize it with 1000

  • Long

متغیرهای Long متغیرهای با ظرفیت برزگی هستند و 4 بایت یا 32 بیت اندازه آنها می باشد
و می توانند اعداد بیان 2147483648- و 2147483648 را ذخیره کنند.
word w = 1000 ;//declaration of variable with type word and initialize it with 1000

  • Unsigned Long

متغیرهای unsigned long همانند متغیرهای Long بزرگی 4 بایتی دارند
با این تفاوت که فقط اعداد مثبت را می توانند در یافت کنند.
رنج اعداد Unsigned long از 0 ال 4294967295 می باشد (2 به توان 32)
Unsigned Long velocity = 101006 ;// declaration of variable with type Unsigned Long and initialize it with 101006

  • Short

Short یک نوع داده 16 بیتی است و در تمام آردوینوها (آردوینوهای با پردزنده ARM و AVR) ظرفیت 16 بیتی دارند
که اعداد مابین -32768 الی 32768 را می تواند ذخیره کند.
short val = 13 ;//declaration of variable with type short and initialize it with 13

  • Float

متغیرهای نوع Float برای اعداد غیر صحیح یا اعداد اعشاری مورد استفاده قرار میگیرند،
تا اینجا تمامی داده هایی که در مورد آنها صحبت کردیم اعداد صحیح با بزرگی های مختلف را در خود ذخیره میکردند.
اعداد Float بیشتر برای نزدیک شدن به اعداد مشابه دنیای واقعی استفاده می شوند
زیرا رزولوشن بهتری نسبت به اعداد صحیح دارند.
این نوع داده می توانند اعداد بین -3.4028235E+38 و 3.4028235E+38 را در خود ذخیره کنند،
اعداد Float نیز مقدار 32 بیت یا 4 بایت فضا اشغال می کنند.
float num = 1.352;//declaration of variable with type float and initialize it with 1.352

  • Double

بر روی آردوینو  uno و دیگر بردهای بر پایه Atmega ؛ وضوح و دقت اعداد double نیز مانند Float به اندازه چهار بایت می باشد.
در واقع اجرای اعداد Double در این بردهای آردوینو بدون هیچ پیشرفتی، دقیقا همانند Float می باشد.
در بردهای دیگر آردوینو مانند آردوینو Due متغیر double به اندازه 8 بایت یا 64 بیت فضا از حافظه اشغال می کند
double num = 45.352 ;// declaration of variable with type double and initialize it with 45.352

مقالات مرتبط در زمینه آموزش آردوینو در سایت ایده الکترونیک :

برای دیدن قسمت های دیگر آموزش آردوینو بر روی لینک های زیر کلیک نمائید:

برای بهبود کیفیت مطالب ارئه شده در سایت می توانید با ثبت نظرات ما را یاری فرمائید. همچنین برای دریافت اطلاعات بیشتر درباره برنامه نویسی آردوینو به اینجا مراجعه کنید.

 


۷ Comments

مصطفی ابیار

دی ۵, ۱۳۹۸ at ۱۲:۳۴ ق.ظ

واقعا عااااااااااااااالی بود درود و رحمت بی پایان خدا بر شما

مهدی

فروردین ۱۹, ۱۳۹۹ at ۱۱:۳۹ ق.ظ

خیلی مخلسیم . عالیه مهندس

aram

شهریور ۳, ۱۳۹۹ at ۱۲:۴۷ ب.ظ

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

امید کاظمی

مهر ۱۰, ۱۳۹۹ at ۸:۳۳ ب.ظ

در یک کلمه درود

لسانی

شهریور ۲۵, ۱۴۰۰ at ۲:۳۳ ب.ظ

با سلام و احترام.آموزش قسمت اول را مطالعه کردم.بسیار شیوا توضیح داده اید.متشکرم

سپهر

آبان ۲۲, ۱۴۰۰ at ۱۰:۰۷ ق.ظ

سلام جناب مهندس…خیلی ممنون برای این آموزش

کریمی

بهمن ۲۷, ۱۴۰۰ at ۱۰:۲۲ ب.ظ

سلام یه سئوال داشتم
من یه کد ساده نوشتم و دو عدد را در هم ضرب می کنم، ولی نتیجه درستی نمی دهد چرا؟
مشکل برد است؟ یا آردوینو؟
کدش اینه:
long a=99999999;
long b=100;
double c=a*b;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println(c);
}

void loop() {
// put your main code here, to run repeatedly:
Serial.println(c);
}

ارسال نظرات