مفاهیم پایه و متغیرها
آموزش گامبهگام برنامهنویسی آردوینو
در این بخش چه میآموزیم؟
زبان برنامهنویسی آردوینو بر پایهی C/C++ طراحی شده است. در این بخش، با مفاهیم پایهای برنامهنویسی شامل متغیرها، انواع داده و ثابتها آشنا میشویم.
متغیرها
ذخیرهسازی داده در حافظه
انواع داده
int, float, char, bool, byte
ثابتها
HIGH, LOW, INPUT, OUTPUT
ساختار برنامه
Setup و Loop
۱-۱ ساختار برنامه آردوینو
هر برنامه آردوینو از دو بخش اصلی تشکیل شده است. این ساختار ساده و استاندارد، پایهی تمام پروژههای آردوینو است:
Setup
تنظیمات اولیه در این بخش نوشته میشود و تنها یک بار در ابتدای برنامه اجرا میشود.
Loop
کد اصلی در این بخش نوشته میشود و بهصورت بینهایت تکرار میشود.
delay(1000);
digitalWrite(13, LOW);
delay(1000);
void setup() { pinMode(13, OUTPUT); // تنظیم پایه ۱۳ بهعنوان خروجی } void loop() { digitalWrite(13, HIGH); // LED روشن delay(1000); // ۱ ثانیه صبر کن digitalWrite(13, LOW); // LED خاموش delay(1000); // ۱ ثانیه صبر کن }
برنامه ۱: ساختار پایه آردوینو
۱-۲ متغیرها
متغیرها برای ذخیرهسازی دادهها در حافظه استفاده میشوند. هر متغیر دارای ویژگیهایی مانند نام، نوع، مقدار، آدرس، طول عمر و محدودهی عمل است.
انواع متغیرها
متغیر محلی
فقط در همان تابع قابل استفاده است.
int sensor = 10;
}
متغیر سراسری
در کل برنامه قابل استفاده است.
void setup() { ... }
ثابت (const)
مقداری که در طول برنامه تغییر نمیکند.
متغیر ایستا (static)
مقدار خود را بین فراخوانیها حفظ میکند.
متغیر فرار (volatile)
ممکن است خارج از برنامه تغییر کند (مثلاً در وقفه).
نکته مهم: انتخاب نوع دادهی مناسب بر اساس محدوده و نوع مقداری که قرار است ذخیره شود، تأثیر مستقیمی بر کارایی و مصرف حافظه دارد.
۱-۳ انواع داده در آردوینو
هر نوع داده، فضای مشخصی از حافظه را اشغال میکند و محدودهی مشخصی از مقادیر را پشتیبانی میکند. انتخاب نوع دادهی مناسب، از هدررفت حافظه جلوگیری کرده و کارایی برنامه را افزایش میدهد.
نکته: در آردوینو، int معادل short int (۲ بایت) و long معادل long int (۴ بایت) است.
۱-۴ ثابتها در آردوینو
ثابتها مقادیر از پیش تعریفشدهای هستند که برای افزایش خوانایی و سادگی برنامه در آردوینو تعریف شدهاند.
مقادیر بولی
true – درست منطقی (۱)false – نادرست منطقی (۰)
سطوح ولتاژ
HIGH – سطح بالا (۵V یا ۳.۳V)LOW – سطح پایین (۰V)
حالتهای پایه
INPUT – ورودیOUTPUT – خروجیINPUT_PULLUP – ورودی با مقاومت بالاکش
LED داخلی
LED_BUILTIN – شماره پایه LED داخلی (معمولاً ۱۳)
مثال عملی:
pinMode(13, OUTPUT); // استفاده از ثابت OUTPUT digitalWrite(13, HIGH); // استفاده از ثابت HIGH int state = true; // استفاده از ثابت true
۱-۵ مثالهای عملی
مثال ۱: تعریف متغیرها و استفاده از آنها
// تعریف متغیرها int ledPin = 13; // متغیر سراسری const int sensorPin = A0; // ثابت (تغییر نمیکند) float temperature = 25.5; // عدد اعشاری bool isOn = true; // مقدار بولی void setup() { pinMode(ledPin, OUTPUT); } void loop() { if (isOn) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } int sensorValue = analogRead(sensorPin); // متغیر محلی }
مثال ۲: محاسبات با متغیرها
int a = 10; int b = 20; int sum = a + b; // جمع int diff = b - a; // تفریق int mult = a * b; // ضرب float div = (float)b / a; // تقسیم با تبدیل نوع void setup() { Serial.begin(9600); Serial.println(sum); // خروجی: 30 Serial.println(div); // خروجی: 2.00 }
تمرین: یک برنامه بنویسید که دو عدد صحیح را در متغیرهای x و y ذخیره کرده و حاصل جمع آنها را در یک متغیر به نام result قرار دهد و سپس در ترمینال نمایش دهد.
خلاصه بخش اول
ساختار برنامه
هر برنامه از setup() و loop() تشکیل شده است.
متغیرها
محلی، سراسری، ثابت، ایستا، فرار
انواع داده
int, float, char, bool, byte, long, String
ثابتها
HIGH, LOW, INPUT, OUTPUT, INPUT_PULLUP