عکس رهبر جدید

آردوینو و چراغ چشمک‌زن

آردوینو و چراغ چشمک‌زن
قسمت چهارم

همانطور که در شماره قبل گفتیم، صفحه (برد) الکترونیکی آردوینو  در واقع صفحهای برنامهپذیر است که با توجه به حسگرهایی که به آن متصل میکنیم، میتواند انواع خروجیها را هدایت (کنترل) کند! مثلاً برای آن برنامهای بنویسم که اگر کلید متصل به پایه شماره 10 فشرده شد، چراغ متصل به پایه شماره 4 را روشن کند!

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

حالا میخواهیم پروژه چراغ چشمکزن را که در واقع ابتداییترین پروژه برای ورود به عرصه هوشمندسازی است، با هم انجام بدهیم!

ابتدا نرمافزار آردوینو را باز میکنیم و مطابق مسیر شکل زیر پروژه  blink را باز میکنیم (تصویر 1).

در پنجره جدید با شکل کدی مشابه تصویر زیر روبهرو میشویم. پنجره قبلی نرمافزار را میبندیم. در ادامه باید قسمتهای اضافه یادداشت (کامنت) را برای خواناترشدن حذف کنیم(تصویر 2).

 

یادداشت چیست؟!

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

در واقع یادداشتها میتوانند هر متن یا عبارتی را شامل شوند و در عمل هیچ تأثیری در برنامه نوشتهشده از نظر منطقی ندارند. فقط برای خواناترشدن برنامه بهصورت توضیح و نکات در قسمتهای گوناگون کد قابل نگارش هستند.

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

مثال:                                                 

this is a comment //

// این یک یادداشت است

همانطور که دیدیم، میتوانیم از یادداشت‌‌های فارسی هم استفاده کنیم. این یکی از ویژگیهای خوب نرمافزار آردوینوست!

نمونه دوم یادداشت به این شکل است که یک مجموعه را شامل میشود و میتوانیم یک قسمت چندخطی را بهراحتی یادداشت کنیم و در واقع برای غیرفعالکردن بخشی از کد نیز کاربرد دارد!

نماد این نمونه یادداشتها با */ شروع میشود و هرچه را بعد از آن در کد باشد یادداشت میکند تا جایی که به علامتهای /* ختم شود.

مثال:

hi

this is a commant

finish

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

حالا بیایید با پاککردن قسمتهای یادداشت برنامه زیر، ظاهری آسانتر و قابلفهمتر برای آن ایجاد کنیم (تصویر 3)!

در تصویر بالا، قسمتهایی را که با یادداشت /* بودند پاک کردیم، چون توضیحاتی در رابطه با تاریخ نوشتن کد و نام برنامهنویس را شامل میشد که فعلاً موردنیاز ما نبودند.

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

تصویر زیر شامل کد کامل پروژه ما برای چراغ چشمکزن است که البته ما یک مجموعه تغییر را برای شخصیسازیترکردن این برنامه انجام خواهیم داد (تصویر 4).

در تصویر بالا، تمامی عبارتهای LED_BUILTIN را پاک میکنیم و به جای آنها عدد 3(شماره پایه برای اتصال چراغ) را قرار میدهیم (عبارت LED_BUILTIN در واقع معادل عدد 13 است، یعنی پایه شماره 13 صفحه  آردوینو  بهعنوان پیشفرض برای پروژه چشمکزن قرار داده شده و دلیل آن ست که روی خود صفحه آردوینو  و در کنار پایه 13 یک چراغ کوچک وجود دارد تا کسانی که چراغ خارجی و مقاومت و سیمکشی ندارند، بتوانند همین چراغ روی صفحه را برای آزمودن خاموش و روشن کنند. ما برای یادگیری عمیقتر، همان چراغ خارجی را میبندیم و پروژه را کاملتر انجام میدهیم. هرچند، اگر شما بهعنوان خواننده این متن، به چراغ و سیم و مقاومت دسترسی ندارید، میتوانید این قسمت کد را تغییر ندهید و روشن و خاموششدن چراغ کوچک کنار پایه 13 صفحه  آردوینو  را آزمایش کنید (تصویر شماره 4)!

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

در تمامی برنامههای نوشتهشده به زبان آردوینو دو قسمت یا تابع اصلی وجود دارد که با نامهای توابع «void Setup» و «void loop» شناخته میشوند. وقتی میگوییم تمام برنامهها، یعنی این دو تابع لزوماً باید باشند، ولی ما میتوانیم توابع دیگری را هم اضافه کنیم یا بسازیم و بنویسم که به نوع کدنویسی ما بستگی دارد.

خب در مثال پروژه چشمکزن و تصویر بالا میبینم که در خط دوم تابع (void setup) آورده شده است. این تابع هنگام روشنشدن صفحه  UNO R3 تنها برای یک بار اجرا میشود و همه دستورات زیرمجموعه آن که در این مثال خطهای 3 و 4 را شامل میشود. دقت کنید تمام دستوراتی که بعد از نوشتن تابع بین دو علامت { } میآیند، زیرمجموعه همان تابع محسوب میشوند و بهتبع این نکته که این تابع فقط یک بار اجرا میشود، یک بار بیشتر اجرا نخواهند شد.

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

اکنون بیایید تابع مهم دیگر یعنی «void loop» را بررسی کنیم.

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

در زیرمجموعه تابع تنظیم(ستاپ) تنها یک خط دستوری وجود دارد که در خط شماره 4 قرار دارد و خط قبل از آن، یعنی خط سوم، فقط یک یادداشت توضیحی است و بودن یا نبودنش تأثیری در اجرای برنامه ندارد. در خط 4 در واقع ما پایه شماره سوم آردوینو را بهعنوان خروجی برای صفحه تعیین میکنیم و صفحه میفهمد که از این به بعد این پایه فقط بهعنوان خروجی قابلکنترل خواهد بود و نمیتوان از آن بهعنوان ورودی استفاده کرد.

در خط نهم و با شروع تابع حلقوی (لوپ) همین پایه، شماره سوم صفحه را به مقدار HIGH که در واقع معادل عدد 1 منطقی و به معنای ولتاژ پنج ولت است، نسبت میدهیم. در واقع اگر چراغی به این پایه متصل باشد، در این حالت روشن خواهد شد!

در خط دهم از دستور (delay) استفاده میکنیم. این دستور هر عددی را که داخل پرانتزش قرار بگیرد، بر حسب میلیثانیه در نظر میگیرد و کل برنامه و صفحه را در همان حالتی که هست، به همان زمان که داخل پرانتز مشخص میشود، قفل میکند و نگه میدارد! در واقع، بعد از اینکه چراغ روشن شد، برنامه و صفحه به مدت 1000 میلیثانیه یا معادل 1 ثانیه حرکت دیگری انجام نمیدهد و چراغ همچنان در وضعیت روشن باقی میماند. حال پس از 1 ثانیه توقف، برنامه به خط یازدهم میرود. در این خط عیناً مشابه خط نهم عمل میکند و پایه شماره سوم را هدف قرار میدهد؛ با این تفاوت که در اینجا مقدار LOW یا همان صفر منطقی یا ولتاژ صفر ولت را به پایه نسبت میدهد و در واقع چراغ متصل به این پایه در این خط خاموش میشود! سپس این حالت خاموشی در خط دوازدهم و مجدداً با استفاده از دستور delay(1000) به مدت یک ثانیه خاموش باقی میماند.

اما نکته مهم اینجاست! حالا که به پایان حلقه رسیدیم، آیا برنامه دوباره از تابع تنظیم شروع به اجرا میکند و دوباره پایه سوم را بهعنوان خروجی قرار میدهد و...؟ قطعاً نه!

همانطور که گفتیم، تابع تنظیم تنها یک بار در شروع برنامه اجرا خواهد شد و دستوراتش در حافظه باقی میمانند. این تابع حلقوی است که بهصورت مداوم تکرار خواهد شد! لذا بعد از خط دوازدهم، برنامه دوباره به ابتدای خط نهم برمیگردد و چراغ دوباره روشن میشود، یک ثانیه روشن میماند، خاموش میشود، یک ثانیه خاموش میماند و این روند تا زمانی که صفحه تنظیم دوباره (ریست) نشود یا نسوزد، همواره ادامه خواهد داشت!

پس اگر طبق مدار تصویر زیر ما یک الایدی به صفحه  آردوینو  و پایه سوم متصل کنیم و این برنامه را روی صفحه آردوینو  بارگذاری کنیم، چراغ ما بهصورت مداوم هر یک ثانیه خاموش و روشن خواهد شد. به این ترتیب پروژه چراغ چشمکزن را به اتمام رساندهایم!

برای تنوع میتوانید عدد تابع delay; یا حتی پایه مدنظر برای اتصال چراغ را بین 2 تا 13(بعداً دلیل انتخاب این بازه عددی را شرح خواهیم داد) تغییر دهید و برنامه را دوباره روی صفحه  بارگذاری کنید. اتصالات مدار را در صورت نیاز تغییر دهید و تغییرات سرعت چشمکزدن چراغ را ببینید (تصویر5)!

 شکل مدار نحوه اتصال چراغ به پایه سوم صفحه  آردوینو  را در بالا میبینیم. همانطور که میدانیم، برای روشنشدن یک چراغ باید پایه مثبت به ولتاژ مغایر صفر ولت و پایه منفی به ولتاژ صفر ولت یا منفی وصل شود. در تصویر پایههای با علامت gnd صفحه آردوینو، همان منفیهای صفحه هستند و از پایه سوم نیز برای هدایت ولتاژ پایه مثبت استفاده میکنیم. یک مقاومت سر راه این پایه میگذاریم تا در صورت اضافهولتاژ، چراغ نسوزد. (میتوانید مقاومت را بردارید و تفاوت شدت نورش را ببینید! ولی ممکن است بسوزد.) صفحه آردوینو  طبق برنامهای که دریافت کرده است، به تغییر ولتاژ پایه سوم از پنج ولت به صفر و برعکس، بهصورت هر یک ثانیه یک بار، اقدام میکند. بدین شکل چراغ ما روشن و خاموش میشود.

 

 

- کاربران گرامی؛ برای مشاهده متن کامل این مطلب به فایل PDF پایین همین صفحه مراجعه فرمایید.

۹۹
کلیدواژه (keyword): رشد هنرجو، مهارت فناوری، آردوینو و چراغ چشمک‌ زن، محمد ثقفی
نام را وارد کنید
ایمیل را وارد کنید
تعداد کاراکتر باقیمانده: 500
نظر خود را وارد کنید