متغیر ها و عملگرها در آردوینو – آموزش آردوینو جلسه دوم

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

از اینجا به بعد وارد برنامه نویسی میشیم . با این تصور توضیح میدم که ، کسایی که میخوان با این برد آشنا بشن حداقل های زبون C یا C++ رو بلدن و آشنان با مفاهیم اصلی.

برنامه نویسی آردوینو تقریبا تفاوتی توی کلیات با زبان C++ یا زبان C نداره و فقط در جزئیاتشون باهم فرق دارن.

البته سعی میکنم بازم سطحی توضیح بدم که جای سوالی نمونه 🙂
اگر هم با C یا C++ آشنا نیستین زیاد برای یادگرفتن برنامه نویسی آردوینو عجله نکنید و قبل اون برین سراغ یادگرفتن یکی از این زبون ها ! آموزش C توی سایت هم هست: آموزش برنامه نویسی به زبان C.
حالا با این توضیح میخوام مقدمات برنامه نویسی رو یکبار دیگه دور کنیم:
کامنت یا توضیحات برنامه:
توی C ما برای کامنت گذاشتن و توضیح اضافه توی برناممون از کدهای زیر استفاده میکردیم: (توی محیط آردوینو هم به همون شکل استفاده میشن)

 

متغیر ها  در آردوینو

متغیر ها در آردوینو

متغیر ها توی C طبق جدول بالا هستند.

اگه C بلد باشین جای توضیح نداره دیگه! توجه کنید که هرمتغیر چند بایت داره و رنج ذخیره اعداد اونهاچه مقداره.

عملیات ریاضی در آردوینو:

عملگرهای ریاضی ضرب ، تقسیم ، جمع ، تفریق ، و باقی مانده هستند.

این عملگرها روی 2 متغیر عمل میکنن و حاصل رو روی یک متغیر سوم میریزن.مثلا:

x=x+6
y=y-7
i=j*10
r=r/10
z=x%j

توجه : متغیری که حاصل عملیات ریاضی داخل  اون قرار میگیره رو باید توجه کنید که چند بیتیه؟

مثلا اگه 2تا عدد 8 بیتی را باهم جمع میکنیم متغیری که واسه نتیجه استفاده میکنیم باید چند بیتی باشه؟ آفرین 16 بیتی! نکتش اینجاس که اگه 16 بیتی نباشه ممکنه نرم افزار اروری نگیره اما خروجی یک مقدار غلط باشه. (مثلا خروجیتون بشه 16 بیت اما شما یک متغیر 8 بیتی انتخاب کردین درنتیجه فقط 8 بایت ذخیره میشه و برنامه توی ادامه درست کار نمیکنه)

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

مقدار معادل دستور
x=x+1 x++
x=x-1 x–
x=x+y x+=y
x=x-y x-=y
x=x*y x*=y
x=x/y x/=y
x=x%y x%=y

عملگرهای مقایسه ای:

از اسمشون مشخصه دیگه ! برای مقایسه 2 تا متغیر به کار میرن .

= =
!=
<
>
<=
>=

 

مثلا:

 

عملگرهای منطقی:

واضحه که عملگر منطقی هستن و توضیحی به ذهنم نمیرسه 😀

AND &&
OR ||
NOT

!

مثلا:

عملگرهای Volatile در آردوینو:

توی میکروها (آردوینو هم تشکیل شده از یک میکروکنترلره) ، مقدار متغیرها علاوه براینکه توی نرم افزار مقداردهی میشوند، توسط سخت افزار هم تغییر میکنن . ممکنه کامپایلر در بهینه سازی برنامه ،تغییرات ناشی از سخت افزار رو نادیده بگیره و این تغییرات در برنامه اعمال نشه!

بیاین یه مثال بزنم:
مثلا فکر کنید یک متغیر عمومی تعریف میکنیم، که هم در برنامه اصلی و هم در زیرروال سرویس وقفه(تابعی غیر از تابع اصلی) استفاده میشه.کامپایلر هنگام تبدیل برنامه به کدماشین،تغییرات متغیر زیر برنامه وقفه رو نادیده میگیره و متغیر تنها در برنامه ی اصلی تغییر میکنه!برای جلوگیری از این اتفاق از volatile قبل از تعریف نوع متغیر استفاده میکنیم و به کامپایلر یادآوری میکنیم که مقدار متغیر در حافظه RAM و نه در یک رجیستر ذخیره بشه! مقدار این متغیر میتونه خارج از برنامه (زیربرنامه وقفه یا سایر زیربرنامه ها ) تغییر کنه.
این نوع متغیر ها توی اینتراپت ها کاربرد زیادی دارن چون اونجا حتما تابعی به غیر از تابع اصلی هم وجود داره.اگه نفهمیدین دقیقا چی ان و چیکار میکنن اونجا که برسید کامل متوجه میشید  😉

عملگر #define

این عملگر هر اسمی رو که برای متغیری ثابت اختصاص بدین جایگزینش میکنه.مثلا :

 

طبق این کد هرجا شما بنویسید ledPin بجای این متن ، عدد 9 هنگام کامپایل قرار میگیره که توی کد های پیچیده خیلی به مفهوم پیدا کردن کدتون و پیدا کردن مشکلات احتمالی کمک میکنه.

عملگرconst

این عملگر متغیر رو به صورت فقط خواندنی یا بقول معروف متغیر ثابت تعریف میکنه ! یعنی بعد از تعریف اون توی زیر برنامه شما نمیتونید تغییرش بدید.

مثلا یک جا میخواین عدد pi رو تعریف کنین که یک مقدار ثابت داره، اون موقع میتونید اینو استفاده کنید.

 

 

عملگر ()sizeof

این عملگر تعداد بایت های موجود در یک متغیر یا آرایه رو نشون  میده.

 

ساختار های کنترل حلقه مثل if , for , switch,while, do/while و…هم هیچ تفاوتی با C ندارن و اینجا هم کاربرد دارن ، آموزش برنامه نویسی آردوینو جلسه دوم و آموزش برنامه نویسی آردوینو – جلسه اول یادآوری و مقدمه بود و از جلسه بعد برای آموزش برنامه نویسی آردوینو وارد محیط نرم افزاری اون میشیم و سعی میکنم آموزش آردوینو رو یکم پروژه محور دنبال کنیم و فقط تئوری نباشه.

امیدوارم با نظر دادن ها و یا سوال پرسیدن هاتون بتونم توی ارائه ی یک آموزش بهتر و کاربردی تر کمکتون کنم. 🙂

حمیدرضا مودت

یک مهندس الکترونیک ، علاقه مند به یاد دادن و یاد گرفتن پیرامون دانش برق و الکترونیک

شما ممکن است این را هم بپسندید

6 پاسخ‌ها

  1. محسن گفت:

    خیلی ممنون از اموزش هاتون خیلی عالی هستن

  2. ابوالفضل مرادیان عقداء گفت:

    سلام
    عالی بود.

  3. Mahdi گفت:

    جلس سوم کی روی سایت قرار میگیره؟
    اموزشاتون خیلی خوبه.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *