فهرست مطالب

قطعات استفاده شده

LED چشمک زن با آردوینو (جلسه دوم آموزش آردوینو)

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

این کار را به دو روش انجام می دهیم، یکبار با استفاده از ماژول چراغ راهنمایی و بار دیگر به کمک 3 مقاومت و 3 LED.

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

نصب نرم افزار Arduino IDE

Arduino IDE یک نرم افزار ساخت خود بنیاد آردوینو است که در سال 2005 ساخته شد. این نرم افزار محیطی فراهم کرده است که کاربر به راحتی کد C و ++C خورد را بنویسد و آن را بر روی برد های توسعه از جمله آردوینو بارگزاری کند.

Arduino IDE شامل ویرایشگر کد، ابزارهای دیباگینگ و یک مانیتور سریال است که به کاربران کمک می‌کند تا پروژه‌های مبتنی بر میکروکنترلر خود را توسعه دهند و مورد آزمایش قرار دهند.

 

  طریقه نصب :

  1. ابتدا وارد لینک https://www.arduino.cc/en/software شوید.
  2.  طبق سیستم عامل خود نرم افزار را دانلود کنید. ( این نرم افزار برای ویندوز ، لینوکس و مک موجود است )
  3.  فایل دانلود شده را اجرا و نرم افزار را نصب کنید.

نصب درایور های مورد نیاز

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

بهتر است روی سیستم خود سه درایور CH340 ،CP2102 ،FTDI را نصب کنید تا بتوانید علاوه بر آردوینو از دیگر برد های توسعه از جمله ESP و … استفاده کنید.

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

معرفی پایه ی دیجیتال آردوینو

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

در آردوینو نانو 14 پایه به عنوان پایه های دیجیتال از D0 تا D13 وجود دارد. 

پایه های D2 تا D13 می توانند به عنوان ورودی و یا خروجی دیجیتال مورد استفاده قرار بگیرند. اگر چه همچنین می توانید از D0 و D1 هم استفاده کنید اما این دو پایه مخصوص ارتباط سریال هستند، اگر پروژه ای دارید که از ارتباط سریال استفاده نمی کنید می توانید از D0 و D1 هم به عنوان ورودی و خروجی دیجیتال استفاده کنید. همانطور که می دانید دیجیتال به معنی 0 و 1 است . 0 همان 0 ولت و 1 همان 5 ولت است. با این وجود شما می توانید پایه های D2 تا D13 را هم به عنوان خروجی دیجیتال مثلا برای روشن یا خاموش کردن LED و هم به عنوان ورودی دریافت کننده ی اطلاعات از سنسور های دیجیتال تعریف کنید، مثلا سنسور دما یا گاز و یا هر سنسوری که اطلاعات را به صورت دیجیتال میفرستد.

برای آشنایی با بقیه ی پایه ها عجله نکنید! 

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

digital pinout

تعریف متغیر در برنامه نویسی

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

مثلا میخواهید 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);
				
			

دستور delay

این دستور به منظور ایجاد وقفه در کد است و هرگاه اجرا شود وضعیتی که وجود دارد نسبت به مدت زمان نوشته شده، همانقدر بدون تغییر باقی می ماند.

ایجاد وقفه 1000 میلی ثانیه ( 1 ثانیه )

				
					delay(1000);
				
			

void setup و void loop

وقتی که وارد نرم افزار Arduino IDE می شوید این دو قسمت را مشاهده می کنید که به طور پیشرفت در صفحه نوشته شده اند.

void setup مختص به آن بخشی از کد است که باید فقط یکبار توسط آردوینو خوانده شود و void loop قسمتی از کد است که پس از خوانده شدن دوباره تکرار می شود و اجرا می شود.

LED چشمک زن

حالا که با تمام مفاهیم پایه ای مورد نیاز برای این مینی پروژه آشنا شدیده اید وقت آن شده است کد چراغ چشمزن را بنویسیم و بررسی کنیم.

				
					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 هستیم این روند هی تکرار می شود.

اتصالات

LED blinking conections

انتقال کد روی برد آردوینو

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

  1. آردوینو را با استفاده از کابل micro USB به لپ تاپ متصل کنید.
  2. در منوی tools→Board→Arduino AVR Boards→Arduino nano را انتخاب کنید.
  3. سپس در Tools→Port پورتی که آردوینو به آن متصل است را انتخاب کنید.
  4. در منوی بالای نرم افزار بر روی upload کلیک کنید.

با کلیک بر روی compile کد شما یکبار توسط نرم افزار چک می شود و اگر مشکلی در کد شما وجود داشته باشد به شما اخطار می دهد.

upload هم برای انتقال کد به آردوینو است.

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

Untitled 1 Recovered

نتیجه ی کار

همانطور که انتظار داشتیم LED یک ثانیه روشن و یک ثانیه خاموش می شود و

این روند را هی تکرار می کند و چشمک میزند

جلسه اول آموزش آردوینو روشن کردن LED با پایه 5v

جلسه سوم آموزش آردوینو