نوع داده char در آردوینو — آموزش کامل کاراکترها و تفاوت با byte  
آردوینو ایران | آموزش تخصصی آردوینو به فارسی

آردوینو ایران | آموزش تخصصی آردوینو به فارسی

آردوینو ایران — مرجع تخصصی آموزش آردوینو به فارسی! دوره‌های کاربردی، پروژه‌محور و گام‌به‌گام برای مبتدی‌ها تا پیشرفته‌ها: از راه‌اندازی اولین LED تا ساخت ربات، IoT و سیستم‌های هوشمند خانه. یادگیری عملی، کدنویسی ساده، پشتیبانی فنی و دسترسی مادام‌العمر به محتوا — فقط برای عاشقان الکترونیک و برنامه‌نویسی سخت‌افزاری.

اشتراک در خبرنامه

جهت عضویت در خبرنامه لطفا ایمیل خود را ثبت نمائید

Captcha

آمار بازدید

  • بازدید امروز : 36
  • بازدید دیروز : 10
  • بازدید کل : 14603

نوع داده char در آردوینو — آموزش کامل کاراکترها و تفاوت با byte


نوع داده char در آردوینو — آموزش کامل کاراکترها و تفاوت با byte

نوع داده char در آردوینو — ذخیره‌ی کاراکترها و اعداد کوچک در یک بایت

char چیست؟

در آردوینو، نوع داده‌ی char برای ذخیره‌ی یک کاراکتر منفرد (مثل A، 5 یا @) استفاده می‌شود.
هر متغیر از نوع char دقیقاً یک بایت (۸ بیت) از حافظه را اشغال می‌کند.

اما نکته‌ی جالب اینجاست: در پس‌زمینه، هر کاراکتر در واقع یک عدد است! این اعداد بر اساس جدول استاندارد ASCII تعریف شده‌اند.
مثلاً: — کاراکتر A معادل عدد ۶۵ است.
— کاراکتر 0 معادل عدد ۴۸ است.

چگونه یک char تعریف کنیم؟

برای تعریف یک کاراکتر، از علامت نقل قول تکی () استفاده می‌شود (نه دابل کوتیشن!):

char myLetter = K;
char digit = 7;
char symbol = #;

⚠️ توجه: اگر از دابل کوتیشن استفاده کنید ("K")، آردوینو آن را به عنوان یک رشته (string) در نظر می‌گیرد — نه یک کاراکتر!

char می‌تواند عدد هم ذخیره کند!

چون char در واقع یک عدد ۸ بیتی است، می‌توانید مستقیماً یک عدد به آن نسبت دهید:

char c = 65;  // معادل کاراکتر A
Serial.println(c);  // خروجی: A

همچنین می‌توانید یک کاراکتر را به عدد تبدیل کنید:

char letter = B;
int asciiValue = letter;  // asciiValue = 66

تفاوت char با byte چیست؟

هر دو char و byte یک بایت حافظه مصرف می‌کنند، اما:
byte فقط اعداد مثبت از ۰ تا ۲۵۵ را پشتیبانی می‌کند.
char اعدادی از -۱۲۸ تا +۱۲۷ را پشتیبانی می‌کند (چون به‌صورت پیش‌فرض «علامت‌دار» است).

پس اگر قصد دارید فقط کاراکتر ذخیره کنید یا با اعداد مثبت ۰–۲۵۵ کار کنید، byte گزینه‌ی شفاف‌تری است.
اما اگر واقعاً نیاز به کاراکتر دارید (مثلاً برای ارسال داده به سریال مانیتور)، از char استفاده کنید.

مثال کاربردی: خواندن ورودی از سریال مانیتور

در این مثال، آردوینو منتظر دریافت یک کاراکتر از کامپیوتر است و بر اساس آن LED را روشن یا خاموش می‌کند:

const int ledPin = 13;
char command;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("دستور را وارد کنید: 1 برای روشن، 0 برای خاموش");
}

void loop() {
  if (Serial.available() > 0) {
    command = Serial.read();  // خواندن یک کاراکتر
    
    if (command == 1) {
      digitalWrite(ledPin, HIGH);
      Serial.println("LED روشن شد.");
    } else if (command == 0) {
      digitalWrite(ledPin, LOW);
      Serial.println("LED خاموش شد.");
    }
  }
}

نکته طلایی ۱: کاراکترها و رشته‌ها را اشتباه نگیرید!

بسیاری از مبتدی‌ها این اشتباه را می‌کنند:
A → یک کاراکتر (صحیح برای char)
"A" → یک رشته‌ی ۲ بایتی (شامل A و یک بایت پایان‌دهنده )
استفاده از دابل کوتیشن در جایی که باید تک کوتیشن باشد، باعث خطاهای عجیب و غریب می‌شود!

نکته طلایی ۲: char برای ذخیره‌ی داده‌های باینری هم کاربرد دارد

اگرچه char برای کاراکتر طراحی شده، اما چون یک بایت است، گاهی برای انتقال داده‌های خام (مثل بایت‌های دریافتی از سنسور I2C یا UART) هم استفاده می‌شود.
اما در این موارد، بهتر است از uint8_t یا byte استفاده کنید تا منظور شما از کد واضح‌تر باشد.

منبع رسمی

این مطلب بر اساس مستندات رسمی Arduino از بخش char – Language Reference تهیه شده است، با توضیحات ساده‌شده، مثال‌های کاربردی و نکات طلایی منحصربه‌فرد برای جامعه فارسی‌زبان.

  انتشار : ۱۲ مهر ۱۴۰۴               تعداد بازدید : 308

برچسب های مهم

دیدگاه های کاربران (0)

http://kia-ir.ir

تمام حقوق مادی و معنوی این وب سایت متعلق به "آردوینو ایران | آموزش تخصصی آردوینو به فارسی" می باشد

فید خبر خوان    نقشه سایت    تماس با ما