
در دنیای آردوینو، گاهی فقط نیاز دارید بدانید یک چیز «روشن است یا خاموش؟»، «سنسور فعال است یا غیرفعال؟»، «شرایط برقرار است یا نه؟».
برای همین کارها، از نوع دادهی bool استفاده میشود.
این نوع داده فقط دو مقدار میتواند داشته باشد:
true → به معنی «درست» یا «بله»false → به معنی «غلط» یا «خیر»فرض کنید میخواهید بدانید آیا دکمه فشرده شده است یا نه. میتوانید از یک متغیر عددی استفاده کنید و عدد ۱ یا ۰ ذخیره کنید، اما این روش گیجکننده است.
اما با bool، کد شما خواناتر و منطقیتر میشود:
bool buttonPressed = false; // در ابتدا دکمه فشرده نشده
همین سادگی! حالا هر کس کد شما را بخواند، دقیقاً متوجه منظور شما میشود.
تعریف یک متغیر از نوع bool بسیار ساده است:
bool myState = true;
bool isDark = false;
شما میتوانید مقدار یک متغیر bool را در شرطها (مثل if) مستقیماً استفاده کنید:
bool lightOn = true;
if (lightOn) {
Serial.println("چراغ روشن است!");
} else {
Serial.println("چراغ خاموش است.");
}
نیازی نیست بنویسید if (lightOn == true) — چون خودِ lightOn یک مقدار منطقی است!
در این مثال، یک دکمه به پین ۲ متصل شده است. میخواهیم وضعیت آن را در یک متغیر bool ذخیره کنیم:
const int buttonPin = 2;
bool buttonState = false;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
buttonState = !digitalRead(buttonPin); // چون از PULLUP استفاده کردیم، LOW یعنی فشرده شده
if (buttonState) {
Serial.println("دکمه فشرده شد!");
} else {
Serial.println("دکمه آزاد است.");
}
delay(200);
}
بسیاری فکر میکنند چون bool فقط دو حالت دارد، پس باید کمتر از یک بایت حافظه بگیرد. اما در آردوینو (و بیشتر سیستمهای مبتنی بر C++)، هر متغیر bool دقیقاً یک بایت از RAM را اشغال میکند.
اگر RAM کم دارید (مثل آردوینو Uno با فقط ۲ کیلوبایت)، و نیاز به ذخیرهی صدها وضعیت دارید، بهتر است از بیتها در یک آرایه byte استفاده کنید — اما این موضوع برای مبتدیها پیچیده است و فعلاً نیازی به نگرانی نیست!
اگر یک عدد (مثلاً int) را در یک شرط if بگذارید، آردوینو آن را بهصورت خودکار به bool تبدیل میکند:
— هر عدد غیر از صفر → true
— عدد صفر → false
int sensorValue = 5;
if (sensorValue) {
// این بخش اجرا میشود، چون 5 غیرصفر است!
Serial.println("مقدار سنسور صفر نیست.");
}
اما استفاده از bool برای وضعیتهای منطقی، همیشه خوانایی کد را بالا میبرد و از اشتباهات جلوگیری میکند.
این مطلب بر اساس مستندات رسمی Arduino از بخش bool – Language Reference تهیه شده است، اما با توضیحات سادهتر، مثالهای کاربردی و نکات طلایی منحصربهفرد برای کاربران فارسیزبان.
برچسب های مهم