در بخش چهارم آموزش قدم به قدم آردوینو، اقدام به معرفی توابع متغیر و ثبات میکنیم. اینکه چرا باید از متغیر و توابع ثابت در برنامه نویسی آردوینو استفاده کنیم، پاسخش در این آموزش نفهته است. متغیرها امکان تفکیک داده ها و دسته بندی بر اساس نوع را برای ما فرام میکند. دو نوع تابع متغیر و ثابت را در این آموزش با هم بررسی خواهیم کرد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
متغیرها Variables
متغیرها در آردوینو اسمی برای کلمات حافظه است که داده هایی که در بخش قبلی راجع به آن صحبت کردیم، در آن قرار میگیرد و محتویات آن ها ممکن است در طول برنامه نویسی تغییر کند. انتخاب اسم برای هر متغیر در برنامه نویسی بسیار مهم است و در هر بار فراخوانی بایستی از نظر اسم، رعایت حروف کوچک و بزرگ و نوشتار صحیح بایستی ثابت باشد. زیرا برای مراجعه به هر متغیر در برنامه نویسی از اسم آن ها استفاده میکنیم. در این صورت متغیرها امکان اسم گذاری برای کلمات حافظه را برای ما فراهم میکند.
- برای انتخاب اسم از حروف کوچک و بزرگ، اعداد و حتی _ میتوانید استفاده کنید.
- دقت کنید اول اسم متغیر با عدد شروع نشود.
متغیر محل ذخیره داده است و با توجه به اینکه هر داده دارای نوع است، متغیر هم باید دارای نوع باشد. قبل از فراخوانی متغیر در برنامه نویسی نوع آن را باید مشخص کنیم. نوع متغیر، مقادیری را که متغیر میتواند بپزیرد، میزان حافظه مورد نیاز و اعمالی را مشخص میکند که میتوانند بر روی آن مقادیر انجام شود.
نحوه ی فراخوانی متغیر در برنامه نویسی آردوینو به صورت زیر است.
در مثال زیر فراخوانی متغیرها در آردوینو بر اساس نوع داده نوشته شده است.
مقدار دادن به متغیر
جهت مقدار دهی به متغیرها در آردوینو از سه روش استفاده میکنیم.
- زمان فراخوانی متغیر
- پس از فراخوانی متغیر که از = برای مشخص شدن آن استفاده میشود.
- دستورات ورودی
در دستور اول دو متغیر x , y را از نوع int تعریف میکند و مقدار متغیر y را برابر با ۱۷ قرار میدهد. در دستور دوم متغیر parisa از نوع char تعریف شده و مقدار a را به خود نسبت داده است. در دستور سوم متغیر c, d از نوع منطقی است و مقدار درستی و نادرستی را قرار میدهد.
نمونه برنامه برای تعریف متغیر
1 2 3 4 5 6 7 8 9 10 11 12 |
void setup() { int yearofbirth = 1992; int currentyear = 2021; int age = currentyear - yearofbirth; Serial.begin(9600); Serial.print(age); } void loop() { } |
در صورتیکه بخواهیم مقدار یک متغیر را در طول برنامه نویسی تغییر دهیم، به روش زیر عمل میکنیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void setup() { int yearofbirth = 1992; int currentyear = 2021; int age = currentyear - yearofbirth; yearofbirth = 1996; Serial.begin(9600); Serial.print(age); } void loop() { } |
توابع ثابت Constants
توابع ثابت از نامش مشخص است، مقدار آن در طول برنامه همیشه ثابت است و تغییری نمیکند. ثوابت مقادیری هستند که در برنامه وجود دارند ولی قابل تغییر نیستند. نامگذاری برای تابع ثابت دقبقا مانند تابع متغیر است. به عبارتی مقداری که برای ثابت تعیین میشود، نوع ثابت را نیز مشخص میکند. دو روش برای فراخوانی توابع ثابت وجود دارد.
- روش اول استفاده از دستور #define
- روش دوم استفاده از دستور const
در روش اول هیچوقت از سمیکالن ; در انتهای خط برنامه نویسی استفاده نمیکنیم. زیرا جزیی از دستورات پیش پردازنده هستند.
روش فراخوانی define
روش فراخوانی const
در این شکل، نوع داده را در پست قبلی بر حسب int , char و … مشخص میکنیم. نام ثابت همانند نام متغیرها انتخاب شده که با مقدار ثابت = در آن قرار میگیرد.
1 2 3 4 |
Const int n = 100 , int count = 50; Const signed char x = ‘a’ ; |
1 2 3 4 5 6 7 8 9 10 11 12 |
void setup() { const int yearofbirth = 1992; const int currentyear = 2021; int age = currentyear - yearofbirth; Serial.begin(9600); Serial.print(age); } void loop() { } |
در صورتیکه از توابع ثابت در برنامه مانند const استفاده کنیم، دیگر نمیتوانیم در طول برنامه نویسی مقدار متغیر را تغییر دهیم. به عنوان مثال در کد زیر سال تولد ۱۹۹۲ است که با تابع ثابت در برنامه تعریف شده است. اگر در ادامه ی برنامه مقدار متغیر را ۱۹۹۶ تعریف کنیم، با ارور زیر مواجه خواهیم شد.
ارور کاملا گویا است! در ابتدا مقدار متغیر با تابع ثابت مشخص شده است اما در ادامه یک مقدار دیگری به همان متغیر نسبت داده شده است که با ارور مواجه شده است.