نوع داده String در آردوینو — کار با متن به سادگی، اما با هشدار!  
آردوینو ایران | آموزش تخصصی آردوینو به فارسی

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

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

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

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

Captcha

آمار بازدید

  • بازدید امروز : 22
  • بازدید دیروز : 41
  • بازدید کل : 14630

نوع داده String در آردوینو — کار با متن به سادگی، اما با هشدار!


نوع داده String در آردوینو — کار با متن به سادگی، اما با هشدار!

نوع داده String در آردوینو — کار با متن به راحتی، اما با احتیاط!

String چیست؟

در آردوینو، نوع داده‌ی String (با حرف بزرگ S) یک کلاس پیشرفته است که به شما امکان می‌دهد راحت‌تر با رشته‌های متنی (مثل "سلام"، "دما: 25C") کار کنید.
برخلاف رشته‌های سنتی C (که آرایه‌ای از char هستند)، String عملیاتی مثل جمع کردن، مقایسه، جستجو و تغییر متن را بسیار ساده می‌کند.

مثال ساده:

String message = "درجه حرارت: ";
message += "25C";
Serial.println(message);  // خروجی: درجه حرارت: 25C

تفاوت String (با S بزرگ) و string (با s کوچک) چیست؟

در آردوینو دو مفهوم متفاوت وجود دارد: — String (با S بزرگ): یک کلاس هوشمند که توسط آردوینو فراهم شده است.
char* یا char[] (گاهی به اشتباه "string" گفته می‌شود): رشته‌های سنتی C که آرایه‌ای از کاراکترها هستند.

تفاوت اصلی: — String راحت‌تر است، اما حافظه‌ی بیشتری مصرف می‌کند و ممکن است باعث خرابی برنامه در پروژه‌های طولانی‌مدت شود.
— رشته‌های char کارآمدتر هستند، اما نیاز به کدنویسی دقیق‌تر دارند.

نحوه تعریف و عملیات‌های رایج

// تعریف
String name = "آردوینو";
String version;

// ترکیب (concatenation)
version = "نسخه " + String(1) + "." + String(8);

// طول رشته
int len = name.length();  // len = 7

// مقایسه
if (name == "آردوینو") {
  Serial.println("نام صحیح است.");
}

// جستجو
int pos = version.indexOf("1");  // pos = 5

مثال کاربردی: ساخت پیام پویا برای نمایشگر

در این مثال، یک پیام شامل دما و رطوبت ساخته می‌شود:

float temperature = 23.5;
float humidity = 60.0;

String displayMessage = "دمای هوا: ";
displayMessage += String(temperature, 1);  // 1 رقم اعشار
displayMessage += "°C | رطوبت: ";
displayMessage += String(humidity, 0);
displayMessage += "%";

// فرض کنید تابعی برای نمایش وجود دارد
// lcd.print(displayMessage);
Serial.println(displayMessage);

نکته طلایی ۱: String می‌تواند RAM را پر کند و برنامه را خراب کند!

هر بار که یک String را تغییر می‌دهید (مثلاً با +=)، آردوینو یک کپی جدید از کل رشته در حافظه می‌سازد.
در آردوینو Uno فقط ۲ کیلوبایت RAM وجود دارد. اگر از String در حلقه‌ی loop() استفاده کنید، ممکن است پس از چند دقیقه، RAM پر شود و برنامه ریست شود یا رفتار عجیبی داشته باشد.

راهکار ایمن: — از String فقط در setup() یا برای پیام‌های کوتاه و موقت استفاده کنید.
— در پروژه‌های حساس یا بلادرنگ، از رشته‌های char و توابعی مثل sprintf() استفاده کنید.

نکته طلایی ۲: برای نمایش اعداد، همیشه از تبدیل صریح استفاده کنید

اگر مستقیماً عدد را به String اضافه کنید، ممکن است نتیجه غیرمنتظره باشد:

int x = 25;
String s = "عدد: " + x;  // ❌ اشتباه! x به عنوان آدرس تفسیر می‌شود

در عوض، همیشه عدد را ابتدا به String تبدیل کنید:

String s = "عدد: " + String(x);  // ✅ درست

جمع‌بندی: چه زمانی از String استفاده کنیم؟

  • ✅ برای پروژه‌های آموزشی و مبتدی‌ها
  • ✅ برای پیام‌های کوتاه و ثابت
  • ✅ وقتی خوانایی کد مهم‌تر از بهینه‌سازی است
  • ❌ نه برای پروژه‌های بلادرنگ یا طولانی‌مدت
  • ❌ نه در حلقه‌ی loop() بدون مدیریت حافظه

منبع رسمی

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

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

برچسب های مهم

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

http://kia-ir.ir

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

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