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

انواع داده در آردوینو  ، نوع داده در زبان C به منظور تعریف نوع متغیرها یا نوع توابع به کار می رود. نوع داده یک متغیر تعیین کننده میزان ظرفیت ذخیره سازی یک متغیر و چگونگی ذخیره سازی بیت ها در آن است.

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

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

Void

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

مثال :

Void Loop ( ) 
Example 
{ 
 // rest of the code 
}

Boolean

این نوع داد فقط میتواند مقدار صحیح یا غلط را نگه داری کند. هر متغیر از نوع Boolean یک بایت از حافظه را اشغال می کند.

مثال :

Example 
boolean val = false ; 
boolean state = true ;

Char

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

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

یک نکته در این مورد این است که میتوانیم روی کاراکترها عملیات حسابی (جمع، تفریق و…) انجام دهیم چون به صورت عدد ذخیره می شوند. به عنوان مثال میتوانیم بنویسیم ‘A’+1 که معادل 66 است زیرا کد اسکی معادل A برابر 65 است.

کد اسکی

مثال :

Example 
Char chr_a = ‘a’ ;
Char chr_c = 97 ;

Unsigned char

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

مثال 

Example 
Unsigned Char chr_y = 121 ;

Byte

این نوع داده نیز 8 بیت را اشغال کرده و از عدد صفر تا 255 را ذخیره سازی می کند.

مثال 

byte m = 25 ;

Int

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

ظرفیت نوع int ممکن است در بردهای مختلف متفاوت باشد. به عنوان مثال در Arduino Due این نوع از دادع معادل 32 بیت یا 4 بایت است که معادل ذخیره سازی از عدد -2,147,483,648 تا 2,147,483,647 می باشد. (حداقل مقدار -2^31 و حداکثر (2^31) – 1)

مثال 

int counter = 32 ;

Unsigned int

این نوع از داده مشابه نوع int است با این تفاوت که فقط اعداد صحیح مثبت را ذخیره سازی می کند که شامل صفر تا 65,535 (2^16) – 1 می شود. در برد Due این محدوده 4 بایت است و از صفر تا 4,294,967,295 (2^32 – 1) را شامل می شود.

مطلب پیشنهادی:  توابع GPIO آردوینو (توابع پایه)

مثال 

Unsigned int counter = 60 ;

Word

در برد Uno و بردهای دیگر مبتنی بر میکروهای ATMEGA  ، این نوع داد 16 بیت بدون علامت را ذخیره سازی می کند. در بردهای Due و Zero این نوع داده 32 بیت بدون علامت را ذخیره سازی می کند.

مثال :

word w = 1000 ;

Long

این نوع داده شامل 32 بیت از عدد -2,147,483,648 تا 2,147,483,647 می شود.

مثال 

Long velocity = 102346 ;

Unsigned long

این نوع داده شامل 32 بیت بوده و برخلاف نوع استاندارد (long) اعداد منفی را ذخیره سازی نمی کند و محدوده ذخیره سازی آن از صفر تا 4,294,967,295 (2^32 – 1) می باشد.

مثال 

Unsigned Long velocity = 101006 ;

Short

این نوع داده 16 بیتی است. در تمام بردهای آردوینو (مبتنی بر ATMega و ARM) این نوع داده 16 بیتی (2 بایتی) است که شامل محدوده -32,768 to 32,767 می باشد. (حداقل مقدار -2^15 و حداکثر (2^15) – 1)

مثال 

short val = 13 ;

Float

این نوع برای ذخیره سازی اعداد اعشار استفاده می شود. از نوع اعشار معمولا برای ذخیره سازی مقادیر آنالوگ و پیوسته استفاده می شود زیرا دارای دقت بالاتری نسبت به نوع صحیح می باشد. محدوده اعداد این نوع عبارت است از 3.4028235E+38 تا حداقل مقدار 3.4028235E+38- و در حافظه 4 بایت ذخیره سازی می شود.

مطلب پیشنهادی:  مدولاسیون عرض پالس یا PWM در آردوینو

مثال 

float num = 1.352;

Double

در برد Uno و دیگر بردهای مبتنی برد میکروهای ATMEGA ، این نوع دارای ظرفیت 2 برابر نسبت به float است و 4 بایت را اشغال می کند ولی دقت آن مشابه float است. در برد Arduino Due این نوع دارای 8 بایت (64 بیت) دقت می باشد.

مثال 

double num = 45.352 ;

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

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

دیدگاهتان را بنویسید

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

یک دیدگاه

  1. سلام ممنون از مطالب ارزشمندتون اما در خصوص double لااقل در مورد uno شک دارم درست باشه لطفا بررسی کنید.