تا زمانیکه تفاوت بین داده ها را ندانید، بزرگ ترین اشتباهات و در حین حال ساده ترین اشتباهات را رقم خواهید زد. داده یا دیتا نقش اساسی را در برنامه نویسی ایفا میکند. دیتا وارد سیستم شده،پردازش شده و سپس استخراج میشود. بسیاری از سنسورهای مورد استفاده در آردوینو وابسته به تعریف نوع صحیح داده هستند. در این آموزش اتواع داده ها را با یکدیگر بررسی خواهیم کرد. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
معرفی انواع داده
داده Data، بخش اصلی یک برنامه نویسی است. تمامی دیتاهای دریافتی از سنسورها زمانی معنا پیدا میکند که نوع داده مشخص شده باشد. در طول برنامه نویسی داده ماهیت خودش را حفظ کرده و امکان تغییر وجود ندارد. شش داده ی اصلی که با آن ها مداوم در ارتباط هستیم، به صورت زیر است. به ضورت کلی دیتا تایپ همان نوع دیتا است که رنج دیتا، سایز حاففظه مورد نیاز برای دیتا، نوع عملکردی که بتوان بر روی آن دیتا انجام داد را مشخص میکند.
- char
- int
- float
- double
- void
- bool
- داده char برای ذخیرهی داده های کاراکتری مانند a,b,c,d,e,f,g,h استفاده میشود.
- داده int برای ذخیرهی اعداد صحیح مانند ۱,۲,۳,۴,۵ …. استفاده میشود.
- داده float برای ذخیرهی اعداد اعشاری مانند ۱٫۲, ۲٫۳, ۲٫۹۸, ۳٫۹۸ استفاده میشود.
- داده double برای ذخیره اعداد اعشاری بزرگتر از float استفاده میشود.
- داده bool برای ذخیره مقادیر منطقی مانند True, False استفاده میشود.
چه زمانی از علامت ها استفاده کنیم؟
استفاده از signed, unsigned, long,short داده های جدیدی را برای ما تولید میکند.
- از signed, short, long, unsigned برای int میتوانید استفاده کنید.
- از signed, unsigned برای char میتوانید استفاده کنید.
- از long برای double میتوانید استفاده کنید.
فراخوانی داده void
از void منحصرا برای استفاده در function میباشد.
Void Loop ( ) { // rest of the code }
مثال
void setup() { Serial.begin(9600); } void loop()
فراخوانی داده Boolean
داده Boolean دو ارزش را در خود نگهداری میکند. True, False، هر متغیر بولین یک بایت حافظه را اشغال می کند.
boolean val = false ; // boolean state = true ; //
مثال
int LEDpin = 5; int switchPin = 13; boolean running = false; void setup() { pinMode(LEDpin, OUTPUT); pinMode(switchPin, INPUT); digitalWrite(switchPin, HIGH); // فعال کردن مقاومت پول آپ } void loop() { if (digitalRead(switchPin) == LOW) { delay(100); running = !running; // toggle running variable digitalWrite(LEDpin, running); } }
فراخوانی داده char
روش فراخوانی داده char که برای ذخیره ی داده های کاراکتری است، به صورت زیر است. داده char هشت بیتی و بازه قابل قبول – ۱۲۷ تا ۱۲۷ است.
’Char parisa = ‘a ; Char parisa = 100 ;
فراخوانی داده int
از این داده برای اعداد استفاده میشود. این داده ۱۶ یا ۳۲ بیتی است و بازه قابل قبول -۳۲۷۶۷ تا ۳۲۷۶۷ است.
int parisa = 123;
نمونه برنامه برای تست داده int
int countplus = 0; //ساخت یک متغیر برحسب داده int void setup() { Serial.begin(9600); //استفاده از سریال مانیتور برای نمایش اعداد } void loop() { countplus++; //متغیر افزایشی برای شمارش اعداد Serial.println(countplus); // نمایش مقادیر متغیر در سریال مانیتور delay(1000); }
فراخوانی داده float
بیشتری کاربرد این داده، برای نمایش اعداد اعشاری است. این داده ۳۲ بیتی است و بازه قابل قبول به صورت ۷ رقم دقت ( ارقام بعد از اعشار) به صورت تقریبی ۱۰-۳۸ تا ۱۰۳۸ است.
flaot parisa = 5.5789
تست برنامه با داده flaot
float countplus = 2.36; //ساخت متغیر بر واحد داده float void setup() { Serial.begin(9600); //استفاده از سریال مانیتور برای نمایش اعداد } void loop() { countplus++; //متغیر افزایشی برای شمارش اعداد Serial.println(countplus); // نمایش مقادیر متغیر در سریال مانیتور delay(1000); }
فراخوانی داده double
داده double برای ذخیره اعداد اعشاری بزرگتر از float استفاده میشود. داده double 64 بیتی و بازه قابل قبول ۱۵ رقم دقت ( تقریبا ۱۰-۳۰۸ تا ۱۰۳۰۸ ) است.
double parisa = 45.665;
فراخوانی داده long
از این داده برای ذخیره سازی اعداد در بازه ی گسترده تری استفاده میشود. این داده ۳۲ بیتی و بازه قابل قبول بین -۲۱۴۷۴۸۳۶۴۷ تا ۲۱۴۷۴۸۳۶۴۷ است.
long speedOfLight_km_s = 300000L;
فراخوانی داده unsigned long
همانند long برای ذخیره ی اعداد در بازه ی بیشتر از long استفاده میشود و اعداد منفی را شامل نمیشود. بازه قابل قبول تا +۴,۲۹۴,۹۶۷,۲۹۵ است.
unsigned long time; void setup() { Serial.begin(9600); } void loop() { Serial.print("Time: "); time = millis(); //prints time since program started Serial.println(time); // wait a second so as not to send massive amounts of data delay(1000); }
داده بایت Byte
از داده بایت برای ذخیره اعداد بین ۰ تا ۲۵۵ استفاده میشود.
بررسی جدول انواع داده و مقادیر قابل قبول
در جدول زیر با انواع داده، اندازه به بیت و بازه قابل قبول هر داده آشنا خواهید شد.
جمع بندی
هدف از برنامه نویسی در آردوینو، دریافت دیتای صحیح از سنسور، پردازش و دریافت گزارش است. پس نقش مهمی را در کد آردوینو برای ما ایفا میکند. در دیتاشیت اغلب سنسورها داده های مجاز برای تعریف در برنامه نوشته شده است اما با توجه به ماهیت هر سنسور، میتوانید نوع داده مناسب برای آن را مشخص کنید. در این آموزش انواع داده، روش فراخوانی و نمونه برنامه اجرا شده برای هر داده آموزش داده شده است و به تسلط نسبی خواهید رسید.
سلام
خیلی کامل بود ممنونم از شما
سپاس از همراهی شما کاربر گرامی
سلام خانم مهندس
آیا امکان استفاده از چندین نوع داده وجود دارد؟
با سلام
بله هیچ مانعی برای استفاده وجود ندارد. اما دقت داشته باشید که اگر داده ای برای یک متغیر تعریف کرده اید در طول برنامه نویسی نوع آن تغییر نکند.
سلام
تفاوت بین دیتا bool , boolean چیه؟
با سلام
هر دو عملکرد یکسانی دارند اما محل ذخیره متفاوت است و boolean فقط آبجکت است .
سلام مهندس بین دیتای int و دیتای byte کدام یک را در کد استفاده کنیم؟
با سلام
داده byte حجم کمتری از حافظه را اشغال میکند و بهتر است از byte استفاده کنید.
سلام خانم مهندس از توضیحات کامل شما ممنونم. آیا نوع داده وریبل ها و دیتا باید مشابه باشد؟
با سلام و سپاس از همراهی شما
بله بایستی نوع داده ها یکسان باشد.
سلام
من از byte به جای int استفاده میکنم و خیلی حجم کمتری از حافظه رو اشغال میکنه
با سلام
کاربر گرامی از اینکه تجربه ی خود را با دیگر کاربران به اشتراک میگذارید، صمیمانه سپاسگزاریم.
داده ی لانگ LONG را در چه زمانی هایی میتوانیم استفاده کنیم ممنون میشم پاسخ بدید
با سلام
زمان هایی که از تابع های زمانی و اضافه کردن مدت زمان در کد برنامه میخواهیم استفاده کنیم، نوع داده را long انتخاب کنید.
سلام
چه زمانی باید از داده بولین استفاده کنیم؟
با سلامی زمانی که بخواهید وضعیت یک متغیر را از قبل فعال یا غیرفعال معرفی کنید میتوانید از این نوع داده استفاده کنید.
سلام
من برای یک خروجی ال ای دی در پروژه های مختلف دیدم که از داده های مثل int bool byte استفاده شده است. کدام یک انتخاب صحیح تری است؟
با سلام
این مورد وابسته به نقش خروجی و یا ورودی در برنامه دارد. به عنوان مثال اگر بخواهید ال ای دی به صورت پیشفرض در برنامه LOW or Flase باشد، بایستی از boolean استفاده کنید.
تفاوت byteدر مقایسه با int هم در کمتر اشغال کردن حافظه است.
برای millis چرا از long استفاده شده همه جا؟
با سلام
داده long رنج گسترده ای از اعداد را برای زمان برای ما ذخیره خواهد کرد. جدول را مشاهده کنید.
سلام
اکر از bool یا boolean استفاده کنیم فرقی نداره؟
با سلام
تفاوتی ندارد.
توضیحات شما عالیه
با سلام
کاربر گرامی سپاس از همراهی شما
امیدوارم مفید واقع شده باشد.
سلام و خسته نباشید
آیا استفاده از داده بایت بر integer الویت دارد؟
با سلام
بله اولویت دارد.
با سلام
آیا نوع داده و متغیرها باید یکسان باشد؟؟
با سلام
بله بایستی یکسان باشد.