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

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

arduino-basic-tutorial-part-two-ide---digispark
نوشته شده توسط پریسا پوربلورچیان

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

 


زبان برنامه نویسی آردوینو


زبان برنامه نویسی آردوینو ++C است. زبان برنامه نویسی ++C از زبان برنامه نویسی C توسعه پیدا کرده و از سبک برنامه نویسی شی را پیروی می‌کند. زبان برنامه نویسی شی گرا یک شیوه ی نوین برای کدنویسی است که از ترکیب قطعات نرم افزاری ساخته شده است. هدف زبان برنامه نویسی شی گرا مثل ++C این است که اشیای دنیای واقعی را مدلسازی و نمونه سازی می‌کند. زبان برنامه نویسی ++C انعطاف پذیر است و محدودیتی برای آردوینو ایجاد نمی‌کند. مهم ترین نکته این است که زبان برنامه نویسی سی پلاس پلاس نسبت به حروف حساس است. در این زبان بین حروف کوچک و بزرگ تفاوت است و تمامی کلمات کلیدی با حروف کوچک نوشته می‌شود.

دستوالعمل های برنامه ++C دارای چند پارامتر مهم است.

  • هر دستور زبان برنامه نویسی به سمیکالن ; منتهی می‌شود.
  • حداکثر طول هر خط برنامه ۲۵۵ کاراکتر است.
  • برای مشخص شدن هر خط از برنامه از کامنت استفاده می‌کنیم تا پس از زباد شدن تعداد خط های برنامه نویسی امکان رفع عیب سریع تر باشد.

اگر تا به حال برنامه نویسی نکرده اید، نگرانی نداشته باشید، بخش به بخش جزییات ضروری راه اندازی را بررسی خواهیم کرد.

 


Sketch


برنامه ی آردوینو Arduino به سه بخش اصلی تقسیم می‌شود.

  • Structure
  • Values
  • Functions

بخش اول Structure

 

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

  • Setup () Function
  • Loop () Function

بخش اول Structure در نرم افزار آردوینو IDE - دانشجو کیت

  

معرفی Voidsetup()

در voidsetup توابع اصلی برای شروع برنامه نویسی تعریف می‌شود. از این تابع برای معرفی متغیرها، مدهای پایه، استفاده از دستورات کتابخانه ای استفاده می‌شود. فانکشن هایی که در setup تعریف می‌شود فقط یک بار اجرا می‌شود. از بخش های مهم دیگری که در voidsetup تعریف می‌شود، ورودی Input و خروجی Output است. در نهایت در این بخش از Return هم استفاده می‌شود. برنامه نوشته شده در این بخش با باز و بسته شدن سریال مانیتور و یا ریست توسط کلید قرار گرفته شده با آردوینو مجدد از اول اجرا می‌شود.

void setup() {
  // put your setup code here, to run once:

}

 

معرفی Voidloop()

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

void loop() {
  // put your main code here, to run repeatedly:

}

 


Custom functions – ساخت تابع سفارشی در آردوینو


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

  • a return type
  • a name
  • a list of parameters

 نوع تابع یکی از روش های برنامه نویسی ++c است که توسط ما تعریف می‌شود. اگر تابعی بخواهد مقداری را به تابع فراخوان برگرداند، آن مقدار در نام تابع قرار میگیرد. هر مقدار دارای نوع است و نام تابع هم بابد دارای نوع باشد. اگر تابع هیچ مقداری را به برنامه فراخوان برنگرداند، نوع آن VOID خواهد بود.

< نوع تابع > نام تابع ( لیست پارامترها )۴

{

<دستور اول>
<دستور دوم>
.
.
.
دستور n
}
  • اگر تعداد پارامترها بیش از یکی باشد، باید با کاما , از یکدیگر جدا شود.
  • برای اجرای توابع آن ها را با نامشان فراخوانی کنید.
  • متغیرهای مورد نیاز توابع را در داخل توابع تعریف کنید. هیچ تابعی نمیتواند از متغیرهای توابع دیگر استفاده کند.
  • تعریف تابع در داخل تایع دیگر امکان پذیر نیست.

 


نوشتن برنامه آردوینو با void setup


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

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Serial.println("Hello World!");
}

void loop() {
  // put your main code here, to run repeatedly:

}

 


معرفی Serial Monitor در آردوینو Arduino IDE


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

  • از سریال مانیتور برای ارتباط بین دو آردوینو با یکدیگر، آردوینو به کامپیوتر و یا ارتباط آردوینو با سایر دستگاه ها استفاده می‌شود.
  • آردوینو یک پورت سریال دارد که با نام UART یا Universal Asynchronous مشخص شده است که به فرآیند ارسال داده با n بیت اطلاعات در یک لحظه گفته می‌شود.
  • در آردوینو از پین های دیجیتال ۰ و ۱ برای راه اندازی پورت سریال استفاده می‌شود.

 

توسط تابع Serial begin برقراری ارتباط سریال و سرعت انتقال دیتا در برنامه آردوینو مشخص می‌شود. به جای Speed از بادریت هایی که Arduino IDE در اختیار ما قرار داده است، استفاده می‌کنیم.

سپس برای چاپ و نمایش داده ها از print استفاده می‌کنیم که هم ارزش داده ها و هم متن مورد نظر توسط این تابع در آردوینو برای ما نمایش داده می‌شود.

 

 

تست برنامه با void setup در نرم افزار آردوینو IDE - دیجی اسپارک

 

برای ورود به سریال مانیتور CTRL + SHIFT + M  را همزمان نگه دارید و یا بر روی آیکون آن در سمت راست نرم افزار کلیک کنید.

 


نوشتن برنامه آردوینو با VOID LOOP


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

 

void setup() {
  // توابع اصلی که فقط یک بار اجرا میشود.
  Serial.begin(9600);
  Serial.println("HELLO WORLD");
}

void loop() {
  // توابعی که مداوم تا پایان حلقه در برنامه اجرا میشود.
  Serial.println("GOOD LOCK!");
  delay(1000);
}

دستورات سریال مانیتور دقیقا مشابه قبل است.

تست برنامه با VOIDLOOP در نرم افزار آردوینو IDE - دیجی اسپارک

 

در این بخش برای تکرار دستور مورد نظر از تابع زمانی DELAY استفاده می‌کنیم.

برای ورود به سریال مانیتور CTRL + SHIFT + M  را همزمان نگه دارید و یا بر روی آیکون آن در سمت راست نرم افزار کلیک کنید.

 


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


اصلی ترین بخش در برنامه نویسی صحیح نویسی دستورات در جای درست و فراخوانی به موقع است. قرار گرفتن یک دستور و یک تابع در برنامه تداخل عظیمی در برنامه ایجاد خواهد کرد. لذا یادگیری نکات اولیه برای کدنویسی از مهم ترین بخش های یادگیری آردوینو از پایه است. در این آموزش ساختار زبان برنامه نویسی آردوینو یعنی voidsetup و  voidloop و توابع سفارشی را آموختیم. نمونه کد جهت فراخوانی در متن آموزش نوشته شده است. یک به یک اجرا و در صورت سوال از همین طریق بپرسید تا راهنمایی صورت گیرد.

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

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

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

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

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

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

۵۲ دیدگاه

  • سلام تو این صفحه ایحاد جستجو کنید مشکل تایپی دارد اما مسئله اصلی اینه که اشتباه همیشه هست برای تایپ صحیح فارسی کیبورد گوشیم اگه اشتباه بنویسم زیرش خط قرمز می‌کشه برای پیشرفت لازمه آدما یکم بار مشکلات ازش برداشته بشه از نظر من باید بشه با زبان اسمبلی به راحتی برنامه نوشت اگر برنامه نویسها بخوان. و بابت آموزش ❤

  • خیلی خوب و ساده می نویسید. ممنون.

    یه سوال: نوشتن نگارش یک مطلب تخصصی مثل این که نیاز به درج کد و تولید تصویر داره، چقدر زمان میبره برای یه مبتدی؟؟

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

  • اطلاعاتی دارید که بورد انو چند لاین خط را میشه درونش ذخیره کرد؟چه راهی برای افزایشش هست؟

  • با سلام
    ببخشید از بنده GOOD LOCK! را در سریال مانیتور نشون داده نمیشه اروری هم داده نشده مشکل از کجاست؟

  • باسلام
    همه چیز عالی
    مشکا من اینه که یک فلزیاب درست کردمبا برد آردواینو نانو و برنامه کد حاضریش بود که از طریق نرم افزار کد رو کامپایل کردم
    ولی بخاطر عمق کمش یک سنسور مادون قرمز یک گیرنده بیسیم و. یک گیرنده رادیویی هم گرفتم ولی هر کاری میکنم نمتونم کد نویسی کنم و راش بندازم که عمق کارش کلا ۵۰ سانت بشه
    چه کاری میتونم انجام بدم تا حساسیت و عمق گیرنده گیش رو زیاد کنم ؟

      • ممنون از جوابتون
        و یه سوال دیگه من کد نوشته شده فلزیابی که میخواستمو پیدا کردم ولی زمانی که آپلود میکنم روی برد اررور میزنه ولی همون برنامرو روی یه برد نانوی دیگه میزنم جواب میده
        این بردی که من دارم مدلش چیز دیگه ایی هستش
        Ft232rl ولی اون برد دیگه مدل ایرانیه این برد هست که مدار سبز رنگ داره
        علت قبول نکردن برنامه چی میتونه باشه.
        تمام درایور هر چی که لازم بود نصب کردم

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

  • سلام مهندس
    طبق توضیحات شما فقط در setup برنامه اولیه ها نوشته شده است ونمیتوان یک شرط برای ورودی ها و اولیه ها تعریف کرد؟

    • با سلام
      در Setup برنامه فقط ورودی ها و تابع های اولیه هر کتابخانه معرفی می‌شود.

  • در بسیاری از کدها بعضی تابع ها اسمهای دلخواه داره پس همون تابع های کاستوم شده هستن که خودمون مینویسیم
    چقدر جالب

    • با سلام
      بله دقیقا با توجه به نیاز برنامه تابع های سفارشی سازی شده برای تسک های مختلف مینویسیم.

  • سلام و درود
    کدنویسی با تایع های سفارشی سرعت در اجرای برنامه را هم چندبار میکند و همه کدها منظم یک کار مشخص را انجام میدن
    سپاس از شما مهندس

    • سلام
      کاربر گرامی از اینکه تجربه ی خود را با دیگر کاربران به اشتراک می‌گذارید، صمیمانه سپاسگزاریم.

    • سلام
      شاهد عزیز از همراهی شما ممنونیم و خوشحالیم کارگاه برای شما مفید بوده است.

  • سلام
    من دقیقا همین دستورات رو نوشتم ولی توی قسمت مانیتور چیزی نشون نمی ده ، لطفا راهنمائی کنید ایراد کار کجاست ؟

    • با سلام
      دقت کنید بادریت سریال مانیتور با بادریت نوشته شده در کد یکسان باشد. مثلا هر دو ۹۶۰۰ باشند. بررسی و نتیجه را اعلام کنید.

      • سلام
        باتشکر
        من بادریت و … چک کردم ظاهرا همه چیز درسته ولی کار نکرد و تو مانیتور متن رو نمایش نمی ده
        این برنامه ای مپکه من تو IDE نوشتم:
        void setup() {
        // put your setup code here, to run once:
        Serial.begin(9600);
        Serial.println(“Hello Word”);
        }

        void loop() {
        // put your main code here, to run repeatedly:
        Serial.println(“Good Lock”);
        delay(1000);
        }

          • سلام
            ممنون از راهنمائی هاتون
            من اسکرین شات گرفتم ولی نمی دونم چطوری و در کجا آپلود کنم
            تو قسمت پیام ها جائی برای آپلود و الصاق عکس یا فایل نیست.

              • سلام
                با تشکر از راهنمائی و صبوریتون
                من مشکل رو پیدا کردم ، مشکل از برنامه نویسی و کد نبود …
                من کدها رو کامپایل می کردم ولی روی آردوینو نکرده بودم و سریال مانیتور رو باز می کردم.

  • سلام
    من دقیقا همین دستورات را نوشتم بادریت هم درست است ولی توی قسمت مانیتور چیزی نشان نمی دهد ،ایا باید برای این تست برد اردینو با کابل usb به کامپیوتر وصل باشد؟

    • با سلام
      بله برای تست برنامه و ارتباط سریال بین سیستم و آردوینو حتما بایستی ارتباط را برقرار کنید!

  • سلام مهندس
    چگونه می‌توان داده‌های سنسورهای دما و رطوبت را با استفاده از آردوینو خواند؟

    • با سلام
      کاربر گرامی در این مورد از سریال مانیتور و نمایشگرها میتوانید استفاده کنید.

  • سلام وقت بخیر
    من برای پروژه دانشگام قراره روی بخش نرم افزار آردویینو کار کنم و یک سایت بالا بیارم
    میخواستم ببینم بک اند سایت رو باچه زبان هایی میتونم ؟؟میدونم که با سی شارپ میشه ولی مثلا با پایتون و پی اچ پی هم میشه؟؟