در جلسه ی اول آموزش آردوینو یاد گرفتیم چگونه یک LED و به کمک خروجی 5 ولت آن روشن کنیم، در این جلسه قصد داریم وارد مرحله ی برنامه نویسی بشویم و با نوشتن یک برنامه ی ساده ابتدا یک چراغ چشمک زن و در مرحله ی بعد یک چراغ راهنمایی و رانندگی بسازیم.
این کار را به دو روش انجام می دهیم، یکبار با استفاده از ماژول چراغ راهنمایی و بار دیگر به کمک 3 مقاومت و 3 LED.
قبل از نوشتن کد لازم است مراحل زیر را انجام دهید :
Arduino IDE یک نرم افزار ساخت خود بنیاد آردوینو است که در سال 2005 ساخته شد. این نرم افزار محیطی فراهم کرده است که کاربر به راحتی کد C و ++C خورد را بنویسد و آن را بر روی برد های توسعه از جمله آردوینو بارگزاری کند.
Arduino IDE شامل ویرایشگر کد، ابزارهای دیباگینگ و یک مانیتور سریال است که به کاربران کمک میکند تا پروژههای مبتنی بر میکروکنترلر خود را توسعه دهند و مورد آزمایش قرار دهند.
طریقه نصب :
برای استفاده از بردهای آردوینو نیاز به نصب درایورهای خاصی دارید تا سیستم عامل شما بتواند برد را شناسایی و با آن ارتباط برقرار کند.
بهتر است روی سیستم خود سه درایور CH340 ،CP2102 ،FTDI را نصب کنید تا بتوانید علاوه بر آردوینو از دیگر برد های توسعه از جمله ESP و … استفاده کنید.
درایور های نام برده را از هر سایتی می توانید نصب کنید، آن ها در سایت های مختلف ایرانی و خارجی موجود هستند.
از آنجایی که ما در آموزش و پروژه های خود از آردوینو نانو استفاده میکنیم، به معرفی پایه های آن می پردازیم. البته توجه کنید که پایه های آموزش داده شده در تمامی نسخه های برد آردوینو موجود می باشند و تنها شاید شماره ی آن پین تغییر کند.
در آردوینو نانو 14 پایه به عنوان پایه های دیجیتال از D0 تا D13 وجود دارد.
پایه های D2 تا D13 می توانند به عنوان ورودی و یا خروجی دیجیتال مورد استفاده قرار بگیرند. اگر چه همچنین می توانید از D0 و D1 هم استفاده کنید اما این دو پایه مخصوص ارتباط سریال هستند، اگر پروژه ای دارید که از ارتباط سریال استفاده نمی کنید می توانید از D0 و D1 هم به عنوان ورودی و خروجی دیجیتال استفاده کنید. همانطور که می دانید دیجیتال به معنی 0 و 1 است . 0 همان 0 ولت و 1 همان 5 ولت است. با این وجود شما می توانید پایه های D2 تا D13 را هم به عنوان خروجی دیجیتال مثلا برای روشن یا خاموش کردن LED و هم به عنوان ورودی دریافت کننده ی اطلاعات از سنسور های دیجیتال تعریف کنید، مثلا سنسور دما یا گاز و یا هر سنسوری که اطلاعات را به صورت دیجیتال میفرستد.
برای آشنایی با بقیه ی پایه ها عجله نکنید!
قصد داریم در طول جلسات مختلف با پایه های مختلف آشنا شویم و طبق آموخته های همان جلسه برنامه نویسی کنیم و پروژه اجرا کنیم.
فرض کنید در پروژه ای هستید که می خواهید از چند سنسور مختلف استفاده کنید و آن ها را به کنترل کننده ی خود متصل کنید و از آن ها اطلاعات دریافت کنید. از آنجایی تعداد این سنسور ها زیاد است و شما با تعداد زیادی خط در برنامه نویسی خود مواجه هستید، برای نظم و مشخص بودن هر چه بیشتر کد خود بهتر است از متغیر استفاده کنید تا در هنکام برنامه نویسی سردرگم نشوید و حتی اگر کد خود را برای شخص دیگری فرستادید، او با یک کد خوانا و مرتب مواجه شود و سردرگم نوشد.
مثلا میخواهید LED را به پایه ی دیجتال D1 متصل کنید و با 0 و 1 کردن این پایه LED را روشن یا خاموش کنید. خب پس برای خوانا تر کردن کد بهتر است یک متغیر مثلا به نام LED تعریف کنید و آن را مختص به پایه ی D1 کنید تا در هر جای کد خود که نیاز باشد بنویسید D1 به جای آن بنویسید LED.
با اینکار هرگاه در هر خط از کد خود با کلمه ی LED مواجه شدید متوجه میشوید که همان LED است که به پایه ی D1 متصل است.
حالا به معرفی و شیوه ی نوشتن انواع متغیر های مورد استفاده در برنامه نویسی آردوینو میپرازیم :
( ما در اینجا اکثر آن ها را معرفی میکنیم اما طبق نیاز در پروژه های مختلف از آن ها استفاده می کنیم )
int : تعریف LED به عنوان متغیر پایه D2
int LED=2;
int : برای تعریف عدد صحیح از 32,768- تا 32,767 مورد استفاده قرار می گیرد.
در اینجا count به عنوان متغیر برای عدد 10 تعریف شده است.
int count = 10;
long : برای تعریف عدد صحیح 2,147,483,648- تا 2,147,483,647 مورد استفاده قرار می گیرد.
در اینجا count به عنوان متغیر برای عدد 100,000 تعریف شده است.
long largeNumber = 100000L;
short : برای تعریف عدد صحیح 32,768- تا 32,767 مورد استفاده قرار می گیرد.
در اینجا count به عنوان متغیر برای عدد 2 تعریف شده است.
short smallCount = 2;
float : برای تعریف عدد اعشاری تا 7 رقم اعشار
در اینجا temprate به عنوان متغیر برای عدد 12.5 تعریف شده است.
float temperate = 12.5;
bool : متغیر منطقی برای تعریف وضعیت مورد استفاده قرار میگیرد با دو مقدار true یا false
در اینجا isLeadon به عنوان متغیر برای وضعیت true تعریف شده است.
bool isLedOn = true;
رشته های حرفی به این صورت تعریف می شوند
String message = "Hello, Arduino!";
آرایه ها را به این صورت تعریف می کنیم
int numbers[5] = {1, 2, 3, 4, 5};
همانطور که گفته شد از پایه های D2 تا D13 می توانیم هم به عنوان ورودی و هم به عنوان خروجی دیجیتال استفاده کنیم.یک پایه را هنگامی به عنوان ورودی تعریف می کنیم تا بخواهیم اطلاعاتی را با آردوینو دریافت کنیم و همچنین پایه ای را به عنوان خروجی تعریف می کنیم هر گاه بخواهیم اطلاعاتی را توسط آردوینو ارسال کنیم. برای انجام اینکار کافی است از دستور pinMode استفاده کنیم. ( به بزرگ و کوچک بودن حروف دقت کنید )
مشخص کردن پایه دیجیتال D2 به عنوان خروجی
pinMode(2,OUTPUT);
مشخص کردن پایه دیجیتال D2 به عنوان ورودی
pinMode(2,INPUT);
اگر بخواهیم دیتای دیجتالی را ارسال کنیم کافیست از دستور digitalWrite استفاده کنیم. ( HIGH به معنی 1 شدن و LOW به منظور 0 شدن است )
حالا اگر بخواهیم دیتای دیجتالی را دریافت کنیم کافیست از دستور digitalRead استفاده کنیم.
1 کردن پایه ی D2 در نتیجه LED روشن است
digitalWrite(2, HIGH);
خواندن دیتای دیجیتال دریافتی از پایه ی D2
digitalRead(2);
این دستور به منظور ایجاد وقفه در کد است و هرگاه اجرا شود وضعیتی که وجود دارد نسبت به مدت زمان نوشته شده، همانقدر بدون تغییر باقی می ماند.
ایجاد وقفه 1000 میلی ثانیه ( 1 ثانیه )
delay(1000);
وقتی که وارد نرم افزار Arduino IDE می شوید این دو قسمت را مشاهده می کنید که به طور پیشرفت در صفحه نوشته شده اند.
void setup مختص به آن بخشی از کد است که باید فقط یکبار توسط آردوینو خوانده شود و void loop قسمتی از کد است که پس از خوانده شدن دوباره تکرار می شود و اجرا می شود.
حالا که با تمام مفاهیم پایه ای مورد نیاز برای این مینی پروژه آشنا شدیده اید وقت آن شده است کد چراغ چشمزن را بنویسیم و بررسی کنیم.
int led=2;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
در خط اول led به عنوان متغیر برای پایه D2 تعریف شده است.
در قسمت void setup پایه ی D2 به عنوان پایه ی خروجی تعریف شده است.
در قسمت void loop در خط 8، LED را روشن و در خط 9 مشخص کردیم 1 ثانیه روشن باقی بماند و در خط 10، LED را خاموش کردیم و در خط 11 گفتیم که 1 ثانیه خاموش باقی بماند و از آنجایی که در Void loop هستیم این روند هی تکرار می شود.
حالا که کد و نوشتیم و اتصالات و طبق تصویر بالا انجام دادیم وقت آن رسیده که کد را روی برد آردوینو آپلود کنیم.
با کلیک بر روی compile کد شما یکبار توسط نرم افزار چک می شود و اگر مشکلی در کد شما وجود داشته باشد به شما اخطار می دهد.
upload هم برای انتقال کد به آردوینو است.
از قسمت نشان داده شده هم می توانید برای انتخاب پورت و برد اقدام کنید.
همانطور که انتظار داشتیم LED یک ثانیه روشن و یک ثانیه خاموش می شود و
این روند را هی تکرار می کند و چشمک میزند
جلسه اول آموزش آردوینو روشن کردن LED با پایه 5v
جلسه سوم آموزش آردوینو