آموزش مقدماتی زبان c و c++ برای میکروکنترلر و آردوینو

در آموزش مقدماتی زبان c و c++ برای میکروکنترلر و آردوینو به بررسی توابع و متغیر ها وتمامی پارامتر های ریاضی  و سایر دستورات زبان سی در میکروکنترلر و آردوینو خواهیم پرداخت که برای مفهوم بودن آموز های سریالی آیندمون بسیار مهم است.

تعرف متغیر در زبان c و c++

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

یک متغیر میتواند در محاسبات شرکت کند و یا نتیجه محاسبات را در خود ذخیره کند.

در جدول زیر با انواع متغیر ها و میزان فضای اشغالی همچنین رنجی که میتوان استفاده کرد آشنا میشویم

 

انواع متغیرها در زبان c

Range(Size(bitetype
۰,۱۱bit
۰,۱۸Bool,
۱۲۸ to 127۸char
۰ to 255۸Unsingned char
۱۲۸ to 127۸Signed char
۳۲۷۶۸ to 32767۱۶Int
۳۲۷۶۸ to 32767۱۶Short int
۰ to 65535۱۶Unsigned int
۳۲۷۶۸ to 32767۱۶Signed int
۲۱۴۷۴۸۳۶۴۸ to 2147483647۳۲Long int
۰ to 4294967295۳۲Unsigned long int
۲۱۴۷۴۸۳۶۴۸ to 2147483647۳۲Signed long int
±۱٫۱۷۵e-38 to ±۳٫۴۰۲e38۳۲Float
±۱٫۱۷۵e-38 to ±۳٫۴۰۲e38۳۲double

 

 

نحوه تعریف متغیر ها

متغیر ها به صورت زیر تعریف میشوند:

مقدار اولیه = نام متغیر  نوع متغیر

مثال:

Unsigned char A =12;
int a,X,g;

آرایه ( Arrays )

{ متغیر۰,متغیر۱,متغیر۲,…..} =[]Int MyArray
//برای خواندن مقدار متغیر از یک آرایه به شکل زیر عمل می کنیم 
Value = MyArray[2];

عملگر ها در برنامه نویسی

با استفاده از عملگرها می توان روی اعداد، متغیرها،آرایه ها، رشته ها و…عملیات حسابی ، منطقی، مقایسه، بیتی،بایتیو…انجام داد که در ادامه مقاله آموزش مقدماتی زبان c و c++  بیشتر آشنا میشیم.

عملگرهای محاسباتی

عملگر های محاسباتی عملگرهایی هستند که اعمال محاسباتی را روی عملوند ها انجام می دهند.

عملگر % برای محاسبات باقی مانده تقسیم به کار می رود.

این عملگر عملوند اول را بر عملوند دوم تقسیم می کند (تقسیم صحیح) و باقیمانده را بر میگرداند.

عملگرناممثال
تفریق و علامت منفیZ=x-y or –x
+جمعZ=x+y
*ضربZ=x*y
/تقسیمZ=x/y
%باقیمانده تقسیمZ=x%y
یک واحد کاهشx–or –x
++یک واحد افزایشX++ or ++x

 

برای استفاده از هر کدام از این عملگر ها باید تقدم آنها را نسبت به یکدگر رعایت کنید.

تقدمعملگر
۱++ و —
۲–        علامت منفی
۳/ و * و %
۴+و-

 

عملگر مقایسه ای و منطقی

عملگر مقایسه ای ارتباط بین عملوند ها را مشخص می کنند و عملگر های منطقی بر روی عبارات منطقی عمل می کنند.

عملگرناممثال
بزرگترx>y
=<بزرگتر مساویX>=y
کوچکترX<y
=>کوچکتر مساویX<=y
==متساویX==y
=!نامساویX!=y
!نقیض!(x>y)
&&وx>y&&z>w
||یاx>y||z>

 

برای استفده از هر کدام از این عملگر ها باید تقدم آنها را نسبت به یکدگر رعایت کنید.

تقدمعملگر
۱!
۲<= ,< ,>= ,>
۳== , !=
۴&&
۵||

دستورات ورودی و خروجی در آردوینو

  • HIGH / LOW :

این دستورات به طور کلی برای نشان دادن منطق ۱ یا صفر است. زمانی منطق یک بر قرار است که سطح ولتاژ در ۵ ولت و زمانی منطق ۰ (صفر) بر قرار است که سطح ولتاژ در صفر ولت باشد.

digitalWrite(13,HIGH0);
//یعنی پایه شماره ۱۳ را به سطح منطقی یک برسان
  • INPUT/OUTPUT :
//غالبا همراه با دستور می آید ()PinMode  و برای نشان دادن ورودی و خروجی پایه مورد نظر است
pinMode(13, OUTPUT);
  • دستورات خواندن و نوشتن آنالوگ آردوینو

//خواندن یک مقدار به صورت آنالوگ از پایه های آنالوگ با دقت ۱۰ بیت ( یعنی ۰ تا ۱۰۲۳)
AnalogRead(نام پایه آنالوگ);

 

نکته: پایه های آنالوگ بر خلاف پایه های دیجیتال نیازی به تعریف کردن به صورت ()pinMode ندارد.

value = analogRead(A0);

نوشتن خروجی آنالوگ آردوینو

تولید پالس مربعی pwm با duty Cycle های مختلف:

analogWrite( PWM  مقدار صفر تا۲۵۵ , نام پایه های  );

 :مثال

void loop()
{ 
int value = analogRead(A0);
خواندن مقدار ۰ تا ۱۰۲۳ از پتانسومتر
value /=4 ;
تقسیم ۰ تا ۱۰۲۳ به ۰ تا۲۵۵ 
analogWrite(13, value);
اعمال پالس به پایه شماره ۱۳ 
}

دستورات شرطی در زبان c و c++

 

اگر بخواهیم تحت شرایطی تعدادی از دستورها اجرا شوند و یا تعدادی دیگر اجرا نشوند باید از ساختاردشرطی استفاده کنیم.

 

دستور شرطی if

 

If(شرط)

{دستور}

همان طور در بالا مشاهده می کنید اگر شرط ها برقرار باشند کد های درون {} اجرا خواهند شد.

مثال :

if (number < 0) {

printf(“You entered %d.n”, number);

}
//   اگر عدد متغییر نامبر کوچکتر از ۰ باشد، عبارت شرطی درست و برقرار است و با دستور داخل شرط اجرا می شود 

دستور شرطی if-else

If(شرط){

دستورات

}

else { درغیر این صورت

دستورات

}

مثال :

// اگر باقیمانده تقسیم عدد به ۲ صفر باشد، شرط درست است.

if (number%2 == 0) {
printf(“%d is an even integer.”,number);
}
else {
printf(“%d is an odd integer.”,number);
}

دستور شرطی۲ if-else:

If(شرط){

دستورات

}

else if (شرط دوم) {

دستورات

}

else { در غیر این صورت دستورات دیگری}

 

مثال :

if(number1 == number2) {
printf(“Result: %d = %d”,number1,number2);
}
// است number2 بزرگتر از number1 بررسی می کند آیا
else if (number1 > number2) {
printf(“Result: %d > %d”, number1, number2);
}
//اگر دو شرط قبلی نادرست باشند
else {
printf(“Result: %d < %d”,number1, number2);
}

 

ساختار حلقه ها:

یکی دیگر از اجزای اصلی زبان های برنامه نویسی حلقه ها هستند.

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

حلقه while

در این حلقه شرط در ابتدای حلقه بررسی میگردد اگر شرط برقرار بود یکبار کد های درون حلقه اجرا میشوند و دوباره شرط حرقه چک میگردد.

While(شرط حلقه)

{ کد هایی که تا زما برقراری شرط حلقه تکرار میشود }

حلقه while عبارت تست را ارزیابی می‌کند.
اگر عبارت تست درست باشد، کد درون بدنه حلقه while مورد ارزیابی قرار می‌گیرد.
سپس عبارت تست مجدداً ارزیابی می‌شود. این فرایند تا زمانی که عبارت تست نادرست شود ادامه می‌یابد.
هنگامی که عبارت تست نادرست شود، حلقه while خاتمه می‌یابد.

فلوچارت حلقه while

آموزش مقدماتی زبان c و c++ برای میکروکنترلر و آردوینو

مثال : 

 while ( i <= number) {
        factorial *= i;      
        i++;
    }
//مثل شرط اگر متغیر از عدد مد نظر کو چکتر یا مساوی اون عدد باشد داخل شرطاجرا میشود

 

حلقه  do….while

این حلقه عملکردی بسیار شبیه  به حلقه while دارد.

در این حلقه یکبار کد های درون حلقه اجرا میشود و سپس شرط حلقه بررسی می گردد.

Do

{

کد هایی که در زمان برقراری شرط تکرار می شوند//

}

While( )

مثال:

do {
        cout<<"Enter a number: ";
        cin>>number;
        sum += number;
    }
    while(number != 0.0){

    cout<<"Total sum = "<<sum;
}
// اول هرچه در دو هست اجرا شده و بعد به برسی شرط می پردازد

حلقه for

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

در این حلقه متغیری وجود دارد که تعداد دفعات تکرار حلقه را کنترل می کند.

For (  گام حرکت حلقه ; شرط حلقه ; مقدار اولیه شمارنده حلقه)

{ کد هایی که تا زمان برقراری شرط حلقه تکرار می شود  }

 

با هم فلوچارت عملکرد for میبینیم در ادامه

آموزش مقدماتی زبان c و c++ برای میکروکنترلر و آردوینو

مثال : 

   for (i = 1; i <= 12; ++i) {
        factorial *= i;  
    }
//  تا زمانی متغییر ای از 12 کوچکتر باشد این شرط پشت هم بدون رفتن به خط بعد اجرا میشود و هر بار یک عدد به ای اضافی میشود.

 

 

امیدواریم از مقاله استفادی کرده باشید اگر نیاز به توضیحات بیشتر داشتید میتونید در بخش نظرات عنوان کنید تا ما مقاله کامل تر کنیم با در سریع ترین زمان ممکن در همانجا به شما پاسخ بدیم

آیا این مقاله برای شما مفید بود؟
_______ _______
مقالات مرتبط

مقالات مرتبط

اگر می‌خواهید از آخرین و محبوب‌ترین مقالات ما در ایمیل خود مطلع شوید، همین الان ایمیل و شماره موبایل خود را در کادر زیر وارد کنید:

این فیلد برای اعتبار سنجی است و باید بدون تغییر باقی بماند .
تعداد علاقه مندانی که تاکنون عضو خبرنامه ما شده اند: 37,575 نفر

شانزده − سه =