آموزش گام‌به‌گام

آموزش برنامه‌نویسی آردوینو
۴ بخش جامع – از مبتدی تا پیشرفته

برنامه‌نویسی آردوینو زبان فارسی Arduino Uno, Mega, Nano زبان C/C++ سطح: مبتدی تا پیشرفته

مقدمه

زبان برنامه‌نویسی آردوینو بر پایه‌ی C/C++ طراحی شده و از سه بخش اصلی توابع، مقادیر و ساختارها تشکیل می‌شود. در این آموزش، اصول پایه‌ای برنامه‌نویسی شامل متغیرها، انواع داده، عملگرها، ساختارهای کنترلی و توابع پرکاربرد به‌صورت جامع ارائه می‌شود.

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

Setup

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

Loop

اجرای بی‌نهایت کد اصلی – تکراری

بخش اول: مفاهیم پایه و متغیرها

مطالعه کامل

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

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

متغیر محلی

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

int sensor = 10;

متغیر سراسری

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

int led = 13;

ثابت (const)

مقداری که تغییر نمی‌کند

const float pi = 3.14;

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

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

static int count = 0;

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

ممکن است خارج از برنامه تغییر کند

volatile byte flag = 0;

انواع داده در آردوینو

نوع داده اندازه محدوده توضیح
bool ۱ بایت true / false مقدار بولی
byte ۱ بایت ۰ تا ۲۵۵ عدد صحیح بدون علامت
char ۱ بایت ۱۲۸- تا ۱۲۷ یک کاراکتر (ASCII)
int ۲ بایت -۳۲,۷۶۸ تا ۳۲,۷۶۷ عدد صحیح
long ۴ بایت -۲,۱۴۷,۴۸۳,۶۴۸ تا ۲,۱۴۷,۴۸۳,۶۴۷ عدد صحیح بزرگ
float ۴ بایت ±۳.۴۰۲۸۲۳۴۷E+۳۸ عدد اعشاری (دقت ۷ رقم)
String متغیر - کلاس رشته در آردوینو

ثابت‌ها در آردوینو

true / false
HIGH / LOW
INPUT
OUTPUT
INPUT_PULLUP
LED_BUILTIN

نکته: در بخش کامل، مثال‌های بیشتری از متغیرها و انواع داده ارائه شده است.

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

مطالعه کامل

ساختارهای کنترلی برای مدیریت جریان اجرای برنامه و تصمیم‌گیری بر اساس شرایط مختلف به کار می‌روند. این ساختارها نقش مهمی در ایجاد برنامه‌های پویا و هوشمند دارند.

دستورات شرطی

if

اجرای شرطی

if (x > 10) { ... }

else

اجرا در صورت نبود شرط

else { ... }

else if

شرط دوم

else if (x == 5) { ... }

switch-case

انتخاب چندمسیره

switch (var) { case 1: ... }

حلقه‌های تکرار

for

حلقه با شمارنده

for (int i=0; i<10; i++)

while

حلقه با شرط

while (x < 100) { x++; }

do-while

حداقل یک بار اجرا

do { ... } while (x < 100);

break / continue

خروج یا پرش در حلقه

break; / continue;

نمونه کد: در بخش کامل، مثال‌های عملی از if-else، حلقه for و while ارائه شده است.

بخش سوم: توابع و عملگرها

مطالعه کامل

عملگرهای حسابی و مقایسه‌ای

+ جمع
- تفریق
* ضرب
/ تقسیم
% باقی‌مانده
== مساوی
!= نامساوی
> بزرگ‌تر
< کوچک‌تر

عملگرهای منطقی و بیتی

&& AND
|| OR
! NOT
& AND بیتی
| OR بیتی
^ XOR بیتی
~ NOT بیتی
<< شیفت چپ
>> شیفت راست

عملگرهای مرکب و افزایشی

+=
-=
*=
/=
++
--

توابع تبدیل نوع داده

char(x)
byte(x)
int(x)
float(x)
long(x)
word(x)

توابع زمانی

delay(ms) تاخیر به میلی‌ثانیه
delayMicroseconds(us) تاخیر به میکروثانیه
millis() زمان سپری‌شده (میلی‌ثانیه)
micros() زمان سپری‌شده (میکروثانیه)

توابع ریاضی

abs(x) قدر مطلق
map(value, a, b, c, d) نگاشت
constrain(x, a, b) محدود کردن
pow(base, exp) توان
sqrt(x) جذر
random(max) عدد تصادفی
max(x, y) بیشینه
min(x, y) کمینه

بخش چهارم: توابع ورودی/خروجی و ارتباطات

مطالعه کامل

توابع ورودی و خروجی، رابط اصلی آردوینو با دنیای خارج هستند و امکان خواندن داده از حسگرها و نوشتن فرمان به محرک‌ها را فراهم می‌کنند.

توابع ورودی/خروجی پایه

pinMode(pin, mode) تنظیم جهت پایه
digitalRead(pin) خواندن دیجیتال
digitalWrite(pin, value) نوشتن دیجیتال
analogRead(pin) خواندن آنالوگ (۰ تا ۱۰۲۳)
analogWrite(pin, value) نوشتن PWM (۰ تا ۲۵۵)

توابع پیشرفته ورودی/خروجی

tone(pin, freq, duration) تولید صدا
noTone(pin) توقف صدا
pulseIn(pin, value, timeout) اندازه‌گیری پالس
shiftOut(dataPin, clockPin, order, value) ارسال سریال
shiftIn(dataPin, clockPin, order) دریافت سریال

توابع ارتباط سریال

Serial.begin(speed) شروع ارتباط
Serial.print(data) چاپ متن
Serial.println(data) چاپ با خط جدید
Serial.read() خواندن یک بایت
Serial.available() تعداد بایت‌های موجود
Serial.readString() خواندن به‌صورت رشته

توابع وقفه

attachInterrupt(pin, ISR, mode) فعال‌سازی وقفه
detachInterrupt(pin) غیرفعال‌سازی وقفه
interrupts() فعال‌سازی کلی وقفه‌ها
noInterrupts() غیرفعال‌سازی کلی وقفه‌ها

نکته: حالت‌های وقفه شامل RISING، FALLING، CHANGE، LOW و HIGH هستند.

توابع شبیه‌سازی صفحه‌کلید و ماوس

Keyboard.print(text) تایپ متن
Keyboard.press(key) فشار کلید
Mouse.click(button) کلیک ماوس
Mouse.move(x, y, wheel) حرکت مکان‌نما

سایر دستورات

#define NAME value تعریف ثابت
#include <library.h> افزودن کتابخانه
// کامنت تک‌خطی
/* ... */ کامنت چندخطی

مسیر پیشنهادی یادگیری

بخش اول بخش دوم بخش سوم بخش چهارم

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

منابع

  • ✓ م. اللهی رودپشتی، آموزش برد آردوینو از سخت‌افزار تا نرم‌افزار، خاکیان، ۱۴۰۰
  • ✓ م. اللهی رودپشتی، آموزش آردوینو با محوریت کنترل موتورهای الکتریکی، ۱۴۰۵

سایر کتاب‌های آموزشی آردوینو

پس از مطالعه این آموزش، می‌توانید به سراغ سایر منابع ارزشمند این مجموعه بروید:

Arduino Microcontroller Part I

مشاهده و دانلود →

Arduino Microcontroller Part II

مشاهده و دانلود →

Getting Started with Arduino

مشاهده و دانلود →

Arduino Workshop for Beginners

مشاهده و دانلود →

آموزش پروژه محور آردوینو (فارسی)

مشاهده و دانلود →

آموزش آردوینو با محوریت IoT

مشاهده و دانلود →

کنترل موتورهای الکتریکی با آردوینو

مشاهده و دانلود →
#برنامه_نویسی_آردوینو #آموزش_برنامه_نویسی_آردوینو #Arduino_Programming #متغیرها_در_آردوینو #ساختارهای_کنترلی #توابع_آردوینو #عملگرهای_آردوینو