در آموزش مقدماتی زبان c و c++ برای میکروکنترلر و آردوینو به بررسی توابع و متغیر ها وتمامی پارامتر های ریاضی و سایر دستورات زبان سی در میکروکنترلر و آردوینو خواهیم پرداخت که برای مفهوم بودن آموز های سریالی آیندمون بسیار مهم است.
تعرف متغیر در زبان c و c++
یک متغیر محدوده ای از فضای حافظه است که با یک نام مشخص میشود. یک متغیر بسته به نوع آن می تواند حامل یک عددی باشد.
یک متغیر میتواند در محاسبات شرکت کند و یا نتیجه محاسبات را در خود ذخیره کند.
در جدول زیر با انواع متغیر ها و میزان فضای اشغالی همچنین رنجی که میتوان استفاده کرد آشنا میشویم
انواع متغیرها در زبان c
Range | (Size(bite | type |
۰,۱ | ۱ | 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
مثال :
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 میبینیم در ادامه
مثال :
for (i = 1; i <= 12; ++i) {
factorial *= i;
}
// تا زمانی متغییر ای از 12 کوچکتر باشد این شرط پشت هم بدون رفتن به خط بعد اجرا میشود و هر بار یک عدد به ای اضافی میشود.
امیدواریم از مقاله استفادی کرده باشید اگر نیاز به توضیحات بیشتر داشتید میتونید در بخش نظرات عنوان کنید تا ما مقاله کامل تر کنیم با در سریع ترین زمان ممکن در همانجا به شما پاسخ بدیم
_______ _______