
در آردوینو، نوع دادهی byte برای ذخیرهی اعداد صحیح در محدودهی ۰ تا ۲۵۵ استفاده میشود.
این نوع داده دقیقاً یک بایت (۸ بیت) از حافظه را اشغال میکند — همان حجمی که یک کاراکتر ساده مصرف میکند.
چرا این محدوده؟ چون ۸ بیت میتواند 2^8 = 256 حالت مختلف داشته باشد، یعنی از ۰ تا ۲۵۵.
در آردوینو، نوع دادهی int دو بایت حافظه مصرف میکند و میتواند اعداد منفی و مثبت را ذخیره کند (معمولاً از -۳۲۷۶۸ تا +۳۲۷۶۷).
اما اگر شما میدانید که دادهی شما همیشه بین ۰ تا ۲۵۵ است (مثل مقدار خروجی یک پین PWM یا خواندن یک سنسور آنالوگ پس از تبدیل)، استفاده از byte هوشمندانهتر است:
byte brightness = 150; // روشنایی LED (0 تا 255)
byte sensorValue = 0; // مقدار سنسور
byte pinNumber = 9; // شماره پین
مثال کاربردی با analogWrite که فقط اعداد ۰ تا ۲۵۵ را میپذیرد:
byte ledPin = 9;
byte brightness = 200;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
analogWrite(ledPin, brightness); // brightness باید بین 0 تا 255 باشد
}
اگر مقدار یک متغیر byte را کم کنید و از صفر پایینتر برود، به جای منفی شدن، به انتهای محدوده بر میگردد (این پدیده را «سرریز معکوس» یا underflow میگویند):
byte x = 0;
x = x - 1; // حالا x برابر است با 255!
این رفتار گاهی عمدی است (مثلاً در انیمیشنهای چرخشی)، اما اغلب باعث خطا میشود. همیشه قبل از کم کردن، بررسی کنید که متغیر از صفر بیشتر است:
if (x > 0) {
x--;
}
در آردوینو، هر دو نوع byte و char یک بایت حافظه مصرف میکنند.
اما تفاوت منطقی دارند: — byte برای اعداد ۰ تا ۲۵۵ طراحی شده.
— char برای کاراکترها (مثل A یا 5) است.
با این حال، در پشت صحنه، هر کاراکتر یک عدد است (مثلاً A = 65). پس گاهی میتوانید آنها را تبدیل کنید — اما فقط وقتی که واقعاً نیاز دارید!
یک رنگ RGB از سه مقدار قرمز، سبز و آبی تشکیل شده که هر کدام بین ۰ تا ۲۵۵ است:
byte red = 255;
byte green = 128;
byte blue = 0;
// ارسال به یک LED RGB (با PWM)
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
استفاده از byte در اینجا کاملاً منطقی است — چون هیچوقت نیازی به عدد منفی یا بزرگتر از ۲۵۵ نداریم.
این مطلب بر اساس مستندات رسمی Arduino از بخش byte – Language Reference تهیه شده است، با توضیحات سادهشده، مثالهای کاربردی و نکات طلایی منحصربهفرد برای جامعه فارسیزبان.
برچسب های مهم