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

در صورتی که با زبان های C و C++ آشنایی دارید به راحتی میتوانید برنامه نویسی آردوینو را یاد بگیرید. حتی اگر با این زبان ها آشنایی ندارید جای نگرانی نیست چرا که در این سری از آموزش های منتشر شده تمامی دستورات و اصطلاحات آشنا خواهید شد…

آشنایی
در این آموزش از یک سری اصطلاحات و کلمات استفاده میکنیم که خوب است معنی آنها را بدانید:
کامپایل: همانطور که در جلسه قبل گفته شد، با زدن دکمه کامپایل کد های نوشته شده به کد های ماشینی تبدیل میشوند تا برای نوشتن آنها بر روی آردوینو آماده شود؛ همچنین خطاهای موجود در کد را برای ما نمایان میکند.
آپلود: یکی دیگر از ابزار های آردوینو، آپلود کردن کد ها است، یعنی با زدن این دکمه کد هایی که کامپایل کرده ایم را بر روی آردوینو متصل به کامپیوتر آپلود میکنیم.
پروگرم: معنی لغوی پروگرم (Program) برنامه است. در برنامه نویسی میکروکنترلر به پروسه آپلود کردن کد پروگرم میگویند.
سینتکس: به نحوه نوشتن کدها سینتکس (Syntax) میگویند. برای مثال در برنامه نویسی بیشتر زبان هایی مانند C پس از اتمام دستورات از سمی کالن (;) استفاده میکنیم و درصورتی که آن را فراموش کنید نرم افزار آردوینو برای شما خطایی را نمایش میدهد.
پروتکل: به نحوه برقراری ارتباط بین دو یا چند دستگاه پروتکل (Protocol) میگویند. برای مثال ما انسان ها برای برقراری ارتباط با یکدیگر باید زبان یکدیگر را متوجه شویم. در آردوینو از چند پروتکل Uart, SPI, I2C استفاده میکنیم که هریک از آنها در آینده توضیح داده خواهند شد.
سریال: درواقع سریال (Serial) یک پروتکل ارتباطی است که برای ارتباط بین دو یا چند دستگاه استفاده میشود؛ لازم به ذکر است برای پروگرم کردن آردوینو باید از پروتکل سریال استفاده کرد. این پروتکل از دو سیم برای ارسال و دریافت اطلاعات با سرعتی مشخص استفاده میکند. سیم TX ارسال و سیم RX دریافت اطلاعات را بر عهده دارد.
برای یادگیری کامل تر جلسات، بهتر است یک بورد آردوینو تهیه کنید که برای شروع به شما آردوینو Uno یا Dueminalove را پیشنهاد میدهیم که علاوه بر قیمت مناسب کارایی های فراوانی نیز دارند.
حافظه بورد آردوینو
میکروکنترلر 328 Atmega دارای سه بخش اصلی حافظه است. یک حافظه فلش، حافظه SRAM و یک حافظه به منظور ثبت اطلاعات از نوع EEPROM. در مورد هر یک از اجزای حافظه میکرو به ترتیب بحث خواهیم کرد.
حافظه فلش برنامه پذیر: از این حافظه برای ذخیره کردن برنامه استفاده می شود. این حافظه را می توان برنامه ریزی کرده و مجددا پاک کرد. حافظه از نوع پایدار می باشد و با قطع برق محتوای آن از دست نمی رود.
حافظه فلش ATmega328 به صورت Onboard و با حجم 32 کیلوبایت که تقریبا 4 کیلوبایت آن توسط بوت لودر گرفته میشود می باشد. درواقع کد هایی که بر روی آردوینو آپلود میکنیم، روی حافظه فلش ذخیره میشوند که با قطع برق از بین نمیرود!
حافظه SRAM: این نوع حافظه فرار است و با قطع جریان مقادیر روی آن پاک میشوند. از این نوع حافظه برای ذخیره متغیر ها استفاده میشود.
حافظه آدرس پذیر EEPROM: از این حافظه برای ذخیره اطلاعات و متغیر ها در آردوینو به کار میرود و با قطع برق اطلاعات آن باقی میماند. این نوع حافظه قابلیت چند بار نوشتن را نیز دارا میباشد. ظرفیت حافظه EEPROM برای میکروکنترلر Atmega328 برابر با 1کیلوبایت است.
پایه های آردوینو
آردوینو دارای تعدادی پایه جهت استفاده به عنوان خروجی یا ورودی است که به وسیله آن میتوان المان هایی مانند کلید و LED را کنترل کرد. پین های آردوینو به دو دسته دیجیتال و آنالوگ دسته بندی میشوند:
دیجیتال: اگر به بورد آردوینو خود نگاه کنید تعدادی پین را مشاهده میکنید. تعدادی از این پین ها با عدد مشخص شده اند. این پین ها پین های دیجیتال اند؛ با استفاده از پین های دیجیتال میتوانید مقادیر 0 و 1 را روی آنها اعمال کنید (0 یعنی 0 ولت منطقی و 1 یعنی 5 ولت منطقی).
طبق دیتاشیت آردوینو، این پین ها توانایی تحمل جریان حداکثر تا 20 میلی آمپر را دارند و برای جریان کشی بیشتر بهتر است از ترانزیستور یا قطعات دیگر استفاده کنید.
آنالوگ: در سمت دیگر بورد آردوینو، پین هایی را مشاهده میکنید که با حرف A مخفف Analog مشخص شده اند. این پینها توانایی اندازه گیری ولتاژی که روی آنها اعمال میشوند را دارند و به صورت یک عدد ده دهی نمایش میدهند؛ یعنی بسته به ولتاژی که روی آنها اعمال میشود، مقداری بین 0 تا 1023 را به ما برمیگردانند.
توجه: ولتاژ اعمال شده روی پین های آردوینو نباید بیشتر از 5 ولت باشند!
PWM: برخی از پین های دیجیتال با علامت ~ مشخص شده اند. این پین ها پین های PWM یا مدولاسیون پهنای باند هستند که در آینده کامل به توضیح درمورد آن میپردازیم.
برنامه نویسی
برای جلوگیری از پیچیده تر شدن آموزش، مطالب را پله پله جلو میرویم و اگر با توضیحات ما سردرگم شدید اصلا نگران نباشید زیرا در جلسه های بعدی به توضیح جداگانه آنها و کامل تر میپردازیم.
برای شروع برنامه نویسی شما را با بدنه کد آشنا میکنم.
کد زیر را در آردوینو خود آپلود کنید.
(نحوه آپلود کد در جلسه قبل آموزش داده شده است)
void setup(){
// Setup
}
void loop(){
// Codes
}
در کد بالا دو بخش setup و loop داریم؛ کد های موجود در setup تنها یک بار اجرا میشوند اما کد های درون loop تا ابد ادامه دارند. نکته موجود این است که با قرار دادن دو عدد / در آغاز هر خط اصطلاحا آن خط را کامنت میکنید.
کامنت ها جزو کد حساب نمیشوند و حافظه آردوینو را اشغال نمیکنند و تنها برای نشانه گذاری هستند.
به هر یک از این void ها تابع (Function) میگویند.
کد زیر یک چشمک زن ساده است:
int led = 13;
void setup(){
pinMode(led, OUTPUT);
}
void loop(){
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, HIGH);
delay(1000);
}
در خط اول کد، از یک متغیر استفاده کردیم. این متغیر از نوع عددی است. متغیر ها قادر به ذخیره مقادیر مختلفی مانند عدد، متن، حروف، اعداد اعشاری و… هستند. در کد بالا ما از متغیر int جهت ذخیره کردن یک عدد استفاده کردیم. این عدد شماره پین آردوینو است که قرار است به آردوینو وصل کنیم.
int led = 13;
در کد بالا متغیری از نوع int با نام led و با مقدار 13 تعریف کردیم. در قسمت setup کد
pinMode(led, OUTPUT);
را قرار دادیم. در این کد پین 13 را به عنوان خروجی تعریف کرده ایم.
digitalWrite(led, HIGH);
...
digitalWrite(led, LOW);
...
در کد بالا به پین 13 آردوینو مقدار HIGH یا LOW را قرار داده ایم (HIGH یا 1 منطقی یا 5 ولت یا روشن، LOW یا 0 منطقی یا 0 ولت یا خاموش)
delay(1000);
در کد بالا از delay برای ایجاد تاخیر استفاده کردیم. مقدار درون پرانتز به میلی ثانیه است. برای مثال برای 1 ثانیه تاخیر باید عدد 1000 به معنای 1000 میلی ثانیه یا 1 ثانیه را وارد کنید.
همچنین میتوانید از یک متغیر برای تغییر زمان delay استفاده کنید.
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
کد بالا مقدار پین LED را روی 5 قرار میدهد و پس از یک ثانیه مقدار را به 0 ولت بر میگرداند.
با تشکر از همراهی شما، در این جلسه با برنامه نویسی آشنا شدیم و توانستیم یک چشمک زن بسازیم. در جلسه سوم با سریال آردوینو آشنا خواهیم شد.
درصورت داشتن هرگونه سوال یا نظر در بخش نظرات با ما در ارتباط باشید…
درباره admin_hb
حسین بذرافکن هستم، برنامه نویس، فریلنسر و عاشق الکترونیک...
نوشته های بیشتر از admin_hb2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام پیجتون عالیه.خیلی ممنون
خیلی ممنون از نطرتون