پیشرفت یادگیری
۱ ۲ ۳ ۴
بخش ۱ از ۴
بخش اول از ۴

مفاهیم پایه و متغیرها
آموزش گام‌به‌گام برنامه‌نویسی آردوینو

بخش قبلی: - بخش ۱ از ۴ بخش بعدی: ساختارهای کنترلی
مفاهیم پایه زبان فارسی C/C++ سطح: کاملاً مبتدی زمان مطالعه: ۳۰ دقیقه

در این بخش چه می‌آموزیم؟

زبان برنامه‌نویسی آردوینو بر پایه‌ی C/C++ طراحی شده است. در این بخش، با مفاهیم پایه‌ای برنامه‌نویسی شامل متغیرها، انواع داده و ثابت‌ها آشنا می‌شویم.

متغیرها

ذخیره‌سازی داده در حافظه

انواع داده

int, float, char, bool, byte

ثابت‌ها

HIGH, LOW, INPUT, OUTPUT

ساختار برنامه

Setup و Loop

۱-۱ ساختار برنامه آردوینو

هر برنامه آردوینو از دو بخش اصلی تشکیل شده است. این ساختار ساده و استاندارد، پایه‌ی تمام پروژه‌های آردوینو است:

۱

Setup

تنظیمات اولیه در این بخش نوشته می‌شود و تنها یک بار در ابتدای برنامه اجرا می‌شود.

pinMode(13, OUTPUT);
۲

Loop

کد اصلی در این بخش نوشته می‌شود و به‌صورت بی‌نهایت تکرار می‌شود.

digitalWrite(13, HIGH);
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);              // ۱ ثانیه صبر کن
}

برنامه ۱: ساختار پایه آردوینو

۱-۲ متغیرها

متغیرها برای ذخیره‌سازی داده‌ها در حافظه استفاده می‌شوند. هر متغیر دارای ویژگی‌هایی مانند نام، نوع، مقدار، آدرس، طول عمر و محدوده‌ی عمل است.

انواع متغیرها

متغیر محلی

فقط در همان تابع قابل استفاده است.

void loop() {
  int sensor = 10;
}

متغیر سراسری

در کل برنامه قابل استفاده است.

int led = 13;
void setup() { ... }

ثابت (const)

مقداری که در طول برنامه تغییر نمی‌کند.

const float pi = 3.14;

متغیر ایستا (static)

مقدار خود را بین فراخوانی‌ها حفظ می‌کند.

static int count = 0;

متغیر فرار (volatile)

ممکن است خارج از برنامه تغییر کند (مثلاً در وقفه).

volatile byte flag = 0;

نکته مهم: انتخاب نوع داده‌ی مناسب بر اساس محدوده و نوع مقداری که قرار است ذخیره شود، تأثیر مستقیمی بر کارایی و مصرف حافظه دارد.

۱-۳ انواع داده در آردوینو

هر نوع داده، فضای مشخصی از حافظه را اشغال می‌کند و محدوده‌ی مشخصی از مقادیر را پشتیبانی می‌کند. انتخاب نوع داده‌ی مناسب، از هدررفت حافظه جلوگیری کرده و کارایی برنامه را افزایش می‌دهد.

نوع داده اندازه محدوده توضیح مثال
bool ۱ بایت true / false مقدار بولی bool flag = true;
byte ۱ بایت ۰ تا ۲۵۵ عدد صحیح بدون علامت byte b = 200;
char ۱ بایت -۱۲۸ تا ۱۲۷ یک کاراکتر (ASCII) char c = 'A';
int ۲ بایت -۳۲,۷۶۸ تا ۳۲,۷۶۷ عدد صحیح int x = 100;
unsigned int ۲ بایت ۰ تا ۶۵,۵۳۵ عدد صحیح بدون علامت unsigned int u = 50000;
long ۴ بایت -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷ عدد صحیح بزرگ long l = 123456789;
float ۴ بایت ±۳.۴×۱۰³⁸ عدد اعشاری (دقت ۷ رقم) float f = 3.14;
double ۴ بایت مشابه float معادل float در اونو double d = 5.5;
String متغیر - کلاس رشته در آردوینو String s = "Hello";

نکته: در آردوینو، 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

بخش قبلی: - بخش ۱ از ۴ بخش بعدی
#برنامه_نویسی_آردوینو #مفاهیم_پایه_آردوینو #متغیرها_در_آردوینو #انواع_داده_آردوینو #ثابت_های_آردوینو #آموزش_آردوینو