آردوینو آموزش آردوینو

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

arduino-basic-tutorial-part-eight-string-array-in-programming-digispark
نوشته شده توسط پریسا پوربلورچیان

اگر تعداد داده ها زیاد باشد، چه اتفاقی میفتد؟ تا چه زمانی مجاز به استفاده از متغیرها هستیم؟ اگر تعداد داده ها زیاد باشد، بهترین روش برای ساده نویسی کد آردوینو استفاده از آرایه ها و رشته ها است.آرایه ها همنوع هستند و هر آرایه دارای اسم مشخصی است که دقیقا مشابه متغیرها نامگذاری می‌شوند. برای فراخوانی آرایه ها از اندیس استفاده می‌کنیم. در ادامه با مرجع تخصصی آردوینو، دیجی اسپارک همراه باشید.

 


آرایه تک بعدی یا لیست


در C++، شما می‌توانید از آرایه‌های تک بعدی یا همان لیست‌ها (Arrays) استفاده کنید. آرایه تک بعدی یک مجموعه متغیرهای هم‌نوع است که به صورت پشت سر هم در حافظه ذخیره می‌شوند. این متغیرها با شماره‌های صحیح معین شده به عنوان “اندیس” قابل دسترسی هستند. اندیس از ۰ تا (اندازه آرایه – ۱) می‌تواند باشد. در آردوینو (Arduino)، شما می‌توانید از آرایه‌ها به صورت مشابه با C/C++ استفاده کنید. آرایه‌ها در آردوینو برای ذخیره و مدیریت داده‌های مختلفی به کار می‌روند.برای تعریف یک آرایه در آردوینو، می‌توانید از نوع داده مورد نظر خود (مانند int یا byte) استفاده کرده و اندازه آرایه را تعیین کنید. مثال زیر یک آرایه از اعداد صحیح در آردوینو تعریف می‌کند:

int myArray[5]; // تعریف یک آرایه تک بعدی از اعداد صحیح با ۵ عنصر

سپس می‌توانید به عناصر آرایه دسترسی پیدا کنید و مقادیر را مقداردهی کنید یا از آنها استفاده کنید. به عنوان مثال:

myArray[0] = 10; // مقداردهی به عنصر اول آرایه
myArray[1] = 20; // مقداردهی به عنصر دوم آرایه
int value = myArray[2]; // دسترسی به مقدار عنصر سوم آرایه و ذخیره آن در متغیر

 

آرایه‌ها در آردوینو همچنین می‌توانند برای ذخیره و مدیریت داده‌های متفاوتی مانند رشته‌ها (Strings)، اعداد حقیقی (floats)، و داده‌های سفارشی نیز استفاده شوند. به عنوان مثال:

String names[3] = {“arduino”, “sensor”, “LED”}; // تعریف یک آرایه از رشته‌ها
float sensorReadings[4]; // تعریف یک آرایه از اعداد حقیقی با ۴ عنصر
struct Point {
int x;
int y;
};
Point coordinates[2]; // تعریف یک آرایه از داده‌ساختارها

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

 

  • نوع آرایه یکی از انواع داده در C++ است.
  • نام آرایه برای دسترسی به آرایه استفاده می‌شود.
  • طول آرایه با یک عدد صحیح مثبت مشخص می‌شود.
  • اندیس آرایه از صفر شروع می‎‌شود.

 

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

 int myInts[6];
  int myPins[] = {2, 4, 8, 3, 6};
  int mySensVals[6] = {2, 4, -8, 3, 2};
  char message[6] = "hello";

 


 نمونه کد آردوینو ARRAY


در کد زیر ۴ پین در یک آرایه با اسم mypins تعریف شده است. اگر بخواهیم به ترتیب هر پایه در سریال مانیتور با عدد نمایش داده شود. از یک حلقه تکرار for برای فراخوانی آرایه mypins استفاده می‌کنیم. شرط نویسی for قبلا آموزش داده شده است.

int mypins[]= {3,4,5,6,7}
int i;
for (i = 0; i<5; i=i+1)
{
  Serial.println(mypins[i]);
}

 

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

 

مطابق با شماتیک بالا اتصالات را انجام میدهیم.

 


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


نرم افزار آردوینو را باز کرده و متناسب با نوع برد استفاده، پورت را مشخص کنید. سپس کد برنامه را کپی و به نرم افزار آردوینو انتقال دهید.

int ledArray[] = {2,3,4,5,6,7,8,9};
int delayTime = 50;
void setup() {
  // استفاده از تابع حلقه for  برای تعریف خروجی
  for(int i = 0; i<10; i++)
  {
    pinMode(ledArray[i], OUTPUT);
  }}
void loop() {
  //روشن شدن هشت ال ای دی 
  for(int i = 0; i <= 7; i++)
  {
    digitalWrite(ledArray[i], HIGH);
    delay(delayTime);
  }

  //خاموش شدن هشت ال ای دی
  for(int i = 7; i >= 0; i--)
  {
    digitalWrite(ledArray[i], LOW);
    delay(delayTime*5);
  }
}

 

 


تحلیل کد آردوینو آرایه


۸ ال ای دی داریم که تعریف هشت متغیر برای هر کدام بسیار روند برنامه نویسی را کند خواهد کرد. پس در اولین خط از کدنویسی از آرایه استفاده می‌کنیم.

int ledArray[] = {2,3,4,5,6,7,8,9};

نام آرایه ledArray است و طول آرایه به ترتیب ۲و۳و۴و۵و۶و۷و۸و۹ است

 

به دلخواه میتوانیم از یک متغیر برای تاخیر در برنامه استفاده کنیم که در این کد اسم دلخواه delayTime با تاخبر ۵۰ میلی ثانیه در برنامه تعریف می‌شود.

int delayTime = 50;

 

در برنامه اصلی یعنی Voidsetup ورودی و خروجی را تعریف می‌کنیم که برای سهولت در کدنویسی از ساختار تکراار for برای تعریف خروجی ها استفاده می‌کنیم.

void setup() {
  // استفاده از تابع حلقه for  برای تعریف خروجی
  for(int i = 0; i<10; i++)
  {
    pinMode(ledArray[i], OUTPUT);
  }}

// تمامی طول آرایه ها در نقش خروجی تعریف شده است

 

 در حلقه برنامه میخواهیم ال ای دی ها در بازه زمانی مشخص شده روشن و خاموش شود. برای اینکار از ساختار تکرار for استفاده می‌کنیم. تحت شرایطی خاص یک یا چند دستور چندین بار اجرا می‌شوند. شرط روشن شدن ال ای دی ها به صورت زیر است.

/روشن شدن هشت ال ای دی 
  for(int i = 0; i <= 7; i++)
  {
    digitalWrite(ledArray[i], HIGH);
    delay(delayTime);
  }

 

 شرط خاموش شدن ال ای دی ها به صورت زیر است.

for(int i = 7; i >= 0; i--)
  {
    digitalWrite(ledArray[i], LOW);
    delay(delayTime*5);
  }

 

 به صورت کلی تابع حلقه Voidloop به صورت زیر در برنامه نوشته می‌شود.

void loop() {
  //روشن شدن هشت ال ای دی 
  for(int i = 0; i <= 7; i++)
  {
    digitalWrite(ledArray[i], HIGH);
    delay(delayTime);
  }

  //خاموش شدن هشت ال ای دی
  for(int i = 7; i >= 0; i--)
  {
    digitalWrite(ledArray[i], LOW);
    delay(delayTime*5);
  }
}

 


وسایل مورد نیاز


آردوینو Arduino  ( نوع آردوینو دلخواه است و این کد با تمامی آردوینو ها سازگار است )

برد بورد

 ال ای دی به مقدار لازم

 مقاومت ۲۲۰ اهم

 کابل فلت

کابل usb to type b

 


جمع بندی لیدی پای


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

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۷ دیدگاه