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

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

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

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

 


تعریف پروژه شدت نور با تابع سفارشی


در این پروژه میخواهیم شدت نور چندین لامپ ال ای دی LED را توسط یک پتانسیومتر کنترل کنیم. این روند در کدنویسی توسط PWM مدولاسیون پهنای باند انجام می‌شود. اما اینبار میخواهیم با تابع های سفارشی کد حرفه ای تر و منظم تری بنویسیم تا با روش های جدید کدنویسی در آردوینو آشنا شویم.

 


استفاده از آرایه در آردوینو


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

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

در این پروژه سه عدد لامپ ال ای دی در خروجی داریم که توسط آرایه آن ها را کد برنامه معرفی می‌کنیم.

 


استفاده از تابع سفارشی


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

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

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

 


ایجاد یک تابع سفارشی برای خروجی ها


در قدم اول برای تعداد خروجی های تعریف شده در پروژه یک تایع سفارشی ایجاد می‌کنیم. برای اینکار از آرایه ARRAY و تابع سفارشی سازی شده CUSTOM FINCTION استفاده می‌کنیم. در نظر داشته باشید بایستی خروجی های برنامه را مشخص کنید.

#define  LED1 3
#define  LED2 5
#define  LED3 6
#define  LEDS 3
#define  pot A5

 

برای معرفی خروجی ها یک آرایه مینویسیم:

byte ledarray[LEDS]={LED1, LED2, LED3};

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 


اتصالات بردهای آردوینو


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

اتصالات بردهای آردوینو موج PWM با ال ای دی - دیجی اسپارک

 

برای ورودی از یک ولوم پتانسیومتر استفاده کنید که ولوم آنالوگ است و به یکی از پایه های A0 – A5 در برد آردوینو متصل می‌شود.

اتصالات بردهای آردوینو ولوم جهت کنترل - دیجی اسپارک

 

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

 


روش اجرا


پس از آپلود کد برنامه و اجرای اتصالات، پتانسیومتر یا همان ولوم را بچرخانید. هر سه ال ای دی با تغییر شافت ولوم شدت نور آن ها کم و یا زیاد می‌شود که این تغییر وابسته به جهت چرخش شافت ورودی ولوم است. اگر پایه سمت راست ولوم به ۵ ولت متصل باشد، با چرخاندن شافت در جهت راست، شدت نور ال ای دی ها افزایش می‌یابد و اگر شافت ولوم را در جهت چپ بچرخانید که به GND متصل است، شدت نور ال ای دی ها کاهش می‌یابد.

 


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


برد آردوینو Arduino

ال ای دی LED

ولوم

کابل

برد بورد

 


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


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

 

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

 

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

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

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

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

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

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

۴ دیدگاه

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

  • ممنونم خانم مهندس
    نکته ای که در هیچ منبعی بهش اشاره نشده
    استفاده کردیم.